联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...

2b72af3c81aef4754ee8d7fd77251f4f.png

知识点太多太杂了,随机一个:

十、 定义约束

1 数据库中的约束类型

– 非空约束(NOT NULL) – 唯一性约束(UNIQUE) – 主键约束(PRIMARY KEY) – 外键约束(FOREIGN KEY) – 用户自定义约束(CHECK)

1.1定义约束原则

创建一个约束:在创建表的同时,或者在创建表之后都可以定义约束。可以给约束起名

字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,Oracle 服务器将用默

认格式 SYS_Cn 产生一个名字,这里 n 是一个唯一的整数,所以约束名是唯一的。2 定义 NOT NULL 约2.1创建表时定义 NOT NULL 约束

2.1.1示例

create table dept80(id number,name

varchar2(20) not null, salary number

constraint dept80_notn not null);

2.2修改表定义 NOT NULL 约束

2.2.1示例

alter table dept80 modify location_id not

null;3 定义 UNIQUE 约束

3.1创建表时定义 UNIQUE 约束

3.1.1示例

create table dept90(id number constraint

dept90_uk unique,name varchar2(20));

3.2修改表定义 UNIQUE 约束

3.2.1示例

alter table dept90 modify(name unique);

4 定义 PRIMARY KEY 约束4.1创建表时定义 PRIMARY KEY 约束

4.1.1示例

create table dept70(id number constraint

dept70_pk primary key);

4.2修改表定义 PRIMARY KEY 约束

4.2.1示例

alter table dept60 modify(id constraint

dept60_pk primary key);

4.3创建联合主键

4.3.1示例

create table dept50(id number,name

varchar2(20),constraint dept50_pk primary

key(id,name));

5 定义 FOREIGN KEY 约束5.1创建表时定义 FOREIGN KEY

5.1.1示例

create table dept40(id number,d_id

number,constraint dept40_fk foreign key(d_idreferences dept60(id));

5.2修改表定义 FOREIGN KEY

5.2.1示例

alter table dept50 add constraint

dept50_fk foreign key(d_id) references

dept60(id);

6 定义 CHECK 约束

6.1创建表时定义 CHECK 约束

6.1.1示例

create table dept30(id number,salary

number(8,2) constraint dept30_ck check

(salary > 1000));6.2修改表定义 CHECK 约束

6.2.1示例

alter table dept50 add constraint

dept50_ck check(salary > 1000);

7 禁用与启用约束

7.1查看约束

7.1.1示例

select

constraint_name,constraint_type,search_cond

ition from user_constraints where table_name

= 'DEPT40';

7.2禁用约束

7.2.1示例

alter table dept40 disable constraintdept40_ck;

级联禁用

alter table dept60 disable constraint

dept60_pk cascade;

7.3启用约束

7.3.1示例

alter table dept40 enable constraint

dept40_ck;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值