一、常用查询

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 常用的高阶查询语句整理。通过合理使用排序、分组、子查询、通配符等高级查询技巧,可以高效处理和分析数据库中的数据。




















