欢迎来到天天文库
浏览记录
ID:43215067
大小:156.00 KB
页数:50页
时间:2019-10-03
《数据库技术讲义 第3章 关系数据库标准语言SQL-3》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、3.4数据更新SQL中数据的更新操作包括插入数据、修改数据和删除数据三条语句,分别通过:INSERT、UPDATE和DELETE语句来实现。3.4.1插入数据一、插入单个元组语法格式:INSERTINTO<表名>[(<列名1>[,<列名2>…)]VALUES(<常量1>[,<常量2>]…);其功能是将新元组插入到指定表中,其中新记录列1的值为常量1,列2的值为常量2,依次类推。INTO子句中没有出现的属性列,新纪录在这些列上将取空值。在表定义时为NOTNULL的属性列不能取空。如果INTO子句中没有指定任何列,则新插入的记录必须
2、在每列上都有值,值的顺序和表中列顺序一致。3.4.1插入数据例:插入一个新的学生记录INSERTINTOStudentVALUES(‘95020’,‘陈冬’,‘男’,‘IS’,18);例:插入一条选课记录INSERTINTOSC(Sno,Cno)VALUES(‘95020’,‘1’);3.4.1插入数据二、插入子查询结果语法格式为:INSERTINTO<表名>[(<列名1>[,<列名2>…)]子查询插入语句中列名的列表应该和子查询的目标列表达式一致。3.4.1插入数据例:对每一个系求平均年龄并插入数据库。INSERTINTODe
3、ptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;3.4.2修改数据修改语句的一般语法格式为:UPDATE<表名>SET<列名>=<表达式>
4、<子查询>[,<列名>=<表达式>
5、<子查询>]…[WHERE<条件>]如果省略WHERE子句则表示要修改表中的所有元组。3.4.2修改数据一、修改某个元组的值例:将学生95001的年龄改为22岁UPDATEStudentSETSage=22WHERESno=‘95001’;二、修改多个元组的值例:将所有学生的年
6、龄加1UPDATEStudentSETSage=Sage+1;3.4.2修改数据三、带子查询的修改语句例:将计算机科学系全体学生的成绩置0UPDATESCSETSage=0WHERE‘CS’=(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sno);3.4.3删除数据删除语句的语法格式为:DELETEFROM<表名>[WHERE<条件>];DELETE语句从表中删除满足WHERE条件的元组,如果省略WHERE则删除表中所有元组。3.4.3删除数据一、删除某个元组例:删除学号为95019的学生
7、DELETEFROMStudentWHERESno=’95019’;二、删除多个元组例:删除所有的学生选课记录DELETEFROMSC;3.4.3删除数据三、带子查询的删除语句例:删除计算机系所有学生的选课记录DELETEFROMSCWHERE‘CS’=(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sno);四、更新操作与数据库的一致性3.5视图视图是从一个或几个基本表导出的表,是一个虚报。数据库中只存储视图的定义,而不存放数据。视图一经定义,就可以和基本表一样被查询、删除,我们也可以在一
8、个视图上再定义视图,但对视图的更新操作有一定的限制。3.5.1定义视图一、建立视图用CREATEVIEW语句创建视图,语法格式为:CREATEVIEW<视图名>[(<列名>[,<列名>…])]AS<子查询>[WITHCHECKOPTION];子查询是任意复杂的SELECT语句,但通常不允许含有ORDERBY和DISTINCT子句。WITHCHECKOPTION表示对视图进行更新操作是满足视图中定义的谓词条件。3.5.1定义视图组成视图的属性列或者全部省略或者全部指定。如果省略则表示视图列由子查询中的目标列表达式组成,但以下三种情
9、况要指定列名:某个目标列不是单纯的属性名,而是集函数和列表达式多表连接时选出了几个同名列作为视图字段需要再视图中为某个列启用新的更合适的名字若一个视图是从基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了码,我们称这类视图为行列子集视图。3.5.1定义视图二、删除视图语法格式为:DROPVIEW<视图名>;视图定义后可以象基本表一样进行查询,但对视图的查询都将由DBMS转化为等价的对基本表的查询,这一转换过程称为视图消解。3.5.2查询视图视图定义后可以象基本表一样进行查询,但对视图的查询都将由DBMS转化为等价的对基
10、本表的查询,这一转换过程称为视图消解。3.5.3更新视图对视图的更新最终都要转换为对基本表的更新。为了防止用户更新视图时更新不属于视图的数据,可以在定义视图时加上WITHCHECKOPTION子句,这样在更新视图时会自动检查视图定义中的条件。3.5.3更新视图一
此文档下载收益归作者所有