- 1、本文档共129页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语句辅导课案
(1) 基于本表条件的更新 例.将学生95001的年龄改为22岁 UPDATE Student SET Sage = 22 WHERE Sno = ‘95001’ (2)基于其它表的更新 用子查询实现 用多表连接查询实现 例.将计算机系全体学生的成绩置0 1. 用子查询实现 UPDATE SC SET Grade = 0 WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept=’CS’) 2. 用多表连接查询实现 UPDATE SC SET Grade = 0 FROM SC JOIN Student ON SC.Sno = Student.Sno WHERE Sdept=’CS’ 例 . 查询选修了课程名“信息系统”的 学生的学号、姓名 SELECT Sno, Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname = ‘信息系统’) ) (1) (2) (3) 嵌套查询 二.带有比较运算符的子查询 二.带有比较运算符的子查询 带比较运算符的子查询指父查询与子查询之间用比较运算符连接, 当用户能确切知道内层查询返回的是单值时,可用、、=、=、=、运算符 例.查询与“刘晨”在同一个系学习的学生 当知道一个学生只在一个系学习时,即子查询只返回一个结果时,可用比较运算符 SELECT Sno, Sname, Sdept FROM Student WHERE Sdept = ( SELECT Sdept FROM Student WHERE Sname = ‘刘晨’) 例. 查询‘c01’课程考试成绩最高的学生的姓名 SELECT Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Grade = ( SELECT MAX(Grade) FROM SC WHERE Cno = ‘C01’) and cno = ‘c01’) 相关子查询 相关子查询在子查询的Where子句中关联外部表 经常用EXISTS( )函数引导 EXISTS代表存在量词,带EXISTS函数的子查询不返回结果数据,只产生逻辑真值和逻辑假值。 例.查询选修了1号课程的学生姓名 SELECT Sname FROM Student WHERE EXITSTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = ‘1’) 等价于: SELECT Sname FROM Student JOIN SC ON SC.Sno = Student.Sno WHERE Cno = ‘1’ 注1:处理过程为:先外后内;由外层的值决定内层的结果;内层执行次数由外层结果数决定。 注2: 由于EXISTS的子查询只能返回真或假值,因此在这里给出列名无意义。所以在有EXISTS的子查询中,其目标列表达式通常都用*。 上句的处理过程为: 1.找外层表Student表的第一行,根据其Sno值处理内层查询 2.由外层的值与内层的结果比较,由此决定外层条件的真、假 3.顺序处理外层表Student表中的第2、3、 …行。 例 查询没有选修1号课程的学生姓名 SELECT Sname FROM Student WHERE NOT EXITSTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = ‘1’) 等价于: SELECT Sname FROM Student WHERE Sno NOT IN ( SELECT Sno FROM SC WHERE Cno =‘1’ ) 修改数据 基本表数据的插入 基本表数据更新 基本表数据删行 基本表数据的插入 一.单行数据的插入 一.单行数据的插入 插入单行记录的INSERT语句的格式为: INSERT INTO 表名 [列名表]
文档评论(0)