跟着梓晨学SQL:约束(constraint)

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 。

(0)
梓晨的头像梓晨专栏
上一篇 2017-02-21 08:00
下一篇 2017-03-06 05:48

相关文章

关注我们
关注我们
分享本页
返回顶部