整理MySql常用查询语句(23种)
1. SELECT
SELECT 语句用于从表中获取数据。它是 SQL 中最常用且最基本的查询语句。使用 SELECT 语句的基本语法如下:
SELECT 列1,列2,... FROM 表名 WHERE 条件;
例如,查询一个学生表中所有名字为“张三”的学生信息:
SELECT * FROM students WHERE name='张三';
2. DISTINCT
DISTINCT 用于从表中获取不重复的数据。例如,查询一个学生表中所有不同城市的学生所在城市:
SELECT DISTINCT city FROM students;
3. WHERE
WHERE 语句用于筛选符合条件的数据。例如,查询一个学生表中年龄大于 18 岁的学生:
SELECT * FROM students WHERE age > 18;
4. IN
IN 语句用于查询符合一组指定值中的数据。例如,查询一个学生表中年龄为 18 或 19 岁的学生:
SELECT * FROM students WHERE age IN (18,19);
5. NOT IN
NOT IN 语句用于查询不符合一组指定值中的数据。例如,查询一个学生表中年龄不是 18 或 19 岁的学生:
SELECT * FROM students WHERE age NOT IN (18,19);
6. BETWEEN AND
BETWEEN AND 语句用于查询在某个区间内的数据。例如,查询一个学生表中年龄在 18 到 20 岁之间的学生:
SELECT * FROM students WHERE age BETWEEN 18 AND 20;
7. LIKE
LIKE 语句用于查询符合指定模式的数据。例如,查询一个学生表中姓氏以“张”开头的学生:
SELECT * FROM students WHERE name LIKE '张%';
8. NOT LIKE
NOT LIKE 语句用于查询不符合指定模式的数据。例如,查询一个学生表中姓氏不以“张”开头的学生:
SELECT * FROM students WHERE name NOT LIKE '张%';
9. ORDER BY
ORDER BY 语句用于对查询结果进行排序。例如,查询一个学生表中所有学生按照年龄从小到大排序:
SELECT * FROM students ORDER BY age;
10. DESC
DESC 语句用于按照降序进行排序。例如,查询一个学生表中所有学生按照年龄从大到小排序:
SELECT * FROM students ORDER BY age DESC;
11. ASC
ASC 语句用于按照升序进行排序。例如,查询一个学生表中所有学生按照年龄从小到大排序:
SELECT * FROM students ORDER BY age ASC;
12. LIMIT
LIMIT 语句用于限制查询结果的数量。例如,查询一个学生表中年龄最小的 5 个学生:
SELECT * FROM students ORDER BY age LIMIT 5;
13. COUNT
COUNT 用于统计表中数据的数量。例如,查询学生表中所有学生的数量:
SELECT COUNT(*) FROM students;
14. SUM
SUM 用于计算表中某一列数据的总和。例如,查询学生表中所有学生的年龄总和:
SELECT SUM(age) FROM students;
15. AVG
AVG 用于计算表中某一列数据的平均值。例如,查询学生表中所有学生的年龄平均值:
SELECT AVG(age) FROM students;
16. MAX
MAX 用于查询表中某一列数据的最大值。例如,查询学生表中年龄最大的学生:
SELECT * FROM students WHERE age = (SELECT MAX(age) FROM students);
17. MIN
MIN 用于查询表中某一列数据的最小值。例如,查询学生表中年龄最小的学生:
SELECT * FROM students WHERE age = (SELECT MIN(age) FROM students);
18. GROUP BY
GROUP BY 语句用于对查询结果进行分组。例如,查询一个学生表每个城市有多少学生:
SELECT city, COUNT(*) FROM students GROUP BY city;
19. HAVING
HAVING 语句用于筛选分组后的数据。例如,查询一个学生表每个城市有超过 5 个学生的城市:
SELECT city, COUNT(*) FROM students GROUP BY city HAVING COUNT(*) > 5;
20. JOIN
JOIN 用于将两个或更多的表连接在一起。例如,查询一个班级表中所有学生和学生表中相应的学生信息:
SELECT * FROM classes JOIN students ON classes.id = students.class_id;
21. LEFT JOIN
LEFT JOIN 是连接左侧的表和右侧的表,并返回左侧表中所有的行和右侧表中符合条件的行,对于没有符合条件的右侧表中的行,则填充 NULL 值。例如,查询一个班级表中所有的学生,如果有学生信息,返回学生信息,如果没有,返回 NULL:
SELECT * FROM classes LEFT JOIN students ON classes.id = students.class_id;
22. RIGHT JOIN
RIGHT JOIN 是连接左侧的表和右侧的表,并返回右侧表中所有的行和左侧表中符合条件的行,对于没有符合条件的左侧表中的行,则填充 NULL 值。例如,查询一个学生表和班级表中所有的学生信息,如果有班级信息,返回班级信息,如果没有,返回 NULL:
SELECT * FROM classes RIGHT JOIN students ON classes.id = students.class_id;
23. FULL JOIN
FULL JOIN 是连接左侧表和右侧表,并返回左侧表和右侧表中所有符合条件的行,如果左侧表中没有符合条件的行,则填充 NULL 值,如果右侧表中没有符合条件的行,则也填充 NULL 值。 MySQL 中不支持 FULL JOIN,但可以使用 UNION ALL、LEFT JOIN 和 RIGHT JOIN 联合查询来实现该功能。
以上就是 23 种常用的 MySQL 查询语句及其用法。使用 SELECT 语句、WHERE 语句、ORDER BY 语句等等常用的语句可以满足大多数情况下的查询需求。如果需要更高级的查询操作,如 JOIN 语句、GROUP BY 语句等等,则需要使用更复杂的 SQL 语句来实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:整理MySql常用查询语句(23种) - Python技术站