mysql之字段约束-第五篇
数据库的完整性约束是为了在数据库应用中保证数据的一致性和正确性。所以在创建数据表时定义其字段的约束是非常有必要的。
主键约束
主键(primary key)是一个列或者列的组合,其值能唯一地标识表中的每一行。且一张表只能定义一个主键。主键是通过PRIMARY KEY 关键字来指定的。
create table employee ( empId INT(11) primary key, emp_name VARCHAR(25), orgId INT(11), salary DECIMAL );
外键约束
外键用来在两个表的数据之间简历连接,对应着另一张表的主键。
新建一张dept表:
create table dept ( id int(11) primary key, dept_name varchar(22) not null, location varchar(50) );
删除之前创建的employee表
drop table if exists employee;
再创建deptId为外键的employee表:
create table employee ( empId INT(11) primary key, emp_name VARCHAR(25), orgId INT(11), salary DECIMAL, CONSTRAINT emp_dept FOREIGN key(orgId) REFERENCES dept(id) );
唯一约束
唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。新建dept1表,指定部门名称唯一:
create table dept1 ( id int(11) primary key, dept_name varchar(22) UNIQUE, location varchar(50) );
默认值约束
默认值约束指定某列的默认值,创建dept3,指定部门位置为深圳;
create table dept2 ( id int(11) primary key, dept_name varchar(22) UNIQUE, location varchar(50) DEFAULT ‘深圳‘ );
非空约束
非空约束在表中,某个列的定义后加上关键字NOT NULL 作为限定词,来约束该列的取值不能为空:
create table dept3 ( id int(11) primary key, dept_name varchar(22) not null, location varchar(50) );