Oracle修炼路程--六种约束

约束:
约束是数据库用来确保数据满足业务规则的手段。具体需要根据业务需求进行相应设置。

常见约束分类:
检查约束(Check):可限制条件,如name>4
唯一约束(Unique):id:1 2 3 4 5
主键约束(Primary key):类似唯一约束
外键约束(Foreign key):两张表关联
非空约束(Not null):不能为空
默认约束(Default):默认某值

约束命名规范:
规范:约束类型_字段名
主键:PK_stuno
检查约束:CK_字段名
唯一约束:UQ_字段名
非空约束:NN_字段名
外键约束:FK_字表_父表,通过外键关联表格;
默认约束:一般不需要命名;
加约束名:constraint约束名

主键和唯一的区别:
a 主键不能为Null,唯一可以为null。
b 主键可以是复合主键,也可以是单值主键(id)
c 一张表中只能有一个主键或者复合主键;但是唯一键设置多次;
比如学生表中的id address两个都可以设置为唯一键;

大致分类:
a) 列级约束:

  1. 作用于一个列;
  2. 放在列的后面;
  3. 可以有多个约束,全部6个约束;
  4. 多个约束直接用空格隔开,一般顺序可以交换,如果有default,则default必须放在前面;
--创建表格student
create table student(
 stuno number(3) primary key,---主键约束
 stuname varchar2(10) not null unique,--非空约束
 stuaddress varchar2(20) default '陕西西安' check(length(stuaddress)>2),
 --默认以及检查约束;
 stuid number(2)
)

b) 表级约束

  1. 作用于一个列/多列;
  2. 放在表的后面;
  3. 4个(主、外、唯一、检查)

create table student1(
 stuno number(3),
 stuname varchar2(10) ,
 stuaddress varchar2(20),
 stuid number(2),
constraint PK_sno primary key(stuno),
constraint UQ_sname_stuid unique(stuname,stuid),
constraint CK_saddress check(length(stuaddress)>2)
);

外键约束:
A表中的a列->B表中的b列;则a成为外键;
通过外键连接多个表格;

--创建表格student
create table student
(
   stuno number(2),
   stuname varchar2(10),
   subid number(2)
)
--创建表格sub
create table sub
(
   sid number(2),
   sname varchar2(20)
)--分别插入数据
insert into sub values(1,'数学');
insert into student values(11,'qinjiali',1);
insert into student values(12,'qinliman',2);

创建表格后,增加约束的操作
1 增加主键约束

alter table tablename add constraint pk_tablename primary key (column1,column2,…);

2 增加外键约束

alter table 从表表名 add constraint 外键约束名称 foreign key(列名) references 主表名称(主键列名)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值