MySQL中的约束

主键 默认值 唯一 外键 非空
PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL

主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键不能有重复且不能为空。
定义主键的方式:
CREATE TABLE employee
{
id INT(10) PRIMARY KEY ,
name CHAR(20),
...
};
CREATE TABLE department
{
dpt_name CHAR(20),
people_num INT(10),
CONSTRAINT dpt_pk PRIMARY KEY(dpt_name)
...
};
CREATE TABLE project
{
proj_num INT(10),
proj_name CHAR(20),
CONSTRAINT prj_pk PRIMARY KEY(proj_num,proj_name)
...
};//符合主键

默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。DEFAULT 约束只会在使用 INSERT 语句(上一实验介绍过)时体现出来,INSERT语句中,如果被 DEFAULT 约束的位置没有值,那么这个位置将会被 DEFAULT 的值填充。
CREATE TABLE project
{
proj_num INT(10) DEFAULT '10',
proj_name CHAR(20)
...
};

唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE约束,则 INSERT 失败。
CREATE TABLE department
{
dpt_name CHAR(20),
people_num INT(10),
UNIQUE(dpt_name)
...
};

外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
CREATE TABLE department
{
dpt_name CHAR(20),
dpt_ind INT(10),
people_num INT(10),
CONSTRAINT emp_fk FOREIGN KEY(dpt_ind) REFERENCES department(dpt_name)
...
};

非空约束 (NOT NULL),被非空约束的列,在插入值时必须非空。
CREATE TABLE employee
{
id INT(10) NOT NULL ,
name CHAR(20),
...
};

猜你喜欢

转载自blog.csdn.net/weixin_42078760/article/details/80998816
今日推荐