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)
);
以上,外键约束就创建好了,此后再往学生表中添加数据的时候,如果学生班级对应的值在班级表中不存在就会报错。
结束
记录一下写的第一篇博客~~~