- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集合查询(续) [例52] 查询计算机科学系中年龄大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage19; 基于派生表的查询 子查询不仅可以出现在WHERE子句中,还可以出现在FROM子句中,这时子查询生成的临时派生表(Derived Table)成为主查询的查询对象 基于派生表的查询 [例]找出每个学生超过他自己选修课程平均成绩的课程号SELECT Sno, CnoFROM SC, (SELECTSno, Avg(Grade) FROM SC GROUP BY Sno)AS Avg_sc(avg_sno,avg_grade)WHERE SC.Sno = Avg_sc.avg_snoand SC.Grade =Avg_sc.avg_grade 基于派生表的查询 如果子查询中没有聚集函数,派生表可以不指定属性列,子查询SELECT子句后面的列名为其缺省属性。 [例]查询所有选修了 1号课程的学生姓名 SELECT Sname FROM Student, (SELECT Sno FROM SC WHERE Cno= 1 ) AS SC1 WHERE Student.Sno=SC1.Sno; 通过FROM子句生成派生表时,AS可省略,但必须指定别名 SELECT语句的一般格式 SELECT [ALL|DISTINCT] 目标列表达式 [别名] [ ,目标列表达式 [别名]] … FROM 表名或视图名 [别名] [ ,表名或视图名 [别名]] … [WHERE 条件表达式] [GROUP BY 列名1 [HAVING 条件表达式]] [ORDER BY 列名2 [ASC|DESC] SELECT语句的一般格式 SELECT [ALL|DISTINCT]目标列表达式 [别名] [ ,目标列表达式 [别名]] …FROM 表名或视图名 [别名] [ ,表名或视图名 [别名]] … |(SELECT语句)[AS]别名[WHERE 条件表达式][GROUP BY 列名1[HAVING条件表达式]][ORDER BY 列名2 [ASC|DESC]]; 目标列表达式的可选格式 目标列表达式格式(1) *(2) 表名.*(3) COUNT([DISTINCT|ALL]* )(4) [表名.]属性列名表达式[,表名.]属性列名表达式]… 其中属性列名表达式可以是由属性列、作用于属性列的聚集函数和常量的任意算术运算(+, -, *, /)组成的运算公式 聚集函数的一般格式 COUNT SUM AVG ([DISTINCT|ALL] 列名) MAX MIN WHERE子句的条件表达式的可选格式 (1)属性列名 θ 属性列名 常量 [ANY|ALL] (SELECT语句) (2)属性列名 [NOT] BETWEEN 属性列名 属性列名 常量 AND 常量 (SELECT语句) (SELECT语句) WHERE子句的条件表达式的可选格式 (3) (值1[, 值2 ] …)属性列名 [NOT] IN (SELECT语句) (4) 属性列名 [NOT] LIKE 匹配串 (5) 属性列名 IS [NOT] NULL (6) [NOT] EXISTS (SELECT语句) WHERE子句的条件表达式的可选格式 (7) AND AND条件表达式 条件表达式 条件表达 … OR OR * 带有比较运算符的子
文档评论(0)