MySQL——表操作及查询

一.表操作

MySQL的操作中,一些专用的词无论是大写还是小写都是可以通过的

1.插入数据

INSERT [INTO] table_name (列名称…)VALUES (列数据…), (列数据…);

"[]"表示可有可无,插入时,如果不指定要插入的列,则表示默认全部列都要插入数据,插入数据的顺序必须和列的顺序一致

如果插入单行数据,则只需一个"()“,如果想要多行插入,则可以同时追加多个”()"。


2.更新数据

此外,由于主键或者唯一键对应的值已经存在而导致插入失败,则可以更新数据:

INSERT INTO 表名称 (列名称…) VALUES (列数据…) ON DUPLICATE KEY UPDATE 列名称=新数据…;

除这条语句之外,还有一条语句,名为替换,也可以解决主键或唯一键冲突问题:

REPLACE INTO 表名称(列名称…) VALUES (列数据…);

如果没有发生冲突,就相当于直接插入,如果发生冲突,则删除原有数据,重新插入新数据。


二.查询

1.查找数据

(1)整体查找

全列查询

select * from 表名称;

指定列查询

select 列名称…from 表名称;

查询字段表达式

select 列名称… 表达式 from 表名称;

例如:

SELECT id, name, 10 FROM exam_result;

±–±-------±—+

| id | name | 10 |

±–±-------±—+

| 1 | 张三 | 10 |

| 2 | 李四 | 10 |

| 3 | 王五 | 10 |

| 4 | 赵六 | 10 |

如果表达式与字段无关,则会生成一列表达式数据。

SELECT id, name, english + 10 FROM exam_result;

±–±--------±----------------+

| id | name | english + 10|

±–±--------±----------------+

| 1 |张三 | 66 |

| 2 |李四 | 87 |

| 3 |王五 | 100 |

| 4 |赵六 | 77 |

表达式与字段有关:生成表达式为english + 10即将学生的英语成绩+10分的列并显示。

SELECT id, name, chinese + math + english FROM exam_result;

还有如上表达式,表示显示学生汉数英的成绩之和。

SELECT id, name, chinese + math + english 总分 FROM exam_result;

还可以给表达式指定别名,即在表达式后追加别名

SELECT DISTINCT 字段 FROM 表名称;

通过DISTINCT,可以将查询结果去重


(2)定向查找

上边的查找操作,都是对一整个列的数据进行查找,如果我们想要对列中的特定数据进行查找,则可以通过WHERE 条件。

比较运算符:

>, >=, <, <= :大于,大于等于,小于,小于等于

= :等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL

<=> :等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)

!=, <> :不等于

BETWEEN a0 AND a1 :范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)

IN (option, …) :如果是 option 中的任意一个,返回 TRUE(1)

IS NULL :是 NULL

IS NOT NULL :不是 NULL

LIKE :模糊匹配。% 表示任意多个(包括 0 个)字符;_ 表示任意一个字符

逻辑运算符:

AND :多个条件必须都为 TRUE(1),结果才是 TRUE(1)

OR :任意一个条件为 TRUE(1), 结果为 TRUE(1)

NOT :条件为 TRUE(1),结果为 FALSE(0)

where基本使用

select 字段… from 表名称 where 条件;

例如,查找一张成绩表中,英语不及格的学生名单:

SELECT name, english FROM exam_result WHERE english < 60;

多个条件可以通过逻辑运算符相互组合。

如果现在要查找一个同学,但是不记得他的全名,只记得他的姓为孙,该怎么找到他呢?

SELECT name FROM exam_result WHERE name LIKE ‘孙%’;

SELECT name FROM exam_result WHERE name LIKE ‘孙_’;

通过 “LIKE” 条件, 其中 ‘%’ 表示该同学的名字可以是任意数量的字符‘_’ 表示该同学的名字只有一个字

值得注意的是,在MySQL中,null 、0、和空字符’ ',三者互不相干,执行相关的查询时应注意。


2.排序数据

对数据进行排序通常是查找到对应数据后的操作。

select 列名称… from 表名称 ORDER BY 列名称 排序方式;

– ASC 为升序(从小到大)

– DESC 为降序(从大到小)

– 如果不指明排序方式,则默认为 ASC

当数据中有null时,null视为比任何值都小

此外,当出现多字段排序,比如:查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示,查询后的结果并不是说,就是按照上述排序方式将单独的科目进行排序,而是按照书写优先级先将整体数据按照数学降序排序,如果出现数学成绩相等,再将其后的英语成绩按照升序排序,如果英语成绩也相等,则最后排序语文成绩


3.筛选数据

当数据量过大时,如果直接查询,可能会引起诸多不便,比如直接就显示到了数据的末尾几行。

因此可以通过LIMIT 按行筛选数据的方式来查询对应行的数据信息:

起始下标为 0

从 0 开始,筛选 n 条结果

SELECT 列名称…FROM 表名称LIMIT n;

从 s 开始,筛选 n 条结果

SELECT 列名称… FROM 表名称LIMIT s, n;

