知识点--基于多表的连接查询讲义

知识点--基于多表的连接查询讲义

ID:35419467

大小:54.22 KB

页数:8页

时间:2019-03-24

知识点--基于多表的连接查询讲义_第1页
知识点--基于多表的连接查询讲义_第2页
知识点--基于多表的连接查询讲义_第3页
知识点--基于多表的连接查询讲义_第4页
知识点--基于多表的连接查询讲义_第5页
资源描述:

《知识点--基于多表的连接查询讲义》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于多表的连接查询两类表现形式:1、使用符合SQL标准的连接谓词表示形式。其中:当连接谓词中的比较符为时,为等值连接。若等值连接中去除表中相同字段名,为自然连接。若有多个连接条件,为复合连接。若表与自身连接,为自连接。例:采用等值连接法,列出每个学生及其班级详细情况。采用自然连接法,列出每个学生及其班级详细情况。采用自身连接法,查找不同课程成绩相同的学生的学号、课程号和成绩。采用复合连接法,查找选修了“汇编语言”课程且成绩在70分以上的学生的学号、姓名、课程名及成绩。2、T-SQL扩展使用关键字JOIN的表现形式。将连接分为内连接、外连接、交叉连接三种。内连接:按照ON所指定

2、的条件合并两表,并返回满足条件的行。例:查找student数据库中每个学生的基本情况以及班级情况。例:查找选修了“汇编语言”课程且成绩在70分以上的学生的学号、姓名、课程名及成绩。外连接:按照ON所指定的条件合并两表,连接的结果表不仅包含满足条件的行,还包括相应表中的所有行。左向外连接:不包括右表中的不匹配行。例:查找200001班所有学生的学号、姓名及他们选修的课程号,同时也列出该班没有选课的学生的学号、姓名。SELECTstudent_info・student_id,student_name,result_info.course»noFROMstudent-infoLEF

3、TOUTERJOINresult-infoONstudent-info.student-id=result-info.student-idWHEREclass-no^200001,右向外连接:不包括左表中的不匹配行。例:查找所有学生的学号、姓名及他们选修的课程号,同时也列出没选课的学生的学号、姓名。SELECTstudent-info.student-id,student-name,result-info・course.noFROMresult-infoRIGHTOUTERJOINstudent-infoONstudent-info.student_id=result_inf

4、o・student-id完整外部连接:包括两表中所有行。学生信息表完全外连接成绩信息表。SELECTresult-info.student-id,student-name,course-no,resultFROMstudent-infoFULLOUTERJOINresult-infoONstudent-info.student-id=result-info.student-id交叉连接:连接的结果表是由第一个表的每行与第二个表的每行拼接后形成的表。交叉连接不可使用WHERE子句。例题:列出学生所有可能的选课情况。SELECTstudent-id9student-name,co

5、urse_no,course-nameFROMstudent.infoCROSSJOINcourse-info子查询子查询应用范围:1、使用别名2、使用in或notin时候3、在select,update,delete,insert语句中4、使用比较运算符的时候5、使用any,some,all时候6、在使用exists或notexists7、在有表达式的地方。例题:创建一个新表Stu,要求:包含四个字段,“学号二“姓名二“性别”,“家庭住址”,将student-info表中相应的字段全部插入到该新表中。createtablestu(学号intnotnullprimarykey

6、,姓名char(10),性别char(2),家庭住址char(50))insertintostu(学号,姓名,性别,家庭住址)selectstudent-id?student-name,student-sex,addressfromstudent-info例题:查询选修“数据库原理“课程的学生名单selectstudent-namefromstudent_infowherestudent-idin(selectstudent-idfromresult-infowherecourse_no=(selectcourse.nofromcourse-infowherecourse_n

7、ame=/数据库原理'))例题:把200001班的全体学生成绩加10分。方法1:begintransactionupdateresult-infosetresult=result+10wherestudent-idin(selectstudent-idfromstudent-infowhereclass_no=200001)andstudent-idin(selectdistinctstudent-idfromresult-info)rollbacktransaction方法2begintransact

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。