Oracle笔记(7)

约束:

--创建一个表: //先不加约束

create table db3(ID number,NAME varchar2(20),job varchar2(20),sal long,deptno number);

 

--给ID加个主键(唯一性和非空)

alter table db3modify ID constraint ID_zhujianprimary key;

 

--给NAME/job加个非空

alter table db3modify NAME constraint NAME_notnullnot null;

alter table db3modify job constraint job_notnullnot null;

 

--给部门号deptno增进外键

alter table db3modify deptno  constraint deptno_FK references dept(deptno) on delete set null;

--              修改    字段名  关键字    给约束取个名字     外键引用dept表的deptno字段 ON 字段删除则清空。

--on delete cascade 表示如果删除引用 则删除引用这字段的记录。

--如果是增加字段并加约束

alter table db3add   age   number constraint age_notnull not null;

--              增加 字段   类型   

 

--约束单选

alter table db3add gender varchar2(10) ;

--增加约束:

alter table db3modify gender constraint gender_danxuancheck (gender in('男','女','其它'));

 

--增加记录:

insert into db3(ID,NAME,JOB,SAL,DEPTNO,AGE,GENDER) values(1,'李白','诗人',2200,20,18,'男');

 

insert into db3(ID,SAL,DEPTNO,AGE,GENDER) values (1,1800,19,12,'大瓦房挖法');--错误示例

--//ID 违反了唯一性(主键),NAME JOB 违反了非空,deptno部门号违反了外键引用,GENDER性别违反了约束单选。

 

--总结:

--  在见表时给字段加约束 直接在后面写就是

--  在给已有字段加约束: alter table 表名 modify(修改) 字段 constraint(给约束取名的关键字)↓↓

--                        给约束取的名字  

 

视图:

--视图就是一个假表,它为了让看表和查询表更加方便直观。//一般开发中不用视图修改表。

--scott默认不能创建表,需要在管理员下给权限

Grant create view to scott;

 

--创建视图

create view v_view as (select e.ename,e.job,e.sal,d.deptno from empe,dept d where e.deptno=d.deptno);

--创建或替换视图

Create or replace view v_view as (select e.ename,e.job,e.sal,d.deptnofrom emp e,dept d where e.deptno=d.deptno);

 

--只读视图  //不可通过视图修改表

--在后面加上 with readonly 

Create or replace view v_view as (select e.ename,e.job,e.sal,d.deptnofrom emp e,dept d where e.deptno=d.deptno) with read only;

 

--视图里的数据条才能被修改

--在后面加上 with check option

Create or replace view v_view as (select e.ename,e.job,e.sal,d.deptnofrom emp e,dept d where e.deptno=d.deptno) with check option;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值