从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用

SELECT 列名称… FROM 表名称LIMIT n OFFSET s;

因此当我们对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死。


4.更新数据

数据更新必须配合where使用,因为你不可能将一整列的数据全部更新,一般都是对特定行的数据进行更新

UPDATE 表名称 SET 列名称 = 新数据[, column = expr …] [WHERE …] [ORDER BY …] [LIMIT …]

可以同时对某一行的多个数据进行更新,也可以对更新后的数据进行排序筛选等操作

值得注意的是,当需要对某数据进行加减运算时,在MySQL中不支持 “+=” 等操作,必须采用 “新数据 = 原数据 + 改变值” 的方式。


5.删除数据

DELETE FROM table_name [WHERE …] [ORDER BY …] [LIMIT …]

删除数据时,可以使用where来指定要删除的数据,如果不使用where,则默认为删除整张表的全部数据

值得注意的是,删除数据不会影响表的各种结构定义,就仅仅是删除插入的数据,诸如表字段的类型,以及表的各种约束条件等都不会受到影响

特别要注意的是,delete删除数据,不会对自增长****AUTO_INCREMENT产生影响,比如说原本自增长已经到了5,此时删除全部数据,在进行插入,自增长依然会为6。


6.截断表

TRUNCATE [TABLE] table_name;

截断表truncate,同样是清空表的全部数据,与delete不同的是,它会将自增长****AUTO_INCREMEN同样清除,从AUTO_INCREMEN的初始值从头开始增长


7.聚合函数

COUNT([DISTINCT] expr) :返回查询到的数据的 数量

SUM([DISTINCT] expr) :返回查询到的数据的 总和,不是数字没有意义

AVG([DISTINCT] expr) :返回查询到的数据的 平均值,不是数字没有意义

MAX([DISTINCT] expr) :返回查询到的数据的 最大值,不是数字没有意义

MIN([DISTINCT] expr) :返回查询到的数据的 最小值,不是数字没有意义

聚合函数可以选择对去重后的数据操作,通常和数据查找共同使用,例如查找某表总共有多少行

SELECT COUNT(*) FROM 表名称;

使用 * 做统计,不受 NULL 影响。


8.数据分组

在select中使用group by 子句可以对指定列进行分组查询。

select 列名称… from table group by 列名称;

所谓分组查询,就是对表中某一列中的相同数据组合,例如,有一张完整的学生表数据,其中包含名称为班级号的字段,现在要查询每个班级分别有多少学生,就可以通过分组查询:

select class_id count(*)from studentgroup by class_id;

having和group by配合使用,对group by结果进行过滤,作用类似用where:

select 列名称… from table group by 列名称 having 过滤条件;


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-基础

1、概念&#xff1a; 程序 数据结构 算法 2、程序的好坏 可读性&#xff0c;稳定性&#xff0c;扩展性&#xff0c;时间复杂度&#xff0c;空间复杂度。 3、数据结构 是指存储、组织数据的方式&#xff0c;以便高效地进行访问和修改。通过选择适当的数据结构&#xff0c; 能…

本地部署DeepSeek(Mac版本,带图形化操作界面)

一、下载安装&#xff1a;Ollama 官网下载&#xff1a;Download Ollama on macOS 二、安装Ollama 1、直接解压zip压缩包&#xff0c;解压出来就是应用程序 2、直接将Ollama拖到应用程序中即可 3、启动终端命令验证 # 输入 ollama 代表已经安装成功。 4、下载模型 点击模型…

Nginx配置 ngx_http_proxy_connect_module 模块及安装

1、配置完互联网yum源后,安装相关依赖软件包 [root@server soft]# yum install -y patch pcre pcre-devel make gcc gcc-c++ openssl openssh [root@server soft]# yum install openssl* 2、解压缩软件,加载模块 [root@server soft]# ls nginx-1.20.2 nginx-1.20.2.tar.gz …

宾馆民宿酒店住宿管理系统+小程序项目需求分析文档

该系统是一款专为现代酒店设计的高效、智能、易用的管理工具,旨在帮助酒店提升运营效率、优化客户体验,提升客户满意度与忠诚度,并促进业务增长。系统采用先进的云计算技术,支持小程序等多平台访问,第三方接口,确保数据安全与稳定。本系统主要针对中小型精品酒店、连锁酒…

山东大学软件学院人机交互期末复习笔记

文章目录 2022-2023 数媒方向2023-2024 软工方向重点题目绪论发展阶段 感知和认知基础视觉听觉肤觉知觉认知过程和交互设计原则感知和识别注意记忆问题解决语言处理影响认知的因素 立体显示技术及其应用红蓝眼镜偏振式眼镜主动式&#xff08;快门时&#xff09;立体眼镜 交互设…

《Kettle实操案例一(全量/增量更新与邮件发送)》

目录 一、场景描述:二、要求:三、思路四、整体作业五、各部分详细配置1、Start2、转换-获取执行开始时间3、获取目标表抽取前行数4、检验字段的值5、增量更新6、全量更新7、获取目标表抽取后行数8、获取执行结束时间9、日志写入数据库10、写日志11、发送数据抽取完成邮件 六、最…

