Oracle(五)老师

级联删除

一、on delte cascade

alter table score add constraint foreign key(idd) references students(id) on delete cascade

这么创建的外键 可以 删除外键中的 数据 而不怕 出现错误

级联删除..on delete cascade (删除主键的值后 外键的值也不存在了)

二、on delete set null

alter table score add constraint foreign key(idd) references students(id) on delete set null;

设置不是级联 就是删除一个  相关联的 内容 都变成空

 

查看约束

select constraint_name from user_constrats where table_name='scroe';

--------------------------------------------------------------------------------------------------------------------------------

复习
SQL:
 DDL:create  drop  alter
 DML:insert update delete select
 DCL:grant  revoke
 TCL:commit rollback savepoint
 
alter table 表名
添加:add
修改:modify
删除字段:drop
表重命名:rename to
字段重命名:rename column ...to ...

约束:constraint
主键:primary key
    特点:唯一、不能为空
    注意:表中只可以有一个主键
唯一性(候选主键);unique
    特点:唯一、可以为空、可以插入重复的空值
用户自定义:check
    特点:满足用户的需求后才可以插入
   
alter table 表名 add constraint 名称 约束类型(字段)


非空:not null
   特点:在限制非空的字段中不允许插入null
默认值:default
   特点:方便插入
alter table 表名 modify 字段名 类型not null | defalut 值


删除约束
alter table 表名 drop constraint 名称;
alter table 表名 drop  primary key;

禁用约束
alter table 表名 disable constraint 约束名;
启用约束
alter table 表名 enable constraint 约束名;


scott/tiger
emp

今日内容
外键:foreign key
 特点:参照主键中存在的值、可以插入空值、插入的值可以重复

添加外键约束
alter table 表名 add constraint 约束名 foreign key(字段) references 表名(字段名) ;

级联删除:
alter table 表名 add constraint 约束名 foreign key(字段) references 表名(字段名) on delete cascade;

级联设置为null
alter table 表名 add constraint 约束名 foreign key(字段) references 表名(字段名) on delete set null;


查看各种约束:
user_constraints
all_constraints
dba_constraintss

user_constraints  可以查看约束的基本信息 查看外键表(r_constraint_name),check条件(search_condition)
user_cons_columns 通过约束名查看约束的字段
desc 表名        查看是否为空
user_tab_columns 查看默认值

单一主键:是一个主键、添加在表中的一个字段上
复合主键:是一个主键。添加在表中的多个字段上
建立表时添加
create table 表名(
字段 类型,
字段 类型,
constraint 约束名 primary key(字段,字段);


建表后
alter table 表名 add constraint 约束名 primary key(字段,字段);

 

 

你可能感兴趣的:(oracle,sql,Tcl)