mysql07 SQL约束

Posted 清醒吧!兄弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql07 SQL约束相关的知识,希望对你有一定的参考价值。

约束是一种限制,它是对表的行列做的限制,来确保数据的完整性和唯一性。

表的约束类型 主键 默认 唯一 外键 非空
关键字 primary key default unique foregin not null

 

 

 

 

一、主键约束(primary)

(PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过

主键就能准确定位到一行,因此主键十分重要,主键不能有重复记录且不能为空。

create table employee
(
 id int(10) primary key,#主键
 name char(20)   
)

还可以自定义主键:

people_num int(10) default \'10\',
constraint dpt_pk Primary key(dpt_name)
);

 还有一种特殊的主键---复合主键。主键不仅可以是1列,可以两列,也可以是多列。

constraint dpt_pk Primary key(pro_num,pro_name)
);

 二、默认值约束(default)

当有default列,插入的数据为空时,将使用默认值。

people_num int(10) default 10,

 三、唯一约束(unique)

规定一张表中指定的一列的值不能有重复值,即这列值都是唯一的。

 

 四、外键约束(foreign key)

外键既能确保数据的完整性,也能表现表之间的关系。

例如:

有用户表和文章表,给文章表添加一个指向用户id的外键,表示这篇文章所属用户。

如果你想删除一个用户,这个用户的文章还在数据库存在,就会删除报错。

一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值 

constrint emp_fk foreign key (in_dpt) references department(dpt_name)
);

 

 

 五、非空约束(not null)

在插入值时,必须非空。

以上是关于mysql07 SQL约束的主要内容,如果未能解决你的问题,请参考以下文章

基于约束的SQL攻击

基于约束的SQL攻击

mysql数据库 check约束无效

为现有约束自动生成 SQL 代码

在 mysql 表上添加外键约束时出现错误 1005

sql mysql查询/ db片段