数据库系统与应用04.ppt

SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 列名 HAVING 条件 ORDER BY 列名 二者的执行方式不同 普通子查询的执行顺序是 首先执行子查询,然后把子查询的结果作为父查询的查询条件的值。 普通子查询只执行一次,而父查询所涉及的所有记录行都与其查询结果进行比较以确定查询结果集合。 相关子查询的执行顺序是 首先选取父查询表中的第一行记录,内部的子查询利用此行中相关的属性值进行查询, 然后父查询根据子查询返回的结果判断此行是否满足查询条件。如果满足条件,则把该行放入父查询的查询结果集合中。重复执行这一过程,直到处理完父查询表中的每一行数据。 相关子查询的执行次数是由父查询表的行数决定的。 2. 多行插入 多行插入也称为表间拷贝,即从一个表中抽取若干行数据插入到另一个表中。 一般格式: INSERT INTO 基本表名1 [(属性列1[,属性列2]…)] SELECT [列表达式1 [, 列表达式2]…] FROM 表名2 WHERE 条件表达式; 子查询 例57:向学生表STUDENT插入一行新的数据。 例58:将学生表STUDENT中计算机系(‘CS’)中的学生数据插入到表S1中。 3. 插入子查询结果 产生一个表,但这个表的列是从子查询的结果中全部复制或部分复制,且子查询结果作为表的行插入到表中。 一般格式: CREATE TABLE 基本表名 [(属性列1[,属性列2]…)] [AS 子查询]; 例59:求每一个学生的平均成绩,把结果存入表S_GR中。 可以修改表中某些指定列的数据。 一般格式: UPDATE 基本表名 [别名] SET 列名=表达式 [,列名=表达式]… [WHERE 条件表达式]; 其中:表达式={表达式|常量|列名} 3.4.2 修改数据 1. 修改一个或多个元组的值 如果不选WHERE子句,则表中所有的行全被更新; 如果选择了WHERE子句,则使WHERE 中条件表达式为真的行被更新; 例60:把所有学生的年龄加2。 2. 带子查询的修改语句 当子查询只返回一行时: UPDATE 基本表名 [别名] SET (列名 [,列名]…) = (子查询); 要求,被修改的列与子查询返回的列的列数相等,类型相同,且被修改的列必须出现在括号内,并以逗号隔开。 例61:将数据库的课时改成与数据结构课程的课时相同。 注意: 如果SET子句中包含子查询,则子查询必须且只返回一行,其返回数据个数应与SET后面的列数一致,类型相同; 若子查询未返回任何行,则被修改的各行的有关列被置成NULL。 删除基本表中某些行的数据。 一般格式: DELETE FROM 基本表名 [WHERE 条件表达式]; 其中:表达式={表达式|常量|列名}; 注意: 删除基本表中的全部记录后,该基本表的定义仍在数据字典中。 3.4.3 删除数据 例62:删除所有学生的成绩记录。 例63:删除计算机系全体学生的成绩记录。 第四章作业:(第2次) 1. P.122 3。 2. P.122 10. ⑴~⑶、⑼~⑾。 3. P.122 11. ⑺~⑼。 4.5 视图(VIEW) 视图可以由一个表中选取的某些列或某些行组成,也可由若干表中满足一定条件的数据组成。简单地说,视图可以看成是一个窗口,它所反映的是一个表或若干表的局部数据。视图一经定义,用户就可以把它当作表一样来查询数据。 视图和基本表不同,视图是一个虚表,即视图所对应的数据不实际存在数据库中,数据库中只存储视图的定义(存在数据字典中),因此不占用存储空间。 视图2 视图4 视图1 视图3 基本表1 基本表2 基本表3 基本表4 视图是定义在基本表上的,也可以定义在 视图上;一个视图可在几个表或视图上建立, 一个表或视图也可建立多个视图。 视图的特点: 视图如同基本表,但不象基本表那样真实存在; 视图的数据来源于基本表的数据。只存放视图的定义,不存放视图对应的数据; 基表中的数据发生变化,从视图中查询出的数据也随之改变。 1. 视图的定义与删除 任何一个查询结果其本身就是一个表,所以一个查询可被用于定义一个视图。 ① 视图的定义 一般格式: CREATE VIEW 视图名 [(列名1[,列名2]…)] AS 子查询 [WITH CHECK OPTION];? 说明: 执行CREATE VI

文档评论(0)

1亿VIP精品文档

相关文档