1. SQL查询语句的基本结构
SQL是Structured Query Language的缩写,意为结构化查询语言。是一种关系型数据库的标准语言。SQL查询语句的基本结构包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等关键字。其一般结构为:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
[WHERE 条件表达式 ]
[GROUP BY 分组列名]
[HAVING 分组结果限制条件]
[ORDER BY 排序列1 [ASC|DESC],排序列2 […]]
其中,SELECT关键字用于选择表中的特定列,FROM关键字用于指定表名,WHERE关键字用于指定条件,GROUP BY关键字用于按照某一列进行分组,HAVING关键字用于对分组结果进行限制,ORDER BY关键字用于对查询结果进行排序。
2. SELECT关键字详解
2.1 基本用法
SELECT关键字用于选择查询结果中的列,其基本用法如下:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
其中,列名可以是表中的任意字段,也可以使用一些SQL函数对查询结果进行处理,如AVG、MAX、MIN、COUNT、SUM等。
例如,查询学生表student中所有学生的姓名和年龄:
SELECT name, age
FROM student
2.2 别名用法
SELECT关键字还支持为列起别名,其语法如下:
SELECT 列名1 AS 别名1 [,列名2 AS 别名2…]
FROM 表名 [,表名2…]
其中,AS关键字可以省略。例如,查询学生表student中所有学生的姓名和年龄,并为年龄列起别名age:
SELECT name, age AS 年龄
FROM student
3. WHERE关键字详解
3.1 基本用法
WHERE关键字用于在查询结果中指定筛选条件,其基本用法如下:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
WHERE 条件表达式
其中,条件表达式可以使用比较运算符、逻辑运算符、通配符等。
例如,查询学生表student中年龄大于等于20岁的学生姓名和年龄:
SELECT name, age
FROM student
WHERE age >= 20
3.2 使用LIKE运算符进行模糊查询
LIKE运算符用于在查询结果中进行模糊匹配,其语法如下:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
WHERE 列名 LIKE 模式
其中,模式可以使用通配符:
%:表示任意字符串
_:表示任意一个字符
例如,查询学生表student中姓名以“Li”开头的学生:
SELECT name
FROM student
WHERE name LIKE 'Li%'
4. GROUP BY关键字详解
4.1 基本用法
GROUP BY关键字用于按照某一列进行分组,其语法如下:
SELECT 列名1 [,列名2…], 聚合函数1 [,聚合函数2…]
FROM 表名 [,表名2…]
WHERE 条件表达式
GROUP BY 列名1 [,列名2…]
其中,列名1、列名2…表示要查询的列,聚合函数1、聚合函数2…表示要对查询结果进行的聚合操作,如AVG、MAX等。
例如,查询学生表student中不同年龄段的学生数量:
SELECT age, COUNT(*)
FROM student
GROUP BY age
4.2 利用HAVING子句对分组结果进行筛选
HAVING关键字用于对分组结果进行限制,其语法如下:
SELECT 列名1 [,列名2…], 聚合函数1 [,聚合函数2…]
FROM 表名 [,表名2…]
WHERE 条件表达式
GROUP BY 列名1 [,列名2…]
HAVING 条件表达式
其中,HAVING子句的语法与WHERE子句相似,用于对聚合结果进行筛选。
例如,查询学生表student中年龄大于等于20岁且人数大于等于2的年龄段:
SELECT age, COUNT(*)
FROM student
WHERE age >= 20
GROUP BY age
HAVING COUNT(*) >= 2
5. ORDER BY关键字详解
5.1 基本用法
ORDER BY关键字用于对查询结果进行排序,其语法如下:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
WHERE 条件表达式
ORDER BY 排序条件1 [ASC|DESC] [,排序条件2 [ASC|DESC]…]
其中,排序条件可以是列名,也可以是聚合函数的结果。ASC表示升序排列,DESC表示降序排列。
例如,查询学生表student中按照年龄从小到大排序的学生姓名和年龄:
SELECT name, age
FROM student
ORDER BY age ASC
5.2 多列排序
ORDER BY关键字还支持多列排序,其语法如下:
SELECT 列名1 [,列名2…]
FROM 表名 [,表名2…]
WHERE 条件表达式
ORDER BY 排序条件1 [ASC|DESC] [,排序条件2 [ASC|DESC]…]
例如,查询学生表student中按照年龄从小到大、姓名从小到大排序的学生姓名和年龄:
SELECT name, age
FROM student
ORDER BY age ASC, name ASC
总结
SQL查询语句是关系型数据库管理系统中非常重要的部分,能够实现数据的高效查询、分组、排序等操作。本文总结了SQL查询语句中的关键字及其用法,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等,介绍了每个关键字的基本用法以及相关的高级用法。读者可以通过实践和对比来逐步掌握SQL查询语句的使用技巧。