常用的 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
判断某列是否为NULL
,IS NOT NULL
判断某列是否不为NULL
。
多条件查询
SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2;
SELECT * FROM table_name WHERE column1 = value1 OR column2 = value2;
- 说明:使用
AND
和OR
进行多条件查询,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 语法可以有效提高操作效率。通过上述基础查询语句、聚合函数、连接查询和子查询的组合应用,能够满足大多数数据处理需求。对于复杂查询,可以灵活使用这些语句并根据实际需求进行优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。