SELEC句型使用实例.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SELEC句型使用实例 例1 教学数据中有四个基本表: T(T#,TNAME,TITLE) C(C#,CNAME,T#) S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE) 用户有一个查询语句: 检索学习课程号为C2课程的学生学号与姓名。 第一种写法(连接查询): SELECT S.S#, SNAME FROM S,SC WHERE S.S#=SC.S# AND C#=C2; 第二种写法(嵌套查询): SELECT S#,SNAME FROM S WHERE S# IN (SELECT S# FROM SC WHERE C#=C2); 第二种写法(嵌套查询)(另一种写法): SELECT S#,SNAME FROM S WHERE C2 IN(SELECT C# FROM SC WHERE S#=S.S# ); 第三种写法(使用存在量词的嵌套查询): SELECT S#,SNAME FROM S WHERE EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND C#=C2); 例2 对于上例教学数据库中四个基本表T、C、S、SC,下面用SELECT语句表达下列各个查询语句。 ① 检索学习课程号为C2的学生学号与成绩。 SELECT S#,SCORE FROM SC WHERE C#=C2; ②检索学习课程号为C2课程的学生学号与姓名。 ③ 检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。 SELECT S.S#,SNAME FROM S,SC,C,T WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T# =T.T# AND TNAME =LIU; 与②一样,本例也由多种写法, 例如,嵌套查询写法。 ④检索选修课程号为C2或C4的学生学号。 SELECT S# FROM SC WHERE C# =‘C2’ OR C# =‘C4’; ⑤检索至少选修课程号为C2和C4的学生学号。 SELECT X.S# FROM SC AS X,SC AS Y WHERE X.S# =Y.S# AND X.C# =C2 AND Y.C# =C4; ⑥ 检索不学C2课程的学生姓名与年龄。 SELECT SNAME,AGE FROM S WHERE S# NOT IN(SELECT S# FROM SC WHERE C#=C2); 或者: SELECT SNAME,AGE FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.S#=S.S# AND C#=C2); 这个查询不能使用连接查询写法。 ⑦ 检索学习全部课程的学生姓名。 在表S中找学生,要求这个学生学了全部课程。 换言之,在表S中找学生,在C中不存在一门课程,这个学生没有学。 按照此语义,就可写出查询语句的SELECT表达方式: SELECT SNAME FROM S WHERE NOT EXISTS /* C表中不存在一门课程 */ (SELECT * FROM C WHERE NOT EXISTS /* 该学生没有学 */ (SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#)); ⑧ 检索所学课程包含学号为S3学生所学课程的学号。 ·在SC表中找一个学生(S#), ·不存在S3学的一门课(C#), ·该学生没有学。 SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTS /* 不存在S3学的一门课 */ (SELECT * FROM SC AS Y WHERE Y.S#=S3 AND NOT EXISTS /* 该学生没有学 */ (SELECT * FROM SC AS Z WHERE Z.S#=X.S# AND Z.C#=Y.C#)); S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE) ⑴检索学习课程号为C2课程的学生学号与成绩。 πS#,SCORE(σC#=C2(SC)) 表达式中也可以不写属性名,而写上属性的序号: π1,3(σ2=C2(SC)) ⑵ 检索学习课程号为C2的学生学号与姓名。 πS

文档评论(0)

wxbsyx + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档