一、常用查询
1. 按关键字排序
使用 ORDER BY
语句对查询结果进行排序,可以按照一个或多个字段进行升序(ASC
)或降序(DESC
)排列
语法
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
示例
- 按分数升序排列:
SELECT id, name, score FROM info ORDER BY score;
- 按分数降序排列:
SELECT id, name, score FROM info ORDER BY score DESC;
- 多字段排序:先按
hobbid
降序排列,相同hobbid
的记录按id
升序排列:
SELECT id, name, hobbid FROM info ORDER BY hobbid DESC, id ASC;
2. 区间判断及查询不重复记录
使用 AND
和 OR
进行条件组合,还可以使用 DISTINCT
去除查询结果中的重复记录。
示例:
- 查询分数在70-90之间的记录:
SELECT * FROM info WHERE score > 70 AND score <= 90;
- 查询分数大于70或者小于等于90的记录:
SELECT * FROM info WHERE score > 70 OR score <= 90;
- 查询不重复的hobbid值:
SELECT DISTINCT hobbid FROM info;
3、对结果进行分组
GROUP BY
语句用于对查询结果进行分组,通常结合聚合函数(如 COUNT
、SUM
、AVG
、MAX
、MIN
)使用
语法:
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name;
示例:
- 按
hobbid
分组,并计算每组学生人数:
SELECT COUNT(name), hobbid FROM info GROUP BY hobbid;
- 筛选分数大于等于 80 的学生,并按
hobbid
分组计算人数:
SELECT COUNT(name), hobbid FROM info WHERE score >= 80 GROUP BY hobbid;
4、限制结果条目
LIMIT
语句用于限制查询结果的条目数。
语法:
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number;
示例:
- 查询前三行记录:
SELECT * FROM info LIMIT 3;
- 查询第四行开始的三行记录:
SELECT * FROM info LIMIT 3, 3;
- 按
id
降序排列并显示最后 3 行:
SELECT id, name FROM info ORDER BY id DESC LIMIT 3;
5、设置别名’Alisa‘
AS
关键字用于给表或字段设置别名,简化查询语句,增强可读性。
语法:
- 对列设置别名:
SELECT column_name AS alias_name FROM table_name;
- 对表设置别名:
SELECT alias.column_name FROM table_name AS alias;
示例:
- 为
name
和score
列设置别名:
SELECT name AS 姓名, score AS 成绩 FROM info;
6、通配符
通配符用于替换字符串中的部分字符,常与 LIKE
子句配合使用。
常用通配符:
%
:匹配零个、一个或多个字符。_
:匹配单个字符。
示例:
- 查询名字以
c
开头的记录
SELECT id, name FROM info WHERE name LIKE 'c%';
- 查询名字中间有
g
字符的记录:
SELECT id, name FROM info WHERE name LIKE '%g%';
7、子查询
子查询是指在一个查询语句中嵌套另一个查询语句,子查询的结果作为条件传递给主查询。
示例:
- 查询分数大于 80 的学生信息:
SELECT name, score FROM info WHERE id IN (SELECT id FROM info WHERE score > 80);
- 多表查询示例:
SELECT id, name, score FROM info WHERE id IN (SELECT id FROM ky30);
总结
以上为 MySQL 常用的高阶查询语句整理。通过合理使用排序、分组、子查询、通配符等高级查询技巧,可以高效处理和分析数据库中的数据。