oracle入门学习

oracle表的约束

约束:constraint
类型:
primary key 主键
foreign key 外键
unique 唯一
not null 非空
check 检查

not null讲解

非空约束,表示某列的值不能为空,在插入的时候如果没有对该字段赋值,则会报错

用法:

1、在创建表的时候使用not null约束
例子:

create table mybook(
book_name varchar(20) not null,
book_author varchar(20);

2、在已经创建好的表中添加not null约束
语法:

alter table 表名 modify 列名 not null;

例子:

alter table mybook modify book_author not null;

3、删除表中的not null约束:
语法:

alter table 表名 modify 列名 null;

例子:删除mybook表中book_author字段上的非空约束

alter table mybook modify book_author null;

primary key 主键约束

1、主键的作用是用来唯一确定每一行数据的标识符
一个表中可以有多个和主键
oracle中会主动为具有primary key约束的列建立一个唯一索引。
2、建表是创建primary key约束

creat table book(
book_id number primary key
book_name varchar(20));

3、建表之后将某一个字段设为主键:
语法:

alter table 表名add constraint 约束名(自己起的名字) primary key(表中字段);

将book表中的book_name设为主键:

alter table book add constraint bname primary key(book_name);

4、匿名约束:
如果是添加匿名约束,那么久不需要在上面指定constraint关键字了,系统会自动创建。
语法:

alter table book add primary key(字段名)

示例:
将book_name字段通过匿名约束设为之间

alter table book add primary key(book_name);

5、删除约束
有主键之后如果实在插入数据的时候插入了相同的值就会报错,如果仍要添加相同数据,则需要把主键删除掉~
关键字:drop
语法:

alter table 表名 drop constraint 约束名

示例:
把bname约束删除掉:

alter table book drop constraint bname;

unique约束

1、字面意思,唯一,也就是该列不能有重复值
在创建表的时候把字段设置为唯一约束
创建一个班级表,班级id为主键,班级名称非空

create table calss(
class_id number primary key,
class_name varchar(20) unique,
);

2、同样的可以在创建表之后,在指定字段上添加唯一性约束
语法:

alter table 表名 add unique(列名);

check约束

1、check约束指的是检查性约束,使用check约束时,将对输入的每一个数据进行检查,只有符合条件的记录才会保存到表中。
2、创建一个学生表,在学生年龄段上面添加一个检查约束,条件为年龄大于0

create table stu(
stu_id number primary key,
stu_name varchar(10),
stu_age number) constraint agecheck check(stu_name > 0) 
);

在创建检查约束之后,如果输入数据的时候年龄小于0则会报错
3、在建表之后添加check约束

alter table 表名 add constraint 约束名 check(列名+条件);

4、删除存在的check约束

alter table 表名 drop constraint 约束名;

foreign key约束

指的是外键,外键指的是另外一个表中的某一列或几列的值
1、外键的特点:
1)、可以在一个表中定义添加多个外键
2)、定义了外键时,预备引用的主键列可以时同一个表,这个叫自引用

2、创建外键:
准备:
创建一个学生表stu1,班级表class1,学生表中的一个字段所在班级,外键到班级表中的编号
创建一个班级:

create table class1(\
cls_id number not null primary key,
cls_name varchar(20),
count number
);

创建一个学生表:

create table stu1(
stu_id number not null primary key,
stu_name not null,
stu_cls number references class(cls_id)
);

以上,外键约束就创建好了,此后再往学生表中添加数据的时候,如果学生班级对应的值在班级表中不存在就会报错。

结束

记录一下写的第一篇博客~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值