1.1 主键约束
primary key用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为null。 需要说明的是:一张表最多只能有一个主键,但是可以有多个unqiue约束。 1) 无命名的主键约束 SQL> create table studentclass ( id int primary key not null, classname varchar2(20) ); SQL> select table_name, index_name from user_indexes where table_name='STUDENTCLASS'; 2) 有命名的主键约束 SQL> create table studentclass ( id int primary, classname varchar2(20), constraint studentclass_pk_id primary key(id) ); SQL> select table_name, index_name from user_indexes where table_name='STUDENTCLASS'; 3) 向表中添加主键约束 SQL> create table studentclass ( id int primary key not null, classname varchar2(20) ); SQL> alter table studentclass add constraint studentclass_pk_id primary key(object_id); SQL> select table_name, index_name from user_indexes where table_name='STUDENTCLASS'; 4) 查询主键状态 SQL> select a.table_name, a.index_name, b.constraint_name, b.constraint_type, b.status from user_indexes a, user_constraints b where b.table_name='STUDENTCLASS' and a.table_name = b.table_name; 5) 禁用/启用主键 禁用主键 SQL> alter table studentclass disable primary key; 启用主键 SQL> alter table studentclass enable primary key; 6) 重命名主键 SQL> alter table studentclass rename constraint studentclass_pk_id to studentclass_new_pk_id; 7) 查询主键名 SQL> select owner, constraint_name, table_name, column_name from user_cons_columns where table_name = 'STUDENTCLASS'; 8) 删除主键约束 SQL> alter table jack drop constraint STUDENTCLASS_PK_ID; 9) 当索引创建好以后再添加主键的效果
1.2 外键约束约束
foreign key用于定义主表和从表之间的关系。外键约束要定义在从表上,主表则必须具有主键约束或是unique 约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null。 外键约束分为三种: 1. 普通外键约束(如果存在子表引用父表主键,则无法删除父表记录) 2. 级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除) 3. 置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为null,但该字段应允许空值) 1. alter table t_invoice_detail add constraint fk_invoice_id foreign key(invoice_id) references t_invoice(id); 2. alter table t_invoice_detail add constraint fk_invoice_id foreign key(invoice_id) references t_invoice(id) on delete cascade; 3. alter table t_invoice_detail add constraint fk_invoice_id foreign key(invoice_id) references t_invoice(id) on delete set null; 1) 创建外键约束 SQL> create table studentclass ( id int primary key not null, classname varchar2(20) ); SQL>
3) 唯一性约束 当定义了unique唯一约束后,该列值是不能重复的,但是可以为null。 4) 检查约束 check用于强制行数据必须满足的条件。 5) 默认值约束 default设置字段未赋值时的默认值。 6) 非空约束 如果在列上定义了not null,那么当插入数据时,必须为列提供数据。
评论