第三章 关系数据库标准语言SQL-2.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图 3.6 数据控制 3.7 嵌入式SQL 3.4 数据更新 一、插入数据 二、修改数据 三、删除数据 一、插入数据 (1) 插入单个元组--新元组插入指定表中。 语句格式: INSERT INTO 表名 [(属性列1[,属性列2 …)] VALUES (常量1 [,常量2] … ) ; INTO子句 指定要插入数据的表名及属性列 属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 指定部分属性列:插入的元组在其余属性列上取空值 VALUES子句 提供的值的个数和值的类型必须与INTO子句匹配 一、插入数据 [例1] 将一个新学生记录 ( 学号: 95020; 姓名: 陈冬; 性别: 男; 所在系: IS; 年龄: 18岁 ) 插入到Student表中。 INSERT INTO Student VALUES ( 95020 , 陈冬 , 男 , IS , 18) ; [例2] 插入一条选课记录( ‘95020’,‘1’ )。 INSERT INTO SC(Sno,Cno) VALUES (95020 ,1) ; 注:新插入的记录在Grade列上取空值。 一、插入数据 (2) 插入子查询结果 语句格式: INSERT INTO 表名 [(属性列1 [,属性列2… )] 子查询; INTO子句(与插入单条元组类似) 指定要插入数据的表名及属性列 属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元组 指定部分属性列:插入的元组在其余属性列上取空值 子查询 SELECT子句目标列属性的个数和类型必须与INTO子句匹配。 一、插入数据 [例3] 对每一个系,求学生的平均年龄,并把结果存入数据库。 第一步:建表 CREATE TABLE Deptage ( Sdept CHAR(15) , /* 系名*/ Avgage SMALLINT ) ; /*学生平均年龄*/ 第二步:插入数据 INSERT INTO Deptage( Sdept, Avgage) SELECT Sdept, AVG(Sage) FROM Student GROUP BY Sdept ; 一、插入数据   DBMS在执行插入语句时会检查欲插入的元组是否会破坏表上已定义的完整性规则。如果破坏,系统会提示,且该记录不会被插入到数据库中。 实体完整性 对于插入的记录主码不为空且不可以与表中已有记录主码相同。 参照完整性 外码必须取空值或被参照关系中对应属性的值。 用户定义的完整性 对于有NOT NULL约束的属性列是否提供了非空值 对于有UNIQUE约束的属性列是否提供了非重复值 对于有值域约束的属性列所提供的属性值是否在值域范围内 二、修改数据 语句格式: UPDATE 表名 SET 列名=表达式[, 列名=表达式]… [WHERE 条件]; 功能: 修改指定表中满足WHERE子句条件的元组。 注: SET子句--指定修改方式,要修改的列和修改后取值 WHERE子句 指定要修改的元组 缺省表示要修改表中的所有元组 二、修改数据 (1) 用WHERE子句指定修改单个记录 [例4] 将学生95001的年龄改为22岁。 UPDATE Student SET Sage = 22 WHERE Sno = 95001 ; (2) 用WHERE子句(或不用)指定修改多个记录 [例5] 将所有学生的年龄增加1岁。 UPDATE Student SET Sage = Sage+1; [例6] 将信息系所有学生的年龄增加1岁。 UPDATE Student SET Sage = Sage+1 WHERE Sdept = IS ; 二、修改数据 (3) 用子查询指定要修改的记录 [例7] 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE CS= ( SELECT Sdept FROM Student WHERE Student.Sno = SC.Sno) ; 二、修改数据    DBMS在执行修改语句时会检查欲修改的元组是否会破坏表上已定义的完整性规则。如果破坏,系统会提示,且该记录不会被修改。

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档