4、【MySQL】完整性约束

    约束条件与数据类型的宽度一样,都是可选参数。作用:用于保证数据的完整性和一致性。

主要分为

primary key:        标示该字段为主键,能够唯一的标示记录
foreign key:            标示该字段为外键
not null:               标示该字段不能为空
unique:                 标示该字段的值时唯一的
auto_increment:         标示该字段的值自动增长(整数类型,而且为主键)
default:                为该字段设置默认值
unsigned:               无符号
zerofill:               使用0填充

说明:
    1、是否允许为空,默认为null,设置not null,使字段不允许为空,必须赋值
    2、字段是否有默认值,缺省值是null,如果插入记录时不给字段赋值,使此字段使用默认值null

【示例】

# 设置枚举的默认值,且不为空
sex enum('boy', 'girl') not null default 'boy';

# 设置年龄必须为正值(无符号)且不为空
age int unsigned not null default 20
一、unique

单列唯一的两种使用方式:
(1)创建unique

create table test(
    id int, 
    name char(3) unique
);

(2)创建unique

create table test(
    id int, 
    name char(3),
    unique(id),
    unique(name)
);

(3)联合唯一:即指定表中两条或以上的记录,只有当这些被指定的记录都相同时才符合联合唯一,否则不会被限制。

create table test(
    ip char(15),
    port int,
    unique(ip, port)  #联合唯一
);
二、primary key

一张表中可以:单列做主键,多列做主键(复合主键)

约束:字段的值不为空,且唯一。等价于not null unique

(1)单列主键

create table test(
    id int primary key,
    name char(3)
);

(2)复合主键

create table test(
    ip char(15),
    port int,
    primary key(ip, port)
);

你可能感兴趣的:(4、【MySQL】完整性约束)