数据库程序设计 7 约束 视图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/L1558198727/article/details/88785594

根据类型进行分类

主键约束:唯一+非空
	建立约束:
		drop table tab_name;
		create table  tab_name(
			pid number(5) primary key,
			.....
		);
		自定义的报错信息提示
		constraint tab_name pid pk PRIMARYKEY(pid)
	
	可以定义联合主键:
		传入两个参数即可

唯一约束
	列级别约束
		unique
	表级别约束
		constraint person pname uk UNIQUEF(panme)
非空约束
	只有列级别约束
		not null
		
检查约束 建表时
	age not null check(age beteeen 0 and 150)
	sex not null check(sex in ('男','女'))
	改为表级别约束: 	
	constraint person_age_ck check(age beteeen 0 and 150)

外键约束
	drop table department(
		deptno number(5) primary key,
		....
	);
	drop table emplyee;
	create table emplyee(
		empno number(5),
		ename varchar2(10),
		deptno number(5),reference department(deptno)
	) ;
	表级别约束
	constraint employee_deptno_fk foreign key(deptno) reference department(deptno)

根据约束的位置进行分类

列级别约束:
	建表时 列后定义的约束
表级别约束:
	constratint 
	建表语句的()里面 上面的列都定义结束之后 在后面写表级的约束,也可以将语句放在 列的后面

建立约束,尽量以表级别约束为主

添加约束:

alter table table_name add 约束
eg 将表级别的约束直接加在后面即可
	alter table person add constraint person_age_ck check(age beteeen 0 and 150)

删除约束:

有约束名字的
	alter table table_name drop 约束
	eg 将表级别的约束直接加在后面即可
		alter table person drop constraint person_age_ck 	
		只加约束的名字即可
	alter table person drop primary key
	
	非空约束的修改 使用修改列的方式进行

查看约束

select * 
from user_constraints 
where table_name = 'emp'

select  constraint ,constraint _type,table_name
from user_constraints 
where table_name = 'emp'

约束启动和禁用:

暂时将约束失效
alter table tab_name disable constraint 约束名;
alter table tab_name enable constraint 约束名;

创建视图

必须在 sys 账号下
create [or relpace] [force unforce ]view my_view
as
select...[with check option 约束]
[with read only]

参数解释:
or relpace 如果视图存在就相当于修改视图
force 表不管存不存在都会创建 如果表不存在是 视图的数据为空
unforce 表存在的时候才能创建视图
with read only 不可以DML

注:
可以在视图里面起别名 在select 那里即可

删除视图

drop view view_name

创建视图之后将表删除,视图还存在吗?

???

同义词:

create sysnonym  s_emp for scott.emp;

select * from e_emp;
drop 

猜你喜欢

转载自blog.csdn.net/L1558198727/article/details/88785594