MySQL中数据的约束
程序员文章站
2022-04-26 19:50:37
...
今天说说数据库中的数据表数据约束问题,约束大概分为主键约束,外键约束,默认约束,唯一约束,非空约束这几种,关于讲解配置,我后面慢慢说 1、主键约束 其实是用来唯一标示表中的一个列或多个列,但是一个表中必须唯一,配置方法 (1)、初始化列级主键约
今天说说数据库中的数据表数据约束问题,约束大概分为主键约束,外键约束,默认值约束,唯一约束,非空约束这几种,关于讲解配置,我后面慢慢说
1、主键约束
其实是用来唯一标示表中的一个列或多个列,但是一个表中必须唯一,配置方法
(1)、初始化列级主键约束
create table custominfo ( id int primary key, name varchar(12), age int );
(2)、初始化表级主键约束
create table custominfo ( id int, name varchar(12), age int, primary key(id) );
(3)、修改主键约束
alter table customerinfo add constraint yueshu primary key(id);
(4)、修改添加联合主键约束
alter table customerinfo add constraint yueshu primary key(id,name);
(5)、删除主键约束
alter table customerinfo drop primary key;
2、外键约束
比如某个表B关联于表A,也就是表A中所有项目表B中都有,就可以设置表A主键关联,表B外键关联
(1)初始化添加
create table typeinfo ( typeid int primary key, type varchar(20) ); create table roominfo ( roomid int primary key, type varchar(20), price int constraint yueshu foreign key(roomid) references typeinfo(typeid) );
(2)、修改添加
alter table roominfo add constraint yueshu foreign key(roomid) references typeinfo(typeid);
(3)、删除外键约束
alter table roominfo drop foreign key yueshu;
3、默认值约束
将某一数据初始化为固定值
(1)、初始化设置
create table roominfo ( id int, name varchar(20), price int default 0 );
(2)、修改添加设置
alter table roominfo alter price set default 0;
(3)、删除默认约束
alter table roominfo alter price drop default;
4、非空约束
某项数据不得为空的约束
(1)、初始化设置
create table roominfo ( id int not null, name varchar(20) );
(2)、修改设置
alter table roominfo alter id int not null;
5、检查约束
就是固定行规定数据的范围
(1)、初始化列级设置
create table roominfo ( id int, name varchar(20), price int check(price>=0) );
(2)、初始化表级设置create table roominfo ( id int, name varchar(20), price int, check(price>=0) );
(3)、修改设置alter table roominfo add constraint yueshu check(price>=0);
6、唯一约束(1)、初始化列级唯一约束
create table roominfo ( id int unique, name varchar(20) );
(2)、初始化表级唯一约束create table roominfo ( id int, name varchar(20), unique(id) );
可以设置多个独立唯一约束(3)、初始化创建共同唯一约束
create table roominfo ( id int, name varchar(20), price int, unique(id,name) );
(4)、修改设置独立唯一约束alter table roominfo add constraint yueshu unique(id);
(5)、修改设置共同唯一约束alter table roominfo add constraint yueshu unqiue(id,name);
(6)、删除唯一约束drop index yueshu on roominfo;