在上一篇中我们介绍了数据的插入与查询;在开发中,掌握数据的增删改查等操作和语句是十分重要的。 这一篇我们使用命令行方式来帮助读者掌握MySQL子句。

上一篇链接:MySQL | 数据的插入与查询

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

1️⃣MySQL WHERE 子句2️⃣MySQL UPDATE 更新3️MySQL DELETE 语句4️⃣ MySQL LIKE 运算子句5️⃣ MySQL UNION 子句6️⃣总结

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%';

如果要进行大小写不敏感的模糊匹配,可以使用其他函数或操作符,例如 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 语句的结果,包括重复行。

注意以下几点:

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系列将持续更新,欢迎订阅收藏。

我是秋说,我们下次见。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: