Please enable JavaScript.
Coggle requires JavaScript to display documents.
数据更新及空值处理以及视图 - Coggle Diagram
数据更新及空值处理以及视图
数据更新
插入
插入元组
格式:INSERT
INTO <表格>[(<属性列1>],<属性列2>]…)]
VALUES(<常量1>[,<常量2>]…)
其功能是讲新元组插入指定表中。
例:将学生张成民的信息插入到student表中。
INSERT
INTO student
VALUES('201215126','张成民','男',18,'CS');
字符串常数要用单引号(英文符号)括起来。
插入一条选课记录(‘201215128’,‘1’)。
INSERT
INTO sc(sno,cno)
VALUES('201215128','1');
关系数据库管理系统将在新插入的grade列上自动地赋予空值。
插入子查询结果
格式:INSERT
INTO<表名>[(<属性列1>)[,<属性列2>]…)
子查询;
对每一个系,对学生的平均年龄,并把结果存入数据库。
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;
修改
格式:UPDATE<表名>
SET<列名>=<表达式>[,<列名>=<表达式>]…
[WHERE<条件>];
其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句给出<表达式>的值用于取代相应的属性列值。
-
-
删除
格式:DELETE
FROM <表名>
[WHERE<条件>];
DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句则表示删除表中全部元组,但表的定义仍在字典中,也就是说,DELETE语句删除的是表中数据,而不是关于表的定义。
-
-
空值处理
空值的产生
-
-
空值的算术运算、比较运算和逻辑运算。
有了UNKNOWN后,传统的逻辑运算中二值(TURE,FALSE)逻辑就扩展成了三值逻辑。
空值的判断
-
例:从student表中找出漏填了数据的学生信息。
SELECT *
FROM student
WHERE sname IS NULL OR ssex IS NULL OR sage IS NULL OR sdept IS NULL;
在查询语句中,只有使WHERE和HAVING子句中的选择条件为TURE的元组才被选出作为输出结果。
例:找出选修1号课程的不及格的学生。
SELECT sno
FROM sc
WHERE grade<60 AND cno='1';
视图
定义视图
建立
格式:CREATE VIEW<视图名>[(<列名>[,<列名>]…)]
AS <子查询>
[WITH CHECK OPTION];
WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的套件表达式)。
例:建立信息系学生的视图。
CREATE VIEW IS_student
AS
SELECT sno,sname,sage
FROM student
WHERE sdept=‘IS’;
关系数据库管理系统执行CREARE VIEW语句的结果只是把视图的定义存入数据字典,并不执行其中的SELECT语句。
-
-
查询视图
例:查询选修了1 号课程的信息系学生。
SELECT IS_student.sno,sname
FROM IS_student,sc
WHERE IS_student.sno=sc.sno AND sc.cno='1';
-