数据库系统概论知识点整理 联系客服

发布时间 : 星期六 文章数据库系统概论知识点整理更新完毕开始阅读

INSERT INTO SC

VALUES (‘ 200215128 ’,‘ 1 ’,NULL);

因为没有指出SC的属性名,在GRADE列上要明确给出空值 插入子查询结果 Insert

Into <表名>[(<属性列1>[,<属性列2 >?)] 子查询(select等); (2)修改数据 UPDATE <表名>

SET <列名>=<表达式>[,<列名>=<表达式>]? [WHERE <条件>];

SET子句:指定修改方式,要修改的列,修改后取值:<表达式>。 WHERE子句:指定要修改的元组,,缺省表示要修改表中的所有元组。 功能:修改指定表中满足WHERE子句条件的元组。 修改某一个元组的值 例:将学生200215121的年龄改为22岁 UPDATE Student SET Sage=22

WHERE Sno=' 200215121 '; 修改多个元组的值 例:将所有学生的年龄增加1岁 UPDATE Student SET Sage= Sage+1;

带子查询的修改语句 子查询须放在比较运算符之后 例:将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student

WHERE Student.Sno = SC.Sno); (3)删除数据 DELETE

FROM <表名> [WHERE <条件>];

功能:删除指定表中满足WHERE子句条件的元组。

WHERE子句:指定要删除的元组;缺省表示要删除表中的全部元组,表的定义仍在数据字典中。

删除某一个元组的值 例:删除学号为200215128的学生记录 DELETE FROM Student

WHERE Sno= 200215128 '; 删除多个元组的值 例:删除所有的学生选课记录 DELETE FROM SC;

带子查询的删除语句 例:删除计算机科学系所有学生的选课记录 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student

WHERE Student.Sno=SC.Sno); 4、视 图

特点:虚表,是从一个或几个基本表(或视图)导出的表;只存放视图的定义,不存放视图对应的数据;基表中的数据发生变化,从视图中查询出的数据也随之改变。

基于视图的操作: 查询、删除、受限更新、定义基于该视图的新视图。 (1)定义视图 建立视图 CREATE VIEW <视图名> [(<列名> [,<列名>]?)] AS <子查询>

[WITH CHECK OPTION];

子查询:不允许含有ORDER BY子句和DISTINCT短语。

WITH CHECK OPTION:表示对视图进行UPDATE,INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。

组成视图的属性列名:全部省略或全部指定,但在下列三种情况下必须明确指定组成视图的所有列名:

某个目标列不是单纯的属性名,而是聚集函数或列表达式; 多表连接时选出了几个同名列作为视图的字段;

需要在视图中为某个列启用新的名字。

RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的SELECT语句。在对视图查询时,按视图的定义从基本表中将数据查出。

行列子集视图:从单个基本表导出 ,只是去掉了基本表的某些行和某些列保留了主码

例:建立信息系学生的视图 CREATE VIEW IS_Student AS

SELECT Sno,Sname,Sage FROM Student WHERE Sdept= ?IS?;

WITH CHECK OPTION 例:建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生

CREATE VIEW IS_Student AS

SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS' WITH CHECK OPTION;

加上了WITH CHECK OPTION子句:RDBMS对IS_Student视图的更新操作:修改操作:自动加上Sdept= 'IS'的条件;删除操作:自动加上Sdept= 'IS'的条件;插入操作:自动检查Sdept属性值是否为'IS' 。如果不是,则拒绝该插入操作。如果没有提供Sdept属性值,则自动定义Sdept为'IS'。

基于多个基表的视图