主键约束:primary key
普通方式 create table 表名( id number(10) primary key, name varchar(10) );
自定义主键约束的名称 create table 表名( id number(10), name varchar(10), constraint 主键约束名 primary key(id) );
非空约束:not null
create table 表名( id number(10), name varchar(10) not null, constraint 主键约束名 primary key(id) );
唯一约束:unique
create table 表名( id number(10), name varchar(10) unique not null, constraint 主键约束名 primary key(id) );
检查约束:check (基本不用,可扩展性差)
create table 表名( id number(10), name varchar(10) unique not null, gender number(1) check(gender in(0,1)), constraint 主键约束名 primary key(id) );
外键约束:foreign key
创建主表 create table orders( orders_id numbere(10), orders_name varchar2(20), constraint pk_orders_id primary key(orders_id) ); 创建从表 create table orders_detail( orders_detail_id number(10), orders_detail_name varchar2(20), orders_id number(10), constraint pk_orders_detail primary key(orders_detail_id), constraint fk_orders_detail foreign key(orders_id) references orders(orders_id) );
插入数据时,必须先在主表中插入数据 insert into orders values (1, '牛肉'); commit; insert into orders_detail values (1, '萝卜', 1); commit;
删除数据时,先删除从表,再删除主表数据 delete from orders_detail; commit; delete from orders where orders_id=1; commit;
删除表时,不能先删除主表,但可强制删除(不推荐) drop table orders cascade orders_id = 1;
级联删除:创建从表时,在外键约束的后面加上 on delete cascade create table orders_detail( orders_detail_id number(10), orders_detail_name varchar2(20), orders_id number(10), constraint pk_orders_detail primary key(orders_detail_id), constraint fk_orders_detail foreign key(orders_id) references orders(orders_id) on delete cascade );
补充
创建主键约束和唯一约束时,会自动创建一个同名的(唯一)索引
约束
最新推荐文章于 2024-05-27 16:37:30 发布