第五章SQL数据操作功能.ppt
文本预览下载声明
第5章 SQL语言数据操作功能;5.1 数据查询功能 ;5.1.1 查询语句的基本结构
SELECT [ALL|DISTINCT]目标列[,目标列] --需要哪些列
FROM 基本表(或视图) --来自哪些表
[WHERE 条件表达式] --根据什么条件
[GROUP BY 列名1[HAVING 内部函数表达式]]
[ORDER BY 列名1 [ASC|DESC]];
语句含义:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。;
如果有ORDER子句,则结果表要根据指定的列名2按升序或降序排序;
如果有GROUP子句,则将结果按列名1的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。通常会在每组中作用集函数。如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。;5.1.2 简单查询;(2)查询全部列
例3.查询全体学生的记录
SELECT Sno,Sname,Ssex, Sage, Sdept
FROM Student
等价于:
SELECT * FROM Student ;(3)查询经过计算的列
例4.查询全体学生的姓名及其出生年份。
SELECT Sname,2010 - Sage
FROM Student
结果为如下形式: Sname 2010-Sage ------------- ------------------
S1 1984 S2 1983 S3 1985 S4 1985
例5.含字符串常量的列:查询全体学生的姓名和出生年份,并在出生年份列前加一列,此列的每行数据均为“出生年份”常量值。
SELECT Sname,‘出生年份’, 2010-Sage
FROM Student ;(4)改变列标题
语法:
列名 | 表达式 [ AS ] 列标题
或:
列标题 =列名 | 表达式
例:
SELECT Sname 姓名, 2008 - Sage 年份
FROM Student;(5)消除取值相同的记录
例6.在修课表中查询有哪些学生修了课程,要求列出学生的学号。
SELECT Sno FROM SC
结果中有重复的行。
用DISTINCT关键字可以去掉结果中的重复行。
DISTINCT关键字放在SELECT词的后边、目标列名序列的前边。
SELECT DISTINCT Sno FROM SC;2. 查询满足条件的元组 ;(1)比较大小;(2)确定范围;例10.查询年龄在20~23岁之间的学生的姓名、所在系和年龄。
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23
等价于:
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage =20 AN
显示全部