位运算算法篇:进入位运算的世界

位运算算法篇&#xff1a;进入位运算的世界 本篇文章是我们位运算算法篇的第一章&#xff0c;那么在我们是算法世界中&#xff0c;有那么多重要以及有趣的算法&#xff0c;比如深度优先搜索算法以及BFS以及动态规划算法等等&#xff0c;那么我们位运算在这些算法面前相比&#…

redis高级数据结构HyperLogLog

文章目录 背景常见API注意事项实现原理1、哈希函数2、前导零统计3、存储与计数4、基数估算 pf 的内存占用为什么是 12k&#xff1f;总结 背景 在开始这一节之前&#xff0c;我们先思考一个常见的业务问题&#xff1a;如果你负责开发维护一个大型的网站&#xff0c;有一天老板找…

<tauri><rust><GUI>基于rust和tauri,在已有的前端框架上手动集成tauri示例

前言 本文是基于rust和tauri&#xff0c;由于tauri是前、后端结合的GUI框架&#xff0c;既可以直接生成包含前端代码的文件&#xff0c;也可以在已有的前端项目上集成tauri框架&#xff0c;将前端页面化为桌面GUI。 环境配置 系统&#xff1a;windows 10 平台&#xff1a;visu…

mysql 学习11 事务,事务简介,事务操作,事务四大特性,并发事务问题,事务隔离级别

一 事务简介&#xff0c; 数据库准备&#xff1a; create table account(id int auto_increment primary key comment 主键ID,name varchar(128) not null comment 姓名,backaccountnumber char(18) unique comment 银行账号,money float comment 余额 )comment 银行账号表;…

重塑生产制造企业项目管理新范式:项目模板在Tita中的卓越实践

在竞争激烈的生产制造领域&#xff0c;每一个项目的成功执行都是企业稳健前行的重要基石。然而&#xff0c;面对复杂多变的生产流程、严格的交货期限以及不断变化的客户需求&#xff0c;如何确保项目高效、有序地进行&#xff0c;成为了众多企业面临的共同挑战。此时&#xff0…

AI知识库和全文检索的区别

1、AI知识库的作用 AI知识库是基于人工智能技术构建的智能系统&#xff0c;能够理解、推理和生成信息。它的核心作用包括&#xff1a; 1.1 语义理解 自然语言处理&#xff08;NLP&#xff09;&#xff1a;AI知识库能够理解用户查询的语义&#xff0c;而不仅仅是关键词匹配。 …

1-1二分查找

二分查找 1 基础版1.1 算法描述1.2 算法流程图1.3 算法实现1.3.1 Java实现 2 改动版2.1 算法描述2.2 算法流程图2.3 算法实现2.3.1 Java实现 2.4 改进点分析2.4.1 区间定义差异2.4.2 核心改进原理2.4.3 数学等价性证明 3 平衡版3.1 算法描述3.2 算法流程图3.3 算法实现3.3.1 Ja…

Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗

Elasticsearch 本身并不直接收集目标服务器的日志&#xff0c;它主要用于存储、搜索和分析数据。要收集目标服务器的日志&#xff0c;通常会借助其他工具&#xff0c;并且一般不需要在目标服务器上安装 Elasticsearch 软件&#xff0c;常见的日志收集方案&#xff1a; Filebeat…

Ajax-介绍

概念: Asynchronous JavaScript And XML&#xff0c;异步的JavaScript和XML. 作用: 数据交换:通过Aiax可以给服务器发送请求&#xff0c;并获取服务器响应的数据 异步交互: 可以在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页的技术, 如:搜索联想、…

论软件架构风格论文

摘要: 本人于2023年1月参与广东省某公司委托我司开发的“虚拟电厂”项目,主要负责系统整体架构设计和中间件选型。该项目为新型电力存储、电力调配、能源交易提供一套整体的软件系统。本文以虚拟电厂项目为例,主要讨论架构风格在本项目中的具体应用,主要包括如下,底层架构…

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)

近期&#xff0c;可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 WeChat Subscription Account【智慧城市指北】&#xff0c;可搜索相关关键字“20250107”&#xff0c;可获取具体获…

idea整合deepseek实现AI辅助编程

1.File->Settings 2.安装插件codegpt 3.注册deepseek开发者账号&#xff0c;DeepSeek开放平台 4.按下图指示创建API KEY 5.回到idea配置api信息&#xff0c;File->Settings->Tools->CodeGPT->Providers->Custom OpenAI API key填写deepseek的api key Chat…

CentOS 7配置samba服务设置文件共享

CentOS 7配置samba服务设置文件共享 一、生成另一个Linux系统&#xff0c;名为Linux-client&#xff0c;作为测试系统。 [rootliunx-client ~]# hostnamectl set-hostname Liunx-client二、如果没有则安装Samba服务&#xff0c;如果已经安装则省略此步。 yum install samba…

Composo:企业级AI应用的质量守门员

在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…