MySQL学习
视图
创建视图的前提是: 代码复杂且频繁使用
目的:简化操作
创建视图
create view is_Sudent
as
select Sno,Sname,Sage
from Student
where Sdpt
如果保证安全需要在尾部加
with check option
基于多个表的视图:
create view v_stufrocour1
as
select studen.Sno,Sname,Grade
from Student,SC
where Sdept='IS' and
Student.Sno=Sc.Sno and
SC.Cno='1';
视图可以嵌套
只要as后面的代码合法,都可以设为视图
注意点:
- 视图不是真的物理空间,只是一串代码
- 可以理解为c里面的#define
- 主要用于查询,可以用于其他,但是有安全问题。(非必要,不进行)
-
- 用于查询可以规避一些安全隐患:
-
- 将代码封装,给不同的用户,提供不同的代码,避免一定程度的滥用。
- 视图会占用DBMS引擎资源,占用系统资源,不建议创建太多视图
删除视图
drop view<视图名> cascade;
caseade:级联删除
完整性
实体完整性
进行操作前,先查找一下有没有该元素
参照完整性和违约处理
主表
被参照表
create table student(
Sno char(9) primarky key,
Sname char(10) not null,
Ssex char(2) not null,
Majorld int,
Ssage int,
foreign key (Majorld) references Profession(Majorld);
)
create table Profession(
Majorld int,
MajorName char(10)
)