在SQL中约束主要有以下几种:
⑴: NOT NULL :用于控制字段的内容一定不能为空(NULL)。
⑵: UNIQUE :控件字段内容不能重复,一个表允许有多个 Unique 约束。
⑶: PRIMARY KEY:主键,也是用于控件字段内容不能重复,但它在一个表只允许出现一个,即唯一且非空。与unique的相通之处都是保证字段唯一性,不同之处在于一张表只能有一个主键,且非空,而unipe可以作用于多个列上,且允许有空值。
⑷: FOREIGN KEY: 外键,FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGNKEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
⑸: CHECK:用于控制字段的值范围。
⑹: DEFAULT:用于设置新记录的默认值。
1:约束可以是列级约束和表级约束,列级约束一般会跟在列后面。为了更好的演示,我们创建表mytable,字段有id和name。
SQL>create table mytable
(Id varchar2(20),
Name varchar2(20))
Table created
I:notnull:只能在列级上使用,现在我们要求id为非空,写法为:
SQL>create table mytable
(Id varchar2(20) not null,
Name varchar2(20))
Table created
II:unique,既能在列级使用也能在表级使用,如要求id为唯一的:
SQL>create table mytable
(Id varchar2(20) constraint mytable_id_uk unique,
Name varchar2(20))
Table created
或者为:
SQL>create table mytable
(Id varchar2(20),
Name varchar2(20),
constraint mytable_id_uk unique(id))
Table created
也可以同时对多列进行限制:
SQL>create table mytable
(Id varchar2(20),
Name varchar2(20),
constraint mytable_in_uk unique(id,name)
Table created
III:primary key,主键,唯一且非空,这里,我们定义mytable表的主键为id:
在Sql Server、Orcale、MS Access 支持的添加Primary Key语法:
SQL>create table mytable
(Id varchar2(20) constraint mytable_id_pk primary key,
Name varchar2(20))
Table created
或者为:
SQL>create table mytable
(Id varchar2(20),
Name varchar2(20),
constraint mytable_id_pk primary key(id))
Table created
IV:foreign key,外键,其主要作用是与父表中主键连接的作用,这里我们假想父表为mytable1
SQL>create table mytable
(Id varchar2(20),
Name varchar2(20),
constraint mytable_id_fk foreign key(id) references mytable1(id))
Table created
或者为:
SQL>create table mytable
(Id varchar2(20)
constraint mytable_id_fk foreign key references mytable1(id),
Name varchar2(20))
Table created
V:check,为检查命令
SQL>create table mytable
(Id int constraint mytable_id_ck check (id>=1 and id<=100),
Name varchar2(20))
Table created
或者为:
SQL>create table mytable
(Id int,
Name varchar2(20),
constraint mytable_id_ck check (id>=1 and id<=100)
)
Table created
VI:DEFAULT,默认值,例如这里我们设置name的默认值均为卧龙大数据:
SQL>create table mytable
(Id varchar2(20) ,
Name varchar2(20) default ‘卧龙大数据’)
Table created
2:在表创建后,添加约束介绍,对于约束我们只能添加或者删除,不能对其进行修改。,首先我们创建一张表mytable:
SQL>create table mytable(Id varchar2(20),
Name varchar2(20))
I:向表中id字段添加非空约束(非空约束用modify命令):
SQL>alter table mytable
Modify constraint mytable_id_nk id not null
II:向表中id字段添加主键约束(用add命令):
SQL>alter table mytable
Add constraint mytable_id_pkprimary key(id);
III:删除上述添加的主键约束:
SQL>alter table mytable
drop constraint mytable_id_pk;
IV:使约束无效或有效:
SQL>alter table mytable
disable constraint mytable_id_pk;–约束无效
SQL>alter table mytable
enable constraint mytable_id_pk;–约束有效
本文为专栏文章,来自:梓晨,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/39575.html 。