Oracle 数据表的管理

常见约束(6)

检查约束:check
唯一约束:unique
主键约束:primary key,不能为null
外键约束:foreign key
非空约束:not null
默认约束:default

创建表

表级约束

多个约束逗号隔开,位于表的后面,作用于一列或多列,有4个约束(主键,外键,唯一,检查)

create table mytab(
stuno number(3),
stuname varchar2(10),
stuaddress varcahr2(20),
stubid number (3),
constraint pk_sno primary key (stuno,stuname),
constraint uq_sname unique (stuname,stubid),
constraint ck_saddress check(length(stuaddress)>2)
);

列级约束

多个约束空格隔开,位于列的后面,作用于一列,全部6个约束

create table mytab(
stuno number(3) constraint pk_sno primary key,
stuname varchar2(10)not null constraint uq_sname unique,
stuaddress varcahr2(20) default '陕西西安‘ check(length(stuaddress)>2),
stubid number (3) constraint fk_mytab_sub foreign key references sub(id) on delete cascade
);

追加约束

1.唯一、主键、检查、外键
alter table 表名 add constraint 约束名 约束类型(字段名)
2.默认、非空
alter table 表名 modify 字段名 constraint  约束名 约束类型
(1)非空:alter table student modify stuname constraint  nn_name not null;
(2)默认:alter table student modify stuname default '无名氏';

删除约束

1.唯一、主键、检查、外键、非空
alter table 表名 drop  constraint 约束名;
2. 默认
alter table student modify stuname default null;

删表

不保留表结构
1.drop table 表名
drop table 表名 purge;彻底删除
保留表结构
2.truncate table 表名
3.delete from 表名

delete 会产生碎片,解决整理碎片
alter table 表名 move;

修改表

1.追加新列:

alter table mytab add newColumn varchar2(10);

2.修改列

alter table mytab modify myother  varchar(20);

blob/clob不能改,解决:先删再增
3.重命名列
alter table mytab rename column myother to myother2;

外键

例:A表中的a列指向B表中的b列,则称a为A表的外键,A为子表,B为父表
1.外键所指的字段必须父表的主键或者唯一约束键
2.a列数据必须来自于b列
3.要删除表,先删除子表再删除父表
4.当删除父表中外键所指向的列,有2个策略:级联删除/级联置空,参考列级约束
(on delete cascade/on delete set null)

注意事项

1.若有多个约束时,default必须放在第一位。
2.check的使用和where一致
3.唯一约束(unique)约束的列可以有多个null,
4.自定义的约束名不能重复,即使在不同表之间
5.使用默认值插入时,default占位

insert into student values(1,'smith',default,5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值