数据库系统概论PPT第3章3.ppt
文本预览下载声明
An Introduction to Database System 第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结 3.5 数 据 更 新 3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据 3.5.1 插入数据 两种插入数据方式 1. 插入元组 2. 插入子查询结果 可以一次插入多个元组 一、插入元组 语句格式 INSERT INTO 表名 [(属性列1[,属性列2 …)] VALUES (常量1 [,常量2] … ) 功能 将新元组插入指定表中 插入元组(续) INTO子句 属性列的顺序可与表定义中的顺序不一致 没有指定属性列 指定部分属性列 VALUES子句 提供的值必须与INTO子句匹配 值的个数 值的类型 插入元组(续) [例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 ’); RDBMS将在新插入记录的Grade列上自动地赋空值。 或者: INSERT INTO SC VALUES ( 200215128 , 1 ,NULL); 二、插入子查询结果 语句格式 INSERT INTO 表名 [(属性列1 [,属性列2… )] 子查询; 功能 将子查询结果插入指定表中 插入子查询结果(续) INTO子句(与插入元组类似) 子查询 SELECT子句目标列必须与INTO子句匹配 值的个数 值的类型 插入子查询结果(续) [例4] 对每一个系,求学生的平均年龄,并把结果存入数据库。 第一步:建表 CREATE TABLE Dept_age (Sdept CHAR(15) /* 系名*/ Avg_age SMALLINT); /*学生平均年龄*/ 插入子查询结果(续) 第二步:插入数据 INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept; 插入子查询结果(续) RDBMS在执行插入语句时会检查所插元组是 否破坏表上已定义的完整性规则 实体完整性 参照完整性 用户定义的完整性 NOT NULL约束 UNIQUE约束 值域约束 3.5 数 据 更 新 3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据 3.4.2 修改数据 语句格式 UPDATE 表名 SET 列名=表达式[,列名=表达式]… [WHERE 条件]; 功能 修改指定表中满足WHERE子句条件的元组 修改数据(续) SET子句 指定修改方式 要修改的列 修改后取值 WHERE子句 指定要修改的元组 缺省表示要修改表中的所有元组 修改数据(续) 三种修改方式 1. 修改某一个元组的值 2. 修改多个元组的值 3. 带子查询的修改语句 1. 修改某一个元组的值 [例5] 将学生200215121的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ; 2. 修改多个元组的值 [例6] 将所有学生的年龄增加1岁 UPDATE Student SET Sage= Sage+1; 3
显示全部