




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021年11月13日星期六16.1 SELECT语句的简单查询 【例6-1】从作者表中找到每位作者姓名和住宅电话。 USE book_manage SELECT 姓名, 住宅电话 FROM 作者表 【例6-2】从“作者表”中找到姓为“李”的作者姓名和住宅电话。 USE book_manage SELECT 姓名, 住宅电话 FROM 作者表 WHERE 姓名 LIKE 李%第1页/共25页2021年11月13日星期六2 【例6-3】从“作者表”中找到住宅电话区号为“010”的作者编号、姓名和住宅电话。 USE book_manage SELECT 作者编号,姓名,住宅电话 FROM 作者表
2、WHERE 住宅电话 LIKE 010%第2页/共25页2021年11月13日星期六36.2 T-SQL高级查询6.2.1 多表查询 连接查询:通过每个表之间共同列的关联性来查询数据,它是关系数据库查询最主要的特征。连接查询分为内连接查询、外连接查询、自连接查询。 合并查询:使用UNION操作符的查询,是求两个或多个查询结果的并集。 第3页/共25页2021年11月13日星期六41连接查询 【例6-4】查找成绩为90分或以上的学生姓名、课程号和成绩。 USE Students SELECT Student.SName,SC.CNo,SC.Grade FROM Student JOIN SC O
3、N (Student.SNo = SC.SNo) WHERE Grade= 90第4页/共25页2021年11月13日星期六5连接类型 内连接(INNER):仅显示两个连接表中匹配的行,INNER关键字可以缺省。 【例6-5】查找选修了课程的学生姓名。 USE students SELECT DISTINCT S.SName FROM Student AS S INNER JOIN SC AS G ON (S.SNo = G.SNo) 第5页/共25页2021年11月13日星期六6 外连接(OUTER):连接双方有左右之分,“表1”称为“左”表,表2称为“右”表。用左表的每行数据去匹配右表的数
4、据列,符合连接条件的数据返回到结果集中,不符合连接条件的列将被填上NULL 值再返回到结果集中。 左外连接(Left Outer) 右外连接(Right Outer) 完全外连接(Full Outer) 第6页/共25页2021年11月13日星期六7 左外连接:结果集中包括“左”表中的所有行及“右”表中所有匹配的行,不包括“右”表中不匹配的行。 【例6-6】查看所有学生姓名及其选课情况(课程号)。 USE students SELECT S.SName, G.CNo FROM Student AS S LEFT OUTER JOIN SC AS G ON (S.SNo=G.SNo)第7页/共2
5、5页2021年11月13日星期六8 右外连接:包括“右”表中的所有行及“左”表中所有匹配的行,不包括“左”表中不匹配的行。 【例6-7】查找所有选修了课程的学生姓名。 USE students SELECT DISTINCT S.SName FROM Student AS S RIGHT OUTER JOIN SC AS G ON (S.SNo=G.SNo)第8页/共25页2021年11月13日星期六9 完全外连接:包括所有连接表中的所有行,不论它们是否匹配 。 【例6-8】查看所有任课教师及课程情况。 USE students SELECT T.TName, C.CName FROM Tea
6、chers AS T FULL OUTER JOIN Courses AS C ON (C.TNo = T.TNo) 第9页/共25页2021年11月13日星期六10 交叉连接(CROSS):即两个连接表的笛卡儿积,求两个表中所有行的连串,每个连串作为结果集中的一行。 【例6-9】“教师基本信息”表与“课程基本信息”表的交叉连接。 USE students SELECT T.TName, C.CName FROM Teachers AS T CROSS JOIN Courses AS C 第10页/共25页2021年11月13日星期六11 自连接 :连接双方可以是不同的两个表,也可以是同一个表
7、。在一个表与其自身之间进行连接为自连接。自连接可以是内连接或外连接。 【例6-10】求“数据库原理及应用”课程的间接先行课的课程号。 USE students SELECT C1.CName,C2.PCNo FROM Courses AS C1 JOIN Courses AS C2 ON (C1.PCNo=C2.CNo) WHERE C1.CName=数据库原理及应用第11页/共25页2021年11月13日星期六122合并查询 【例6-11】求table1和table2中的内容 。 SELECT * FROM table1 UNION SELECT * FROM table2 UNION操作符
8、将两个或两个以上的查询结果合并为一个结果集,其语法格式如下: UNION ALL UNION ALL 第12页/共25页2021年11月13日星期六136.2.2 分组查询 1GROUP BY子句 【例6-12】求各职称级别教师的平均年龄。 USE students SELECT 职称, AVG(Age) FROM Teachers WHERE Age=50 GROUP BY 职称第13页/共25页2021年11月13日星期六14 GROUP BY子句的语法格式为: GROUP BY ALL , n WITH CUBE | ROLLUP 【例6-13】求各职称级别教师的平均年龄。 SELECT
9、 职称, Sex, COUNT(*) AS 人数 FROM Teachers GROUP BY 职称,Sex WITH CUBE第14页/共25页2021年11月13日星期六152HAVING 子句 【例6-14】求平均成绩为80分或以上的学生的姓名及平均成绩。 USE Students SELECT S.SName,AVG(G.Grade) AS 平均成绩 FROM SC AS G JOIN Student AS S ON (G.SNo=S.SNo) GROUP BY S.SName HAVING AVG(G.Grade)=80第15页/共25页2021年11月13日星期六166.2.3 统
10、计查询 1聚合函数 【例6-16】求学生的平均成绩、最高分、最低分以及总分。 USE students SELECT AVG(Grade) AS 平均成绩, MAX(Grade) AS 最高分, MIN(Grade) AS 最低分, SUM(Grade) AS 总分 FROM SC第16页/共25页2021年11月13日星期六172. 使用COMPUTE和COMPUTE BY子句 【例6-18】求每名学生的所选课的门数、平均分和总分。 USE students SELECT S.SName,COUNT(*) AS 课程门数, AVG(G.Grade) AS 平均分,SUM(G.Grade) A
11、S 总分 FROM SC AS G JOIN Student AS S ON (G.Sno=S.SNo) GROUP BY S.Sname第17页/共25页2021年11月13日星期六186.2.4 嵌套查询 1使用IN的嵌套查询 使用嵌套查询改写【例6-5】,查找选修了课程的学生姓名 。 USE students SELECT SName FROM Student WHERE SNo IN ( SELECT DISTINCT SNo FROM SC) 第18页/共25页2021年11月13日星期六192使用比较运算符的嵌套查询 【例6-28】查询没有选修课程的学生姓名。 USE Studen
12、ts SELECT SName FROM Student WHERE SNo ALL ( SELECT DISTINCT SNo FROM SC ) 第19页/共25页2021年11月13日星期六203EXISTS嵌套查询 使用EXISTS的嵌套查询改写【例6-5】,查找选修了课程的学生姓名 。 USE Students SELECT SName FROM Student WHERE EXISTS ( SELECT * FROM SC WHERE SNo=Student.SNo ) 第20页/共25页2021年11月13日星期六21 改写【例6-28】,查询没有选修课程的学生姓名。 USE S
13、tudents SELECT SName FROM Student WHERE NOT EXISTS ( SELECT * FROM SC WHERE SNo = Student.SNo ) 第21页/共25页2021年11月13日星期六226.3 存储查询结果 6.3.1 将查询结果存储到新表中 SELECT语句的INTO子句可以将查询后所得的结果集存储到一个新表中。 【例6-36】将找到的选修了课程的学生学号、姓名和性别存储到一个新表中。 USE students SELECT SNo,SName,Sex INTO 学生名单 FROM Student WHERE EXISTS ( SELECT * FROM SC WHERE SNo = Student.SNo )第22页/共25页2021年11月13日星期六236.3.2 将查询结果添加到已有表中 用SELECT子查询也可以将查询所得的结果集添加到一个已有表中。 【例6-37】为“书籍档案”表添加从“书籍资料”表中属于“数据库”的所有书籍的记录。 USE bookmanage INSERT INTO 书籍档案 SELECT * FROM 书籍资料 WHERE 类别编号 IN (SELECT 类别编号 FROM 书籍类别 WHERE 书籍类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025汽车买卖合同的范本
- 2025年金属紧固件、金属钉项目建议书
- 2025年显示、记录系统合作协议书
- 2025居间服务合同在贷款公司间的应用
- 2025年妇幼保健院康复试题
- 2025年聚烯烃及改性材料合作协议书
- 2025年高性能铁氧体一次料合作协议书
- 2025年碳二馏份加氢催化剂合作协议书
- 2025年雕刻雕铣设备控制系统合作协议书
- 2025年剧装道具相关工艺美术品项目建议书
- 二方审核计划
- DB62∕T 3176-2019 建筑节能与结构一体化墙体保温系统应用技术规程
- 优秀病例演讲比赛PPT
- 吉林省矿产资源概况及分布
- 最新肺结核诊断和治疗指南
- 公司员工基本礼仪培训ppt完整版课件
- 工程项目综合应急预案(通用版)
- 半桥LLC谐振变换器设计与仿真
- 常见食物的性味归经附表
- 城市桥梁工程竣工验收
- NB_T 10393-2020《海上风电场工程施工安全技术规范》_(高清最新)
评论
0/150
提交评论