【MySQL进阶之路丨第九篇】一文带你精通MySQL子句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL进阶之路丨第九篇】一文带你精通MySQL子句

在上一篇中我们介绍了数据的插入与查询;在开发中,掌握数据的增删改查等操作和语句是十分重要的。

这一篇我们使用命令行方式来帮助读者掌握MySQL子句。


1️⃣MySQL WHERE 子句

MySQL 中的 WHERE 子句是用于在查询中筛选数据的部分。它允许您指定条件,以便仅返回满足条件的行。

简单来说, WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....

下面是一个使用 WHERE 子句的示例:

SELECT * FROM students WHERE age > 10;

上述语句将从名为 students 的表中选择所有年龄大于 10 岁的学生。在这个例子中,age > 10 是 WHERE 子句的条件。只有满足此条件的行才会被返回。

除了基本的比较运算符(如 ><=>=<=)之外,WHERE 子句还可以与以下逻辑运算符一起使用:

AND:指定多个条件都必须为真。

OR:指定多个条件中至少一个必须为真。

NOT:指定条件为否定。

举个例子:

SELECT * FROM employees WHERE age > 30 AND department = 'Sales';

以上查询将检索年龄大于 30 岁且所属部门为 “Sales” 的员工。

WHERE 子句还可以运用于 SQL 的 DELETE 或者 UPDATE 命令;与其他操作符和函数一起使用,如 LIKE 运算符用于模糊匹配、IN 运算符用于匹配特定值列表等等。

接下来开始MySQL实战

现存在一公司表,内容如下:

要求1:查询年龄大于40且性别为男的成员

语句如下:

select * from company where gender = 'M' and age > 40;

结果如下:

要求2:查询部门为marketing且年龄小于50的成员

语句如下:

select * from company where age < 50 and department = 'Marketing'

结果如下:

至此,WHERE子句内容就介绍完了。


2️⃣MySQL UPDATE 更新

如果需要修改或更新 MySQL 中的数据,可以使用 SQL UPDATE 命令来操作。

以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

UPDATE 表名
SET 列名1 = 值1, 列名2 = 值2, ...
WHERE 条件;

具体解释如下:

表名:要更新数据的表名。

列名1, 列名2, ...:要更新的列名列表,以逗号分隔。

值1, 值2, ...:要设置的新值列表,与列名列表中的列一一对应。

WHERE 条件:可选项,用于指定更新记录的条件。如果不指定条件,则将更新表中的所有记录。

UPDATE可以同时更新一个或多个字段。

UPDATE可以在一个单独表中同时更新数据。

举个例子:

要将Eva的年龄和部门分别改为30和marketing,可以改为如下语句:

update company
set age = 30 , department = 'marketing'
where name = 'Eva'

结果如下:

至此,UPDATE内容就介绍完了。


3️MySQL DELETE 语句

使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。

以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:

DELETE FROM table_name [WHERE Clause]

注意: 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

举个例子:

现要删除company表中部门为IT的成员

句子如下:

delete from company
where department='IT'

运行结果如下:

至此,DELETE内容就介绍完了。


4️⃣ MySQL LIKE 运算子句

❄️在MySQL中,LIKE 运算符用于模糊匹配字符串。LIKE 运算符有两个通配符可以使用:

%:表示零个或多个字符的任意组合。

_:表示单个字符的任意值。

以下是 LIKE 运算符的语法:

SELECT 列名
FROM 表名
WHERE 列名 LIKE '模式';

具体解释如下:

列名:要匹配的列名。

表名:要从中选择数据的表名。

模式:指定要匹配的模式。可以使用通配符 %_

以下是一些示例,演示如何使用 LIKE 运算符进行模糊匹配:

1.匹配以 “a” 结尾的所有字符串:

SELECT * FROM 表名 WHERE 列名 LIKE '%a';

2.匹配以 “ab” 开头的所有字符串:

SELECT * FROM 表名 WHERE 列名 LIKE 'ab%';

3.匹配包含 “abc” 的所有字符串:

SELECT * FROM 表名 WHERE 列名 LIKE '%abc%';

4.匹配以 “a” 开头和以 “b” 结尾的所有字符串:

SELECT * FROM 表名 WHERE 列名 LIKE 'a%b';

5.匹配第二个字符为 “o” 的所有字符串:

SELECT * FROM 表名 WHERE 列名 LIKE '_o%';

如果要进行大小写不敏感的模糊匹配,可以使用其他函数或操作符,例如 COLLATEREGEXP

举个例子:

现要匹配company表中name列中含有ic的名字:

语句如下:

select name from company where name like '%ic%'

运行结果如下:

至此,LIKE子句内容就介绍完了。


5️⃣ MySQL UNION 子句

在 MySQL 中,UNION 操作符用于合并多个 SELECT 语句的结果集,并返回一个去重的结果集。

UNION 操作符的语法如下:

SELECT 列1, 列2, ...
FROM 表名1
[WHERE 条件]
UNION [ALL]
SELECT 列1, 列2, ...
FROM 表名2
[WHERE 条件];

具体解释如下:

  • 列1, 列2, ...:要选择的列。
  • 表名1, 表名2:要从中选择数据的表名。
  • [WHERE 条件]:可选项,用于指定条件来筛选数据。
  • UNION:用于合并两个或多个 SELECT 语句的结果集。它将返回一个去重的结果集,即不包含重复行的结果。
  • ALL:可选项,用于保留所有 SELECT 语句的结果,包括重复行。

注意以下几点:

1.要使用 UNION 操作符,两个 SELECT 语句的列数必须相同,并且相应的列的数据类型必须兼容。

// 不合法的sql语句
SELECT 列1, 列2
FROM 表名1
UNION
SELECT 列1, 列2, 列3
FROM 表名2

2.UNION 操作符按照列的顺序进行合并,因此确保列的顺序匹配是很重要的。

3.默认情况下,UNION 操作符返回一个去重的结果集,如果希望保留重复行,请使用 UNION ALL。

举个例子:

目前存在两张表teacher1和teacher2

要从两张表中提取职位为副教授的老师数据,语句如下:

select * from teacher1
where position = '副教授'
union
select * from teacher2
where position = '副教授'

结果如下:

至此,UNION子句内容就介绍完了。


6️⃣总结

以上为 【MySQL进阶之路丨第九篇】,带领读者掌握 MySQL 子句,通过具体实操实现对MySQL数据库的深度理解。

MySQL系列将持续更新,欢迎订阅收藏

我是秋说,我们下次见。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
存储 SQL 关系型数据库
MySQL语句详解:从基础到进阶的全面指南
MySQL语句详解:从基础到进阶的全面指南
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第三篇(MySQL性能优化)
MySQL数据库进阶第三篇(MySQL性能优化)
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库进阶第五篇(锁)
MySQL数据库进阶第五篇(锁)
|
6月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
6月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
4月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 `HAVING` 子句
【8月更文挑战第12天】
169 1
在 MySQL 中使用 `HAVING` 子句
|
4月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 `GROUP BY` 子句
【8月更文挑战第12天】
100 1
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库开发进阶:精通数据库表的创建与管理22
【7月更文挑战第22天】数据库的创建与删除,数据表的创建与管理
49 1
|
6月前
|
JSON 关系型数据库 MySQL
MySQL常用函数解读:从基础到进阶的全方位指南
MySQL常用函数解读:从基础到进阶的全方位指南