引言
✒️在上一篇中我们介绍了数据的插入与查询;在开发中,掌握数据的增删改查等操作和语句是十分重要的。
✒️这一篇我们使用命令行方式来帮助读者掌握MySQL子句。
⚽上一篇链接: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 >30AND 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 <50and 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 数据表中删除数据的通用语法:
DELETEFROM table_name [WHERE Clause]
💻注意: 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
举个例子:
现要删除company表中部门为IT的成员
📌句子如下:
deletefrom 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%';
❄️如果要进行大小写不敏感的模糊匹配,可以使用其他函数或操作符,例如
COLLATE
和
REGEXP
。
📌举个例子:
现要匹配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 语句的结果,包括重复行。
📌注意以下几点:
- 要使用 UNION 操作符,两个 SELECT 语句的列数必须相同,并且相应的列的数据类型必须兼容。
// 不合法的sql语句SELECT 列1, 列2FROM 表名1UNIONSELECT 列1, 列2, 列3FROM 表名2
- UNION 操作符按照列的顺序进行合并,因此确保列的顺序匹配是很重要的。
- 默认情况下,UNION 操作符返回一个去重的结果集,如果希望保留重复行,请使用 UNION ALL。
举个例子:
❄️目前存在两张表teacher1和teacher2
❄️要从两张表中提取职位为副教授的老师数据,语句如下:
select*from teacher1
where position ='副教授'unionselect*from teacher2
where position ='副教授'
结果如下:
💻至此,UNION子句内容就介绍完了。
6️⃣总结
❄️以上为 【MySQL进阶之路丨第九篇】,带领读者掌握 MySQL 子句,通过具体实操实现对MySQL数据库的深度理解。
✔️MySQL系列将持续更新,欢迎订阅收藏。我是秋说,我们下次见😉
版权归原作者 秋说 所有, 如有侵权,请联系我们删除。