约束条件(CONSTRAINTS)
查看某个表的约束和索引
⼀、定义
对表中的数据进⾏限定,保证数据的正确性、有效性、和完整性。
⼆、分类
主键约束:primary key,简称PK,数据库主键作⽤保证实体的完整性,可以是⼀个列或多列的组合。
注意:
⾮空且唯⼀
⼀张表只能有⼀个字段为主键
主键就是表中记录的唯⼀标识
在创建表时,添加主键
create table stu(
id int primary key, ---给id添加主键约束
name varchar(20)
foreign key references用法);
删除主键
alter table stu drop primary key;
创建完表后,添加主键
alter table stu modify id int primary key;
⾃动增长
概念:如果某⼀列是数值类型的,使⽤auto_increment 可以完成值得⾃动增长
在创建表时,添加主键约束,并且完成主键⾃动增长
create table stu(
id int primary key auto_increment, --给主键id添加⾃动增长
name varchar(20) not null ---name为⾮空
);
删除⾃动增长
alter table stu modify id int;
在创建表以后添加⾃动增长
alter table stu modify id int auto_increment;
⾮空约束:not null
创建表时添加⾮空约束;
create table stu(
id int,
name varchar(20) not null ---name为⾮空
);
创建表完成后,添加⾮空约束;
alter table stu modify name varchar(20) null;
删除⾮空约束;
alter table stu modify name varchar(20);
唯⼀约束:unique
创建表时添加唯⼀约束;
create table stu(
id int,
photo_number varchar(20) unique
);
*注意smsql中,唯⼀约束限定的列的值可以有多个null
创建表完成后,添加唯⼀约束;
alter table stu modify name varchar(20) unique;
删除唯⼀约束;
alter table stu drop index phone_number ;
外键约束:foreign key
在创建表时,可以添加外键
语法:
create table 表名(
.
foreign key (外键名) references 主表名称(主表列名称)
);
例:
create table student(
sid int auto_increment primary key not null,
sname varchar(20) not null,
score float,
clazzid int,
foreign key(clazzid) references clazz(cid)
);
删除外键
alter table 表名 drop foreign key 外键名称;
创建表之后,添加外键
alter table 表名 add foreign key (外键字段名称) references 主表名称(主表列名称);
检查约束
注意: MySQL不⽀持check约束,但可以使⽤check约束,⽽没有任何效果;
例如:age tinyint check(age >20) 或 sex char(2) check(sex in('男','⼥'))
Default缺省约束
default:默认值,在插⼊数据时某列如果没指定其他的值,那么会将默认值添加到新记录。
如果某列已经创建好,那么可以修改列语句修改:
例如:原来有默认值,去除默认值
例如:原来没有默认值,增加默认值

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。