1. 查询最大最小值
1.1 查询最大值
为了查询某个表中某一列的最大值,可以使用MAX
函数:
SELECT MAX(column_name) FROM table_name;
其中column_name
是列名,table_name
是表名。
例如,查询学生成绩表中的最高分:
SELECT MAX(score) FROM student;
运行结果为:
+------------+
| MAX(score) |
+------------+
| 99 |
+------------+
可以看到,学生成绩表中最高分是99分。
1.2 查询最小值
查询最小值和查询最大值的语法相似,只需要将MAX
改为MIN
即可:
SELECT MIN(column_name) FROM table_name;
例如,查询学生成绩表中的最低分:
SELECT MIN(score) FROM student;
运行结果为:
+------------+
| MIN(score) |
+------------+
| 50 |
+------------+
可以看到,学生成绩表中最低分是50分。
2. 查询记录数
查询某个表中的记录数,可以使用COUNT
函数:
SELECT COUNT(*) FROM table_name;
其中*
表示所有列,也可以替换为具体的列名。
例如,查询学生成绩表中的记录数:
SELECT COUNT(*) FROM student;
运行结果为:
+----------+
| COUNT(*) |
+----------+
| 10 |
+----------+
可以看到,学生成绩表中有10条记录。
3. 查询重复记录
查询某个表中重复的记录,可以使用GROUP BY
、HAVING
和COUNT
函数:
SELECT column_name1, column_name2, COUNT(*) FROM table_name GROUP BY column_name1, column_name2 HAVING COUNT(*) > 1;
其中column_name1
和column_name2
是重复的列名。
例如,查询学生表中重复的姓名和电话号码:
SELECT name, phone_number, COUNT(*) FROM student GROUP BY name, phone_number HAVING COUNT(*) > 1;
运行结果为:
+------+--------------+----------+
| name | phone_number | COUNT(*) |
+------+--------------+----------+
| 张三 | 123456789 | 2 |
+------+--------------+----------+
可以看到,学生表中有两个人叫做张三,电话号码都是123456789。
4. 查询匹配记录
查询某个表中满足条件的记录,可以使用WHERE
和LIKE
关键字:
SELECT * FROM table_name WHERE column_name LIKE 'keyword%';
其中column_name
是列名,keyword
是匹配的关键字,%
表示任意多个字符。
例如,查询学生表中姓名以张开头的记录:
SELECT * FROM student WHERE name LIKE '张%';
运行结果为:
+----+--------+------------+-----+
| id | name | phone_number | age |
+----+--------+-------------+-----+
| 1 | 张三 | 123456789 | 18 |
| 7 | 张海洋 | 987654321 | 21 |
+----+--------+-------------+-----+
可以看到,查询结果包含了姓名以张开头的所有记录。
5. 查询前几条记录
查询某个表中前几条记录,可以使用LIMIT
关键字:
SELECT * FROM table_name LIMIT n;
其中n
是要查询的记录数。
例如,查询学生表中前3条记录:
SELECT * FROM student LIMIT 3;
运行结果为:
+----+--------+--------------+-----+
| id | name | phone_number | age |
+----+--------+--------------+-----+
| 1 | 张三 | 123456789 | 18 |
| 2 | 李四 | 234567890 | 19 |
| 3 | 王五 | 345678901 | 20 |
+----+--------+--------------+-----+
可以看到,查询结果包含了前3条记录。
6. 查询某一时间段内的记录
查询某个表中某一时间段内的记录,需要借助BETWEEN
关键字:
SELECT * FROM table_name WHERE column_name BETWEEN 'start_time' AND 'end_time';
其中column_name
是时间列,start_time
和end_time
是时间区间。
例如,查询学生表中出生日期在2000年到2002年之间的记录:
SELECT * FROM student WHERE birthdate BETWEEN '2000-01-01' AND '2002-12-31';
运行结果为:
+----+------+------+------------+
| id | name | age | birthdate |
+----+------+------+------------+
| 4 | 赵六 | 21 | 2001-01-01 |
| 5 | 孙七 | 22 | 2000-02-02 |
| 6 | 刘八 | 23 | 2002-03-03 |
+----+------+------+------------+
可以看到,查询结果包含了出生日期在2000年到2002年之间的所有记录。
总结
本文分享了6个SQL查询的小技巧,包括查询最大最小值、查询记录数、查询重复记录、查询匹配记录、查询前几条记录和查询某一时间段内的记录。这些小技巧可以让SQL查询更加简单高效。