头图

常用的 MySQL 查询语句示例

MySQL 是常见的关系型数据库管理系统,广泛应用于数据存储、查询和管理。为了更高效地操作数据库,掌握常用的查询语句非常重要。本文将介绍一些基本的 MySQL 查询语句,涵盖了常用的查询、更新、删除操作,以及如何使用聚合函数和连接查询。


1. 基本查询

查询所有记录

SELECT * FROM table_name;
  • 说明* 表示选择表中的所有列。此语句将返回表中所有的记录。

查询特定列

SELECT column1, column2 FROM table_name;
  • 说明:通过指定列名,查询指定的列数据。你可以选择表中的任意一列或多列。

带条件查询

SELECT * FROM table_name WHERE condition;
  • 说明WHERE 子句用于设置查询的条件。只有满足条件的记录才会被返回。

去重查询

SELECT DISTINCT column FROM table_name;
  • 说明DISTINCT 用于去除重复的记录,只返回唯一的值。

2. 排序和限制

排序

SELECT * FROM table_name ORDER BY column ASC/DESC;
  • 说明ORDER BY 用于排序。ASC 表示升序(默认),DESC 表示降序。

限制记录数

SELECT * FROM table_name LIMIT count;
  • 说明LIMIT 用于限制返回的记录条数。count 是返回记录的数量。

3. 条件查询

等于

SELECT * FROM table_name WHERE column = value;
  • 说明= 用于查询某列等于某个特定值的记录。

不等于

SELECT * FROM table_name WHERE column != value;

SELECT * FROM table_name WHERE column <> value;
  • 说明!=<> 用于查询某列不等于某个特定值的记录。

大于、小于、大于等于、小于等于

SELECT * FROM table_name WHERE column > value;
SELECT * FROM table_name WHERE column < value;
SELECT * FROM table_name WHERE column >= value;
SELECT * FROM table_name WHERE column <= value;
  • 说明:分别用于查询大于、小于、大于等于、小于等于某个值的记录。

区间查询

SELECT * FROM table_name WHERE column BETWEEN value1 AND value2;
  • 说明BETWEEN 用于查询某列值在指定范围内的记录,包括边界值。

模糊查询

SELECT * FROM table_name WHERE column LIKE 'pattern';
  • 说明LIKE 用于模糊匹配,% 表示任意数量的字符,_ 表示单个字符。例如,LIKE 'a%' 查找以 a 开头的记录。

空值判断

SELECT * FROM table_name WHERE column IS NULL;
SELECT * FROM table_name WHERE column IS NOT NULL;
  • 说明IS NULL 判断某列是否为 NULLIS NOT NULL 判断某列是否不为 NULL

多条件查询

SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2;
SELECT * FROM table_name WHERE column1 = value1 OR column2 = value2;
  • 说明:使用 ANDOR 进行多条件查询,AND 表示所有条件都满足时返回记录,OR 表示只需满足一个条件即可。

4. 聚合函数

平均值

SELECT AVG(column) FROM table_name;
  • 说明AVG() 用于计算指定列的平均值。

总和

SELECT SUM(column) FROM table_name;
  • 说明SUM() 用于计算指定列的总和。

最大值

SELECT MAX(column) FROM table_name;
  • 说明MAX() 用于查询指定列的最大值。

最小值

SELECT MIN(column) FROM table_name;
  • 说明MIN() 用于查询指定列的最小值。

计数

SELECT COUNT(column) FROM table_name;
  • 说明COUNT() 用于统计指定列中非 NULL 的记录数。

5. 分组和聚合

分组查询

SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
  • 说明GROUP BY 用于对数据进行分组,SUM() 用于计算每个分组的总和。可以用 COUNT(), AVG() 等函数进行统计。

过滤分组

SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > value;
  • 说明HAVING 用于过滤分组后的结果,与 WHERE 类似,但 WHERE 不能用于过滤聚合结果,HAVING 用于对聚合函数的结果进行过滤。

6. 连接查询

内连接(INNER JOIN)

SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;
  • 说明INNER JOIN 返回两个表中匹配的记录,如果没有匹配,则不返回。

左连接(LEFT JOIN)

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;
  • 说明LEFT JOIN 返回左表的所有记录,即使右表没有匹配的记录,右表的字段值会返回 NULL

右连接(RIGHT JOIN)

SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;
  • 说明RIGHT JOIN 返回右表的所有记录,即使左表没有匹配的记录,左表的字段值会返回 NULL

7. 子查询

子查询作为列

SELECT column, (SELECT MAX(column2) FROM table2) FROM table1;
  • 说明:子查询作为列,可以从另一个表获取相关数据。

子查询作为条件

SELECT * FROM table1 WHERE column IN (SELECT column2 FROM table2);
  • 说明:子查询作为条件用于从一个表的结果中筛选出符合条件的记录。

8. 更新和删除

更新记录

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 说明UPDATE 用于修改现有记录,可以通过 WHERE 指定要更新的记录。

删除记录

DELETE FROM table_name WHERE condition;
  • 说明DELETE 用于删除符合条件的记录,注意不要遗漏 WHERE,否则会删除所有记录。

总结

掌握常用的 MySQL 查询语句是开发和维护数据库的基础。无论是进行数据查询、更新还是删除,合理使用 SQL 语法可以有效提高操作效率。通过上述基础查询语句、聚合函数、连接查询和子查询的组合应用,能够满足大多数数据处理需求。对于复杂查询,可以灵活使用这些语句并根据实际需求进行优化。


蓝易云
28 声望3 粉丝