1、主键:表中有一列或几列组合的值能用来唯一地标识表中的每一行,这样的一列或者多列的组合叫做表的主键。
CREATE TABLE studentb(
id INT PRIMARY KEY,
sname VARCHAR(50),
ssage INT
);
验证 Error Code : 1062 Duplicate entry ‘100’ for key 1
INSERT INTO studentb VALUES(100,‘徐林林’,50);
SELECT * FROM studentb;
2、另一种方式,用constraint定义
CREATE TABLE studentc(
id INT ,
sname VARCHAR(50),
ssage INT ,
CONSTRAINT pk_student PRIMARY KEY(id)
);
INSERT INTO studentc VALUES(100,‘王健林’,50);
SELECT * FROM studentc;
3、用ALTER语句补充声明主键:alter table 表名 add constraint 约束名 primary key(列名)
ALTER TABLE student ADD CONSTRAINT pk_sno PRIMARY KEY(sno);
查看一个表有哪些约束 TABLE_CONSTRAINTS
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘studentc’;
删除主键约束
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘student’;
ALTER TABLE student DROP PRIMARY KEY;
在MySQL中删除主键需要两步.(1)如果有auto_increment,先删除之;(2)删除主键约束 primary key。
#首先要删除auto——increment alter table aaa modify id int(11);#这里用的modify,只改变数据类型,也可以用change,
改变列名的同时输入新的数据类型。
4、唯一性约束:alter table 表名 add constraint uq_列名 unique(列名)
ALTER TABLE student ADD CONSTRAINT uq_sname UNIQUE(sname);
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘student’;
验证 Error Code : 1062 Duplicate entry ‘王健林’ for key 1
SELECT * FROM student;
INSERT INTO student VALUES(100,‘王健林’,‘男’,‘深圳’);
INSER