数据库----维护数据完整性之(约束)

什么是约束呢?

    约束是指通过对数据表中的字段使用一些特殊用途的关键字来进行限定,从而使该列的数据不能随意填写来保障数据的完整性.分为五种方式:主键约束.外键约束.唯一约束.检查约束.不为空约束.
一.主键约束—primary key
   主键约束一般用于一张表中的标识列,且该列不为空.每一张表都应该存在一个主键,主键可以用于一个列,也可以应用于多个列.

主键设置方式:
1.直接建表时,在字段后使用
create table team(
id int primary key --设置主键

)
2.在建表时,所有字段的末尾使用
create table team
(
id int auto_increment,
username varchar(20),
password varchar(30),
primary key(id)
)
3.表结构已经创建完成通过DDL语句设置
alter table team add constraint pk_id primary key(id);
注意:
1.主键列一般用于标识列(主键列不能重复,且不为空);
2. 避免使用联合主键(即设置多个列同时为主键);
3. 任何表都应该存在主键列

二.外键约束—foreign key
   外键约束一般用于对一个表与另一个表进行关联时的依据,通常会在表中使用foreign key建立外键;外键必然是另一张表的主键,而另一张就称之为主表,添加外键的表称之为从表.

设置外键的方式有两种:
1.在建表时设置:
create table team
(
id int primary key auto_increment,
username varchar(30) unique not null,
password varchar(64) not null default ‘123456’,
sex int check(sex in(0,1)),
tid int,
foreign key(tid) REFERENCES team(id) – 外键设置
)
2.表已经创建完成之后通过DDL设置
alter table team add constraint fk_tid foreign key(tid) references team(id);

唯一约束----unique
    唯一约束用于设置表中指定列是唯一的(不可重复);常见于用于表中的用户名列,分类表中类别名列等.

唯一约束的使用方式:
username varchar(30) unique not null
不为空约束—not null
   设置表中指定列必须给定值,不允许为null.
检查约束—check

检查约束在mysql中还未生效,如果需要对字段进行检查约束,可以考虑用枚举类型(enum).

猜你喜欢

转载自blog.csdn.net/Wo_I_Java/article/details/107749740