三、约束
用来你输入的字要符合你要求数据的格式作用:定义规则 确保数据的完整性
非空约束
一、在创建表的时候进行非空约束create table table_name(column_name datatype not null,....);二、修改表的约束 (在设置非空约束 最好表中没有数据)alter table userinfomodify username varchar2(20) not null;
三、在修改表的时候如何去除非空约束alter table userinfomodify username varchar2(20) null;
主键约束一张表中只能设计一个主键约束主键约束可以有多个字段构成(联合主键和符合主键)
一、创建表的时候设置主键约束create table table_name(column_name datatype primary key,.....)
实例:create table userinfo( id number(6,0) primary key,username varchar2(20),userpwd varchar2(20));
联合主键create table userinfo( id number(6,0) ,username varchar2(20),userpwd varchar2(20),constraint pk_id_username primary key(id,username));查看约束的名字select constraint_name from user-constraint where table_name='userinfo'
二、修改表的时候添加主键约束add constraint constraint_nameprimary key(column_name);
实例:alter table userinfoadd constraint pk-id primary key(id);
三、更改约束的名称rename constraint pk-id to new_pk_id;
实例:alter table userinforename constraint pk-id to new_pk_id;
四、删除主键的约束
1 禁用约束disable|enable conatraint constraint-name
实例:alter table userinfodisable constraint new_pk_id;
2 删除主键约束drop constaint constraint-name
实例:alter table userinfodrop constraint new_pk_id;
3 dorp primary key[cascade]实例:alter table userinfodrop primary key;
外键约束、
1 在创建表的时候设置外键约束create table table1(column_name datatype referencestable2(column_name),..........);
table1(从表) table2(主表) 主从表的数据字段数据类型必须相同
2 在修改表的时候添加外键约束constraint constraint-name foreignkey(column-name)
3 删除外键约束
唯一约束
UNIQUE用户输入的必须是唯一的;CREATE TABLE NUMBER (MID NUMBER PRIMARY KEY ,NAME UNIQUE,);
检查约束(Check):ck
给表中的一些数据增加一些过滤条件例子:create table userinfo (mid number,name varchar2(50) not null,age number(3),sex varchar2(10) not null,constraint pk_mid primary key (mid),constraint ck_sex check (sex in ('男','女')),constraint ck_age check (age between 0 and 250))
主外键约束
create TABLE member(mid number,name varchar2(50) not null,constraint pk_mid primary key (mid));create table book (bid number,title varchar2(50) not null,mid number,constraint pk_bid primary key (bid),constraint fk_mid foreign key(mid) refernces member(mid));
不关心子表 还在不在 强制删除数据