悄悄分享6个SQL查询小技巧

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 BYHAVINGCOUNT函数:

SELECT column_name1, column_name2, COUNT(*) FROM table_name GROUP BY column_name1, column_name2 HAVING COUNT(*) > 1;

其中column_name1column_name2是重复的列名。

例如,查询学生表中重复的姓名和电话号码:

SELECT name, phone_number, COUNT(*) FROM student GROUP BY name, phone_number HAVING COUNT(*) > 1;

运行结果为:

+------+--------------+----------+

| name | phone_number | COUNT(*) |

+------+--------------+----------+

| 张三 | 123456789 | 2 |

+------+--------------+----------+

可以看到,学生表中有两个人叫做张三,电话号码都是123456789。

4. 查询匹配记录

查询某个表中满足条件的记录,可以使用WHERELIKE关键字:

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_timeend_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查询更加简单高效。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签