一(mysql数据库的约束)
约束条件: 实际上对表中的数据进行限制
主键约束: 非空,不能重复 (primary key , 简称 PK)
主键约束实现方式有两种:列级约束, 表级约束
列级约束: 主键 primary key, 外键 foreign key, 唯一约束 unique, 检查约束 check ,默认值约束 default,非空约束
表级约束: 主键,外键,唯一,检查
create table stus(
id int(2) primary key , -- 列级约束,id设置为主键,id不能为null,并且不能重复
name varchar(20),
gender varchar(10)
);
insert into stus values (1,'鲁班','男');
create table stus(
id int(2) , -- 列级约束,id设置为主键,id不能为null,并且不能重复
name varchar(20),
gender varchar(10),
constraint stus_id_pk primary key(id)
);
-- insert into stus (name,gender) values ('鲁班','男'); -- 违反了主键的非空约束
insert into stus values (1,'亚瑟','男'); -- 违反了主键的不能重复约束
drop table stus;
表级约束: constraint
设置表级主键约束:constraint 约束名 primary key(字段)
约束名:建议: 表名_列名_约束
insert into stus values (1,'鲁班','男');
-- insert into stus (name,gender) values ('鲁班','男'); -- 违反了主键的非空约束
insert into stus values (1,'亚瑟','男'); -- 违反了主键的不能重复约束
drop table stus;
create table stus(
id int(2) , -- 列级约束,id设置为主键,id不能为null,并且不能重复
name varchar(20),
gender varchar(10)
);
insert into stus values (1,'鲁班','男');
insert into stus values (1,'鲁班','男');
select * from stus;
delete from stus where id=1;
select * from my_db.stus;
手动添加主键约束
格式:alter table table_name add primary key(字段)
eg:alter table stus add primary key (id);
如果当前表格中指定设置主键的字段有重复的数据,此时添加主键会失败
insert into stus values (1,'鲁班','男');
insert into stus values (1,'鲁班','男');
删除主键约束
格式:alter table table_name drop primary key
eg:alter table my_db.stus drop primary key ;
insert into stus values (1,'鲁班','男');
insert into stus values (1,'鲁班','男');
select * from my_db.stus;