SQL的数据查询功能1
数据查询
• SQL的核心是查询。SQL的查询命令也称作
SQL SELECT命令,该命令使用非常灵活, 可以完成复杂的查询。
4.4.1 SELECT语句的一般格式
• SELECT语句的一般格式: • SELECT[ALL|DISTINCT]<字段名>[别名][,<字段
名>[别名]]...
• FROM<表名或视图名>[别名][,<表名或视图名
• 【例4.19】查询年龄在20~23岁(包括20岁
和23岁)之间的学生的姓名、系别和年龄。
• SELECT 姓名,院系编号,年龄 FROM 学生
WHERE 年龄 BETWEEN 20 AND 23
• 与BETWEEN...AND...相对的谓词是NOT
BETWEEN...AND...。
学生姓名、系别和年龄。
• SELECT 姓名,院系编号,年龄; • FROM 学生; • WHERE 年龄 NOT BETWEEN 20 AND 23
• SELECT DISTINCT 学号 FROM 成绩
• 2.查询满足条件的记录
• 查询满足指定条件的记录可以通过WHERE
子句实现。
(1)比较大小
• 【例4.16】查询院系编号为“03”的学生名
单。
• SELECT 姓名 FROM 学生 WHERE 院系编号
=’03’
• 【例4.17】查询所有年龄在20岁以下的学
生姓名及其年龄。
• SELECT 姓名,年龄 FROM 学生 WHERE 年
龄<20
(2)确定范围
• 谓词BETWEEN... AND...和NOT BETWEEN...
AND...可以用来查找字段值在(或不在)指定 范围内的记录,其中BETWEEN后是范围的 下限(即低值),AND后是范围的上限(即高 值)。
分字段感兴趣,这时可以通过在SELECT子句指定要查询 的字段。
• 【例4.13】查询全体学生的学号与姓名。 • SELECT 学号,姓名 FROM 学生 • SELECE指定的各个列的先后顺序可以与表中的顺序不一
致。用户可以根据应用的需要改变列的显示顺序。
• (2)查询全部列
• 将表中的所有字段都选出来,可以有两种
>[别名]]...
• [WHERE<条件表达式>] • [GROUP BY <字段名>[HAVING <条件表达式>]] • [ORDER BY <字段名>[ASC|DESC]]
• 说明:
• SELECT 指明要查询的数据的字段或字段列表
• FROM 指明从哪(几)个表中进行查询
• WHERE 指明返回数据必须满足的条件
方法。一种方法就是在SELECT关键字后面 列出所有字段名,也可简单地用*来指定。
• 【例4.14】查询全体学生的详细记录。
• SELECT * FROM 学生
二、选择表中的若干记录
• 1.消除取值重复的行 • SELECT 学号 FROM 成绩 • 执行上面的SELECT语句后,该查询结果里
包含了许多重复的行。如果想去掉结果表 中的重复行,必须指定DISTINCT短语:
• GROUP BY
分组
指明返回的数据通过哪些列进行
• HAVING 必须跟随GROUP BY使用,指明分组条
件
• ORDER BY 对查询结果进行排序
4.4.2 基本查询
• 1.选择表中的若干列 • 选择表中的全部字段或部分字段,这就是投影运算。 • (1)查询指定字段在很多情况下,用户只对表中的一部