主键约束(primary key)
特点:不能为空,不重复
##没有约束
create table stu0(
id int,
name varchar(50)
);
insert into stu0(name) value("张三丰");
##方式一:创建表,并且添加主键约束
create table stu1(
id int primary key,
name varchar(50)
);
##方式二:
create table stu2(
in int,
name varchar(50),
primary key(id,name)
);
成功: insert into stu1(id,name) value(2,"张三丰");成功
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
成功:insert into stu1(id,name) value(2,'张三疯');
测试一:insert into stu1(id,name) value(null,"张三疯");
ERROR 1048 (23000): Column 'id' cannot be null
测试二:
插入重复值:报错
ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY'
select * from stu1;
唯一约束(unique)
不重复,可以为空
##给名字 添加 唯一的 约束
create table stu3(
id int primary key,
name varchar(50) unique
);
insert into stu3(id,name) value(1,"张三丰");
insert into stu3(id,name) value(2,"张三丰")
ERROR 1062 (23000): Duplicate entry '张三丰' for key 'name'
insert into stu3(id,name) value(3,"张三")
自增长列(auto_increment)
##实现,用户的学号,自动增长,
create table stu4(
id int primary key auto_increment,
name varchar(50)
);
##插入数据
insert into stu4(name) value("zsf");