SQL语句的各种连接查询
2014-07-28 09:11
417 查看
连接查询,等值和非等值连接
若在等值连接中把重复的属性列去掉,则为自然连接
自身连接,查询每一门课的间接先修课
外连接,在通常的连接操作中,只有符合条件的元祖才能作为结果输出。如上上表中没有200215125学生的信息,原因是他没有选课。但有时我们需要以某个表为主题列出所有元祖的情况,比如说以student表为主体列出所有的学生选课情况,这时候就需要用外连接。
左外连接,也就是说以左边表为主体,不符合条件的情况右边表的属性上填空值,如:
右外连接,如果右表的某个元祖在左表中找不到匹配值,左表填null。比如说我们查看所有课程被选的情况,其实左外很合理,用右外只是为了演示:
全部外连接,full join,如果右表的某个元祖在左表中找不到匹配值,左表填null,如果左表的某个元祖在左表中找不到匹配值,右表填null。
还有一个比较不一样的查询叫做子查询,带有exists谓词的子查询不返回任何数据,只产生逻辑真值或逻辑假值。比如:查询所有选修了1号课程的学生姓名。
SELECT * 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;
自身连接,查询每一门课的间接先修课
SELECT A.CNO,B.CPNO FROM COURSE A,COURSE B WHERE A.CPNO=B.CNO;
外连接,在通常的连接操作中,只有符合条件的元祖才能作为结果输出。如上上表中没有200215125学生的信息,原因是他没有选课。但有时我们需要以某个表为主题列出所有元祖的情况,比如说以student表为主体列出所有的学生选课情况,这时候就需要用外连接。
左外连接,也就是说以左边表为主体,不符合条件的情况右边表的属性上填空值,如:
SELECT STUDENT.SNO,SNAME,SSEX,SAGE,SDEPT,CNO,GRADE FROM STUDENT LEFT JOIN SC ON (STUDENT.SNO=SC.SNO);
右外连接,如果右表的某个元祖在左表中找不到匹配值,左表填null。比如说我们查看所有课程被选的情况,其实左外很合理,用右外只是为了演示:
SELECT SNO,SC.CNO,GRADE,CNAME,CCREDIT FROM SC RIGHT JOIN COURSE ON (SC.CNO=COURSE.CNO);
全部外连接,full join,如果右表的某个元祖在左表中找不到匹配值,左表填null,如果左表的某个元祖在左表中找不到匹配值,右表填null。
SELECT STUDENT.SNO,SNAME,SSEX,SAGE,SDEPT,CNO,GRADE FROM STUDENT FULL JOIN S ON (STUDENT.SNO=S.SNO);上语句不执行,原来mysql不支持full join,但是我们可以通过下面的方法来实现,这个叫做集合查询
SELECT STUDENT.SNO,SNAME,SSEX,SAGE,SDEPT,CNO,GRADE FROM STUDENT LEFT JOIN S ON (STUDENT.SNO=S.SNO) UNION SELECT STUDENT.SNO,SNAME,SSEX,SAGE,SDEPT,CNO,GRADE FROM STUDENT RIGHT JOIN S ON (STUDENT.SNO=S.SNO);
还有一个比较不一样的查询叫做子查询,带有exists谓词的子查询不返回任何数据,只产生逻辑真值或逻辑假值。比如:查询所有选修了1号课程的学生姓名。
SELECT SNAME FROM STUDENT WHERE EXISTS (SELECT * FROM SC WHERE SNO=STUDENT.SNO AND CNO='1');
相关文章推荐
- sql查询语句之SELECT的自连接
- sql语句实现2个表的查询(内连接)
- 关于数据库查询语句SqlDataReader的连接释放问题的解决办法
- 最强的sql server中查看连接数据的查询语句
- 2011.9.28 mysqli学习笔记 mysqli连接,multi_query多语句查询,SQL预处理stmt,事务处理
- 通用SQL数据库查询语句/连接查询/多表连接查询 sql小例子
- 三表左连接查询的sql语句写法
- SQL查询语句精华使用简要----关于连接
- 多表的内连接查询,附带取出重复数据的sql语句
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- sql语句的优化分析之一查询语句中左连接和函数效率分析比较
- 通用SQL数据库查询语句/连接查询/多表连接查询 sql小例子
- Oracle 数据库连接查询SQL语句
- SQL各种连接查询详解
- C#和SQL Server2000数据库连接,查询语句总结
- SQL语句:一种连接本表2个查询结果的复杂sql语句、一种查找一列有重复值的语句
- sql语句实现2个表的查询(内连接)收藏
- Oracle 数据库连接查询SQL语句
- sql查询语句——连接查询
- SQL各种连接查询详解(转)