Mysql 的约束和索引
1. 主键约束:primary key
(1)特点
- 一个表中有且只能有一个主键约束。
- 主键约束意味着:唯一并且非空。
- 主键约束名PRIMARY
- 创建主键会自动创建对应的索引,同样删除主键对应的索引也会删除。
(2)创建主键约束
第一种: 在创建表时如何指定主键的约束?
create table 【数据库名.】表名称(
字段名1 数据类型 primary key,
字段名2 数据类型,
);
例如:在test数据库中创建一个t_stu表
create table test.t_stu(
sid int primary key,
sname varchar(20),
gender char
);
创建了主键,它作用的体现?
例如:在表中插入两条数据,其中数据中主键的那个属性,值的一样。
insert into t_stu values(1,'张三','男'),(1,'李四','女');
注意: 发现会报错,这就是主键的特点:唯一且非空。
第二种:建表后如何指定主键约束
alter table 【数据库名.】表名称 add primary key (字段列表);
例如:删除t_stu表,重新建表,然后添加主键。
(3) 主键约束分为两种:
- 单列主键约束
- 复合主键约束
第一种:单列主键约束
第二种:复合主键约束
**注意:**当一个主键不能起作用时,就使用两个组合的主键,这才是唯一的。
第一种: 建表时指定复合主键约束
create table xuanke(
字段名1 数据类型,
字段名2 数据类型,
。。。。。。,
priimary key(字段列表),
);
第二种:建表后指定复合主键约束
alter table 【数据库名.】表名称 add primary key(字段列表);
(4) 删除主键约束
alter table 【数据库名.】表名称 drop primary key;