在数据记录中咱们为保证数据的惟一性,保证用户数据在数据中不出现重复记录。咱们须要用到Mysql的主键
key
,惟一约束。
PRIMARY KEY
一张数据表中只能存在一个主键字段。而且类型必须为数字。但是设为float
类型,但小数点值必须为0和传入此字段的重复值。它能够很好保证咱们记录的惟一性,主键字段自动为NOT NULL
mysql
如今,咱们来建立一张新的数据表tb3,并设定一个主键字段sql
CREATE TABLE tb3( id SMALLINT UNSIGNED PRIMARY KEY, name VARCHAR(20), sex ENUM('1','2','3') DEFAULT '3' );
建立数据表成功,如今咱们来插入两段用户数据。网站
INSERT tb3 VALUES(5,'大毛','1'); INSERT tb3 VALUES(10,'小李','1');
输出记录spa
SELECT * FROM tb3;
能够看到咱们刚刚的记录插入成功了,如今咱们来入id
值5的记录看看会怎么样code
INSERT tb3 VALUES(5,'小明','2');
mysql报错:主键以存在重复的‘5’值,因此刚刚插入记录失败了。主键保证了咱们数据的惟一性。blog
AUTO_INCREMENT
每一次都要手动为主键赋值很是不方便,并且当咱们数据表中的数据很是多的时候,咱们就很容易插入重复的主键值容易引起错误。因此咱们这里就要用到自动编号AUTO_INCREMENT
来为咱们的主键字段进行自动编号赋值了。图片
下面咱们来建立多一个数据表tb4it
CREATE TABLE tb4( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), sex ENUM('1','2','3') DEFAULT '3' );
数据表建立成功,如今咱们来连续插入三段数据。而后把记录打印出来看看主键值class
INSERT tb4(name,sex) VALUES('小丽','2'); INSERT tb4(name,sex) VALUES('大理','1'); INSERT tb4(name,sex) VALUES('小明同窗','1');
SELECT * FROM tb4;
能够看到主键值已经自动编号1~3了。float
惟一约束性在一个数据表中能够存在多个字段,可是每一个字段值中的集合不能出现重复值,而且可为NULL。就好像咱们网站中的用户名同样。
如今咱们来建立一张新的数据表ta5
CREATE TABLE ta5( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, usename VARCHAR(20) NOT NULL UNIQUE KEY, ega TINYINT UNSIGNED );
插入两断用户数据
INSERT ta5(usename,ega) VALUES('小明',22); INSERT ta5(usename,ega) VALUES('小明',20);
能够看到mysql报错usename字段已经存在小明字段。因此usename已是具备惟一约束性的字段。