插入子查询结果(续) INTO子句(与插入单条元组类似) ●指定要插入数据的表名及属性列 。属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元 组 指定部分属性列:插入的元组在其余属性列上取 空值 子查询 SELECT子句目标列必须与ⅠNTO子句匹配 值的个数 值的类型
插入子查询结果(续) 插入子查询结果(续) – INTO子句 (与插入单条元组类似 ) z 指定要插入数据的表名及属性列 z 属性列的顺序可与表定义中的顺序不一致 z 没有指定属性列:表示要插入的是一条完整的元 组 z 指定部分属性列:插入的元组在其余属性列上取 空值 – 子查询 z SELECT子句目标列必须与INTO子句匹配 – 值的个数 – 值的类型
插入子查询结果(续) DBMS在执行插入语句时会检查所插元组是 否破坏表上已定义的完整性规则 实体完整性 参照完整性 用户定义的完整性 对于有 NOT NULL约束的属性列是否提供了非空值 对于有 UNIQUE约束的属性列是否提供了非重复值 对于有值域约束的属性列所提供的属性值是否在值域范围内
插入子查询结果(续) 插入子查询结果(续) DBMS在执行插入语句时会检查所插元组是 否破坏表上已定义的完整性规则 – 实体完整性 – 参照完整性 – 用户定义的完整性 用户定义的完整性 z 对于有NOT NULL约束的属性列是否提供了非空值 z 对于有UNIQUE约束的属性列是否提供了非重复值 z 对于有值域约束的属性列所提供的属性值是否在值域范围内
2.带子查询的修改语句 「例将计算机科学系全体学生的成绩置零。 UPDATE SC set Grade=0 WHERE CS ISELEtE Sdept FROM Student WHERE Student Sno=SCSno)
2. 带子查询的修改语句 带子查询的修改语句 [例] 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);
3.带子查询的删除语句 [例删除计算机科学系所有学生的选课记录 DELETE FROM SC WHERE CS SELETE Sdept FROM Student WHERE Student Sno=SCSno
3. 带子查询的删除语句 带子查询的删除语句 [例11] 删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);
37视图 视图的特点 ●虚表,是从一个或几个基本表(或视 图)导出的表 ●只存放视图的定义,不会出现数据冗余 ●基表中的数据发生变化,从视图中查询 出的数据也随之改变
3.7 视 图 视图的特点 z 虚表,是从一个或几个基本表(或视 图)导出的表 z 只存放视图的定义,不会出现数据冗余 z 基表中的数据发生变化,从视图中查询 出的数据也随之改变