- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集合查询 -------------------------------------------------------- Select * from student Where sdept=‘计算机’ Union Select * from student Where sage between 18 and 20 -------------------------------------------------------- 集合查询没有直接提供并\差的关键词,一般对集合查询用条件的复合来查询 3.4 数据更新 (插入insert 修改update 删除delete) 3.4.1 插入数据 一、插入单个元组 插入单个元组的INSERT语句的格式为:INSERT INTO 表名 [(属性列1[,属性列2...)] VALUES (常量1 [,常量2]...) 注意: 1)如果某些属性列在INTO子句中没有出现,则新记录在这些列上将取空值。但必须注意的是,在表定义时说明了NOT NULL的属性列不能取空值。 2)如果INTO子句中没有指明任何列名,则新插入的记录必须在每个属性列上均有值。 例 插入一条选课记录(‘95020’,‘1) INSERT INTO SC(Sno, Cno) VALUES (95020, 1); --------------------------------------------------------------- Insert into sc(sno,cno,grade) values(‘95005’,’1’,88) Insert into sc values(‘95005’,’1’,88) --------------------------------------------------------------- 很多系统允许一次插入多条记录,如 INSERT INTO SC(Sno, Cno) VALUES (95003 , 1),(95003 , 2); 新插入的记录在Grade列上取空值。 二、插入子查询结果 子查询不仅可以嵌套在SELECT语句中,用以构造父查询的条件,也可以嵌套在INSERT语句中,用以生成要插入的数据。 插入子查询结果的INSERT语句的格式为: -------------------------------------------------------------------INSERT INTO 表名 [(属性列1 [,属性列2...)] 子查询; -------------------------------------------------------------------其功能是以批量插入,一次将子查询的结果全部插入指定表中。 首先要在数据库中建立一个新表 3.4.2 修改数据 修改操作又称为更新操作,其语句的一般格式为: UPDATE 表名 SET 列名=表达式[,列名=表达式]... [WHERE 条件]; 其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用表达式的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。 一、修改某一个元组的值 例4 将学生95001的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno=95001; 二、修改多个元组的值 例5 将所有信息系学生的年龄增加1岁 UPDATE Student SET Sage=Sage+1 where sdept=‘is’; 例如,学号为95007的学生因病休学一年,复学后需要将其学号改为96089,由于Student表和SC表都有关于95007的信息,因此两个表都需要修改,这种修改只能通过两条UPDATE语句进行。第一条UPDATE语句修改Student表:UPDATE Student SET Sno=96089 WHERE Sno=95007;第二条UPDATE语句修改SC表:UPDATE SC SET Sno=96089 WHERE Sno=95007; 在执行了第一条UPDATE语句之后,数据库中的数据已处于不一致状态,因为这时实际上已没有学号为95007的学生了,但SC表中仍然记录着关于95007学生的选课信息,即数据的参照完整性受到破坏。只有执行了第二条UPDATE语句之后,数据才重新处于一致状态。但如果执行完一条语句之后,机器突然出现故障,无法再继续执行第二条UPDATE语句,则数据库中的数据将永远处于不一致状态。因此必须保证这两条UPDATE语句要么都做,要么
文档评论(0)