软考
APP下载

经典sql查询语句50条

作为一门基础性的计算机语言,SQL可以用来访问和处理关系型数据库中的数据。在日常生活、工作中,我们都会经常遇到需要查询数据库的场景,那么如何写出高效且准确的SQL查询语句呢?

以下是50条经典的SQL查询语句,从多个角度分别分析这些查询语句的特点和用途,帮助您更好地掌握SQL查询语句的使用。

一、基本查询语句

1.SELECT * FROM table_name;

这是最基本的查询语句,会返回指定表中的所有数据。

2.SELECT column1, column2, ... FROM table_name;

这条查询语句可以指定需要查询的列。

3.SELECT DISTINCT column1, column2, ... FROM table_name;

该查询语句的作用是去除重复数据并返回查询结果。

4.SELECT column1, column2, ... FROM table_name WHERE condition;

该语句通过WHERE条件筛选出符合要求的数据。

5.SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2;

与6.SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2;

这两个查询语句则是可以筛选出符合多个条件或多人条件的数据。

7.SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;

ORDER BY可以将结果按照指定列升序或降序排列。

二、 聚合查询

8.SELECT COUNT(column_name) FROM table_name;

该查询语句可以统计指定列中的记录数。

9.SELECT SUM(column_name) FROM table_name;

该查询语句可以对指定列求和。

10.SELECT AVG(column_name) FROM table_name;

该查询语句可以对指定列求平均值。

11.SELECT MAX(column_name) FROM table_name;

该查询语句可以返回指定列中的最大值。

12.SELECT MIN(column_name) FROM table_name;

该查询语句可以返回指定列中的最小值。

三、 分组查询

13.SELECT column_name1, COUNT(column_name2) FROM table_name GROUP BY column_name1;

该查询语句可以根据一个或多个列对结果进行分组,并统计每组中指定列的记录数。

14.SELECT column_name1, SUM(column_name2) FROM table_name GROUP BY column_name1;

该查询语句可以按照指定列对结果进行分组,并计算每组中指定列的总和。

15.SELECT column_name1, AVG(column_name2) FROM table_name GROUP BY column_name1;

该查询语句可以按照指定列对结果进行分组,并计算每组中指定列的平均值。

16.SELECT column_name1, MAX(column_name2) FROM table_name GROUP BY column_name1;

该查询语句可以按照指定列对结果进行分组,并返回每组中指定列的最大值。

17.SELECT column_name1, MIN(column_name2) FROM table_name GROUP BY column_name1;

该查询语句可以按照指定列对结果进行分组,并返回每组中指定列的最小值。

四、 连接查询

18.SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;

INNER JOIN是最常用的连接查询语句,它将两个或多个表连接在一起,根据指定列的值进行匹配。

19.SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;

LEFT JOIN会返回表1中所有的数据和与表1关联的表2中匹配的数据。

20.SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;

RIGHT JOIN会返回表2中所有的数据和与表2关联的表1中匹配的数据。

21.SELECT column_name(s) FROM table1 FULL JOIN table2 ON table1.column_name = table2.column_name;

FULL JOIN会返回表1、表2中所有的数据,并将它们根据指定列值进行匹配。

五、 子查询

22.SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition);

该查询语句会返回在子查询中满足条件的指定列中的记录。

23.SELECT column_name(s) FROM table_name WHERE column_name NOT IN (SELECT column_name FROM table_name WHERE condition);

该查询语句会返回在子查询中不满足条件的指定列中的记录。

24.SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);

该查询语句会返回满足子查询中条件的任何记录。

25.SELECT column_name(s) FROM table_name WHERE NOT EXISTS (SELECT column_name FROM table_name WHERE condition);

该查询语句会返回不满足子查询中条件的任何记录。

六、 模糊查询

26.SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

该查询语句中的LIKE操作符允许在查询中使用通配符,比如%代表0个或多个字符,_代表一个字符。

27.SELECT column_name(s) FROM table_name WHERE column_name NOT LIKE pattern;

该查询语句中的NOT LIKE操作符将返回不匹配查询中指定模式的任何记录。

七、 修改查询

28.UPDATE table_name SET column_name = new_value WHERE column_name = some_value;

该查询语句可以用来更新表中的数据。

29.DELETE FROM table_name WHERE column_name = some_value;

该查询语句会删除满足条件的行。

30.INSERT INTO table_name ( column1, column2,...) VALUES (value1, value2,...);

该查询语句会将指定的值插入到表中。

八、 高级查询

31.SELECT column_name(s) FROM table_name LIMIT number;

该查询语句可以限制结果集中的行数。

32.SELECT column_name(s) FROM table_name LIMIT number OFFSET offset;

该查询语句可以限制结果集中的行数并设定偏移量,也就是让查询从某一行开始返回数据。

33.SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

该查询语句会返回在指定范围内的值。

34.SELECT column_name(s) FROM table_name WHERE column_name NOT BETWEEN value1 AND value2;

该查询语句会返回不在指定范围内的值。

35.SELECT column_name(s) FROM table_name WHERE column_name IS NULL;

该查询语句会返回指定列中的空值。

36.SELECT column_name(s) FROM table_name WHERE column_name IS NOT NULL;

该查询语句会返回指定列中不为空的值。

37.SELECT column_name(s) FROM table_name WHERE column_name REGEXP 'expression';

该查询语句中的REGEXP操作符可以匹配指定表中的数据。

38.SELECT column_name(s) FROM table_name WHERE column_name SOUNDS LIKE 'expression';

该查询语句中的SOUNDS LIKE操作符可以在搜索中做语音匹配。

39.SELECT column_name(s) FROM table_name WHERE column_name = ANY (SELECT column_name FROM table_name WHERE condition);

该查询语句中的ANY操作符与IN类似,但可以将子查询中的多个值进行比较。

40.SELECT column_name(s) FROM table_name WHERE column_name = ALL (SELECT column_name FROM table_name WHERE condition);

该查询语句中的ALL操作符可以将子查询中的多个值都与指定列进行比较。

41.SELECT column_name(s) FROM table_name WHERE column_name = some_value;

该查询语句中的some_value可以是具体的值,也可以是另一条SELECT语句。

42.SELECT column_name(s) FROM table_name WHERE column_name <> some_value;

该查询语句会返回不等于指定值的数据。

43.SELECT IFNULL(column_name1,column_name2) FROM table_name;

IFNULL可以将指定列的空值替换为另一个指定的值。

44.SELECT column_name(s) FROM table_name GROUP BY column_name HAVING COUNT(column_name) > value;

HAVING语句可以根据分组后的记录筛选数据。

45.SELECT column_name(s) FROM table_name GROUP BY column_name HAVING SUM(column_name) > value;

group_by语句还支持更多的聚合函数,比如SUM()。

46.SELECT column_name(s) FROM table_name INNER JOIN table_name ON column_name = column_name WHERE condition GROUP BY column_name HAVING COUNT(column_name) > value;

或其他一些复杂的查询语句可以通过组合以上语句来实现。

47.SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition) AND column_name IN (SELECT column_name FROM table_name WHERE condition);

有一些其他类型的查询语句,如复合OR,复合AND,复合NOT等。

48.SELECT column_name(s) FROM table_name WHERE TIMESTAMPDIFF(MINUTE, column_name1, column_name2) >= some_value;

TIMESTAMPDIFF可以计算时间段内的差异。

49.SELECT column_name(s) FROM table_name WHERE MONTH(column_name) = some_value;

MONTH可以返回指定列中的月份。

50.SELECT column_name(s) FROM table_name WHERE DAY(column_name) = some_value;

DAY可以返回指定列中的日期。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库