数据更新
数据更新操作包括三种形式:插入、修改、删除若干数据。
三种操作均以举例表示
插入数据:
例:将一个学生(学号:20150110;姓名:李鹏; 性别:男;所在系:CS;年龄:18)
插入到student表中
insert into student (sno,sname,ssex,sdept,sage)
values ('20150110','李鹏','男','CS',18);
//字符串应该用单引号括起来,表名后的列名可以和原表中顺序不同,但是必须和
values插入的数据相对应。
表名后未指定的列名默认为空值,但是表定义时说明NOT NULL 的列不能为空。
表名后不加列名,values后将插入表中所有列的值
还可以一次添加多个元组数据,在此就不赘述。
修改数据:
例:将一个学生20150102的年龄修改为18
update student set age =18 where sno='20150102';
//可以修改多个元组的值,在此就不赘述
删除数据:
例:将一个学生学号为20150103的学生信息删除
delect * from student where sno='20150103';
//可以删除多个元组,在此就不赘述
视图
视 图:从一个或几个基本表中导出的表,是一个虚表。
数据库中只存视图的定义,视图中的数据都存放在原来的基本表中。
视图之上可以定义视图,也可以进行查询、修改,但是对于数据更新有一些限制。
定义视图:
例:建立信息系学生的视图,要求进行插入、修改时仍然保证只有信息系的学生
create view IS_student
as
select sno,sname,sage
from student
where sdept='IS'
with check option
注:子查询中不有orderby 子句和distinct短语。
with check option 表示对视图进行更新、插入、删除时要满足子查询中的条件
查询视图:
例:在信息系学生中找到年级小于20的学生
select * from IS_student where age<20
例:删除视图student
drop view student
注:视图定义将从数据字典中删除
如果删除的视图导出了其他视图,就需要使用cascade 级联 删除视图和它导出的所有视图
如果删除了视图所在的基本表,视图还存在,但是不能使用,可以使用以上语句删除。
更新视图:(本节最重要的当然要留在最后来讲!)
更新视图和更新基本表的操作语句描述基本一样,同样包括插入、修改、删除。不再赘述。
那我们就来讲一些和更新基本表不同的
是否可以进行视图更新的条件:
视图的作用:
简化用户的操作
使用户多角度看待同一数据
对重构数据库提供一定程度的逻辑独立性
机密数据提供安全保护
更清晰的表达查询
SQL语句的知识终于整理的差不多了,哈哈哈,下一章就介绍数据库安全性啦!