§3.3查询语句 语句格式: SELECT[ ALL DISTINCT][表名.]{*列名表达 式[AS新列名] INTO:主变量1[,主变量2].] FROM表名[表别名], WER条件表达式|子查询] [ GROUP BY列名1, LHAVING分组表达式]] I UNION INTERSECT EXCEPT] SELECT.FROM. [ ORDER BY列名列序号[ ASC DESC],…];
§3.3 查询语句 一、语句格式: SELECT [ALL|DISTINCT] [表名.]{*|列名|表达 式[AS 新列名]} [INTO :主变量1[,:主变量2]…] FROM 表名[表别名], … [WHERE 条件表达式|子查询] [GROUP BY 列名1, … [HAVING 分组表达式]] [{UNION|INTERSECT |EXCEPT}SELECT…FROM…] [ORDER BY 列名|列序号[ASC|DESC], …];
SELECT. FROM常用语句执行过程 SELECT ⑤投影 FROM ① TABLE→内存 WHERE ②选取元组 GROUP ③分组 HAVING ④选择分组 LUNION }⑥查徇结果的集 合运算 SELECT ]①~⑤ ORDER BY ⑦排序输出
SELECT…FROM常用语句执行过程 SELECT… ⑤ 投影 FROM… ① TABLE→内存 WHERE… ② 选取元组 GROUP… ③ 分组 HAVING… ④ 选择分组 [{UNION|… } ⑥ 查徇结果的集 合运算 SELECT… ] ①~⑤ ORDER BY…… ⑦ 排序输出
单表查询 1.选择表中的列 例1.求学生所在系及姓名 SELECT SD. SN FROM S 例2.求学生的全部信息 SELECT S# SN SA. SD @ FROM S @(SELECT *
二、单表查询 1. 选择表中的列 例1.求学生所在系及姓名 SELECT SD, SN FROM S; 例2.求学生的全部信息 SELECT S#,SN,SA,SD @ FROM S; @ (SELECT *)
2.选择表中的行 1)消除重复行: DISTINCT(缺省为AL) 例:求选修了课程的学生号 SELECT DISTINCT S# FROM 2)选满足一定条件的行 用 WHERE子句实现 例:求计算机系年龄小于19的姓名及年龄 SELECT SN. SA FROM WHERE SD=CS AND SA19
2. 选择表中的行 1) 消除重复行: DISTINCT (缺省为ALL) 例: 求选修了课程的学生号 SELECT DISTINCT S# FROM S; 2) 选满足一定条件的行: 用WHERE子句实现 例:求计算机系年龄小于19的姓名及年龄 SELECT SN, SA FROM S WHERE SD=’CS’ AND SA<19;
例:求年龄在18~22(含18,22)之间的学 生名及年龄(或不在18-22之间) SELECT SN. SA FROM S WHERE SA betWeen 18 ANd 22 (WHERE SA>=18 AND SA-22) (WHERE SA NOT BETWEEW 18 AND 22) (WHERE SA<18 OR SA)22
例: 求年龄在18~22 (含18, 22)之间的学 生名及年龄(或不在18~22之间) SELECT SN, SA FROM S WHERE SA BETWEEN 18 AND 22; (WHERE SA>=18 AND SA<=22); (WHERE SA NOT BETWEEW 18 AND 22); (WHERE SA<18 OR SA>22);