- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 数据操作
2. 基于其他表条件的更新 例3:将计算机系全体学生的成绩加5分。 (1)用子查询实现 UPDATE SC SET Grade = Grade + 5 WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = 计算机系 ) (2)用多表连接实现 UPDATE SC SET Grade = Grade + 5 FROM SC JOIN Student ON SC.Sno = Student.Sno WHERE Sdept = 计算机系 基于其他表条件的更新(续) 例4 将学分最低的课程的学分加2分。 UPDATE Course SET Ccredit = Ccredit + 2 WHERE Ccredit = ( SELECT MIN(Ccredit) FROM Course) 4.2.3 删除数据 用DELETE语句实现。格式: DELETE [ FROM ] 表名 [WHERE 删除条件 表名说明了要删除哪个表中的数据。 WHERE子句说明只删除表中满足条件的记录。 无条件删除 例1. 删除所有学生的选课记录。 DELETE FROM SC 有条件删除 (1)基于本表条件的删除。 例2.删除所有不及格学生的修课记录。 DELETE FROM SC WHERE Grade 60 基于其他表条件的删除 例3.删除计算机系不及格学生的修课记录。 (1)用子查询实现 DELETE FROM SC WHERE Grade 60 AND Sno IN ( SELECT Sno FROM Student WHERE Sdept = ‘计算机系’ ) (2)用多表连接实现 DELETE FROM SC FROM SC JOIN Student ON SC.Sno = Student.Sno WHERE Sdept = ‘计算机系’AND Grade 60 4.3 视图 4.3.1 基本概念 4.3.2 定义视图 4.3.3 通过视图查询数据 4.3.4 修改和删除视图 4.3.5 视图的作用 4.3.1 基本概念 视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,是基本表的部分行和列数据的组合。 视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基本表中。 基本表中的数据如果发生变化,从视图中查询出的数据也会随之变化。 基本概念(续) 视图可以从一个基本表中提取数据,也可以从多个基本表中提取数据,甚至还可以从其他视图中提取数据,构成新的视图。 对视图数据的操作最终都会转换为对基本表的操作。 基本概念(续) 4.3.2 定义视图 定义视图的格式如下: CREATE VIEW 视图名 [(视图列名表)] AS 查询语句 注意: 查询语句中通常不包含ORDER BY和DISTINCT子句。 在定义视图时要么指定视图的全部列名,要么全部省略不写,不能只写视图的部分列名。 必须明确指定视图所有列名的情况 某个目标列不是简单的列名,而是函数或表达式。 多表连接时选出了几个同名列作为视图的字段。 需要在视图中为某个列选用新的更合适的列名。 1.定义单源表视图 视图的数据取自一个基本表的部分行和列 例1 建立查询信息管理系学生的学号、姓名、性别和年龄的视图。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Ssex, Sage FROM Student WHERE Sdept = 信息管理系 例3 2.定义多源表视图 指定义视图的查询语句涉及多张表,这样定义的视图一般只用于查询,不用于修改数据。 例2 建立信息管理系选修了C001课程的学生的学号、姓名和成绩的视图。 CREATE VIEW V_IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 信息管理系 AND SC.Cno = C001 例8 3.在已有视图上定义新视图 可以在视图上再建立视图,这时作为数据源的视图必须是已经建立好的视图。 例3 利用例1建立的视图,建立查询信息管理系年龄小于20的学生的学号、姓名和年龄的视图。 CREATE VIEW IS_Student_
文档评论(0)