文档详情

数据库系统概论_关系数据库更新.ppt

发布:2017-12-14约9.96千字共76页下载文档
文本预览下载声明
An Introduction to Database System 第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.8 小结 3.5 数 据 更 新 3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据 3.5.1 插入数据 两种插入数据方式 插入单个元组 插入子查询结果 1. 插入单个元组 语句格式 INSERT INTO 表名 [(属性列1[,属性列2 …)] VALUES (常量1 [,常量2] … ) 功能 将新元组插入指定表中。 插入单个元组(续) [例1] 将一个新学生记录 (学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。 INSERT INTO Student(sno,sname,ssex,sdept,sage) VALUES (‘200215128,陈冬,男,IS,18); 插入单个元组(续) [例2] 将学生张成民的信息插入到Student表中 INSERT INTO Student VALUES (‘200215126’,‘张成民,男, 18 ,‘CS); 插入单个元组(续) [例3] 插入一条选课记录( ‘200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 200215128 , 1 ); 新插入的记录在Grade列上取空值 插入单个元组(续) INTO子句 指定要插入数据的表名及属性列 属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 指定部分属性列:插入的元组在其余属性列上取空值 VALUES子句 提供的值必须与INTO子句匹配 值的个数 值的类型 2. 插入子查询结果 语句格式 INSERT INTO 表名 [(属性列1 [,属性列2… )] 子查询; 功能 将子查询结果插入指定表中 插入子查询结果(续) [例4] 对每一个系,求学生的平均年龄,并把结果存入数据库。 第一步:建表 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约束的属性列是否提供了非重复值 对于有值域约束的属性列所提供的属性值是否在值域范围内 3.5 数 据 更 新 3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据 3.5.2 修改数据 语句格式 UPDATE 表名 SET 列名=表达式[,列名=表达式]… [WHERE 条件]; 功能 修改指定表中满足WHERE子句条件的元组 修改数据(续) 三种修改方式 修改某一个元组的值 修改多个元组的值 带子查询的修改语句 1. 修改某一个元组的值 [例5] 将学生200215121的年龄改为22岁。 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ; 2. 修改多个元组的值 [例6] 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1; 修改多个元组的值(续) [例] 将信息系所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+
显示全部
相似文档