SQL集锦.doc_第1页
SQL集锦.doc_第2页
SQL集锦.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

select cno,count(sno) from sc t group by cno having count(sno)1select sno from sc t group by sno having count(*)1select student.*,sc.* from student,sc where student.sno=sc.sno若在等值连接中把目标列中重复的属性列去掉则为自然连接select student.sno, sname, ssex, sage, sdept, cno, grade from student, sc where student.sno = sc.sno连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,称为自身连接。查询一门课的间接先修课(即先修课的先修课)在Course表中,只有每门课的直接先修课信息,而没有先修课的先修课。要得到这个信息,必须先对一门课找到其先修课,再按此先修课的课程号,找到它的先修课程。这就要讲Course表与其自身连接。为此,要为Course表取两个别名,一个是first,一个是secondselect o, second.cpno from course first, course second where first.cpno = o;select student.sno, sname, ssex, sage, sdept, cno, grade from student left join sc on (student.sno = sc.sno);复合条件连接:查询选修2号课程的且成绩在60分以上的所有学生select student.sno, sname from student, sc where student.sno = sc.sno and o = 2 and sc.grade 60;连接操作除了可以是两表连接,一个表与其自身连接外,还可以是两个以上的表进行连接,后者通常称为多表连接。查询每个学生的学号、姓名、选修的课程名及成绩。select student.sno, sname, cname, grade from student, sc, course where student.sno = sc.sno and o = o嵌套查询select sname from student where sno in (select sno from sc where cno = 2)l 带有In谓词的子查询select sno, sname, sdept from student where sdept in (select sdept from student where sname = 刘晨)本例中,子查询的查询条件不依赖于父查询,称为不相关子查询。一种求解方法是由里向外处理,即先执行子查询,子查询的查询结果用于建立其父查询的查询条件。得到如下的语句:select sno, sname, sdept from student where sdept in (CS)本例中的查询也可以用自身连接来完成:select s1.sno, s1.sname, s1.sdept from student s1, student s2 where s1.sdept = s2.sdept and s2.sname = 刘晨可见,实现同一个查询可以有多种方法,当然不同的方法其执行效率可能会有差别,甚至会差别很大。这就是数据库编程人员应该掌握的数据库性能调优技术。查询选修了课程名为“信息系统”的学生学号和姓名。本查询涉及学号、姓名和课程名3个属性。学号和姓名存放在Student表中,课程名存放在Course表中,但Student与Course两个表之间没有直接联系,必须通过SC表建立它们二者之间的联系。所以本查询实际上涉及3个关系:select sno, sname from student where sno in (select sno from sc where cno in (select cno from course where cname = 信息系统);select student.sno, sname from student, sc, course where student.sno = sc.sno and o = o and ame = 信息系统;l 带有比较运算符的子查询带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。select sno, cno from sc x where grade =(select avg(grade) from sc y where y.sno = x.sno)l 带有any(some)或all谓词的子查询子查询返回单值时可以用比较运算符,但返回多值时要用any(有的系统用some)或all谓词修饰符。而是用any或all谓词时则必须同时使用比较运算符。其语义为:select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论