MySQL中的主键约束是指在表中定义一个主键来唯一确定表中每一行记录的
标识符。当某一列添加了主键约束后,那么这一列的数据就不能重复出现。这样每行记录中其主键列的值就是这一行的唯一标识。
主键的关键字是:PRIMARY KEY,它有以下三个特性:
- 非空:主键列中的值不能为空;
- 唯一:主键列中的值不能重复;
- 被引用:该特性会在学习外键的时候说明。
1.创建表时指定主键列
我们在创建表的时候一般都会指定主键列,创建表时指定主键列有两种方式,如下所示:
CREATE TABLE stu1(
sidCHAR(6) PRIMARY KEY,
genderVARCHAR(10)
CREATE TABLE stu1(
sid CHAR(6),
sname VARCHAR(20),
age INT,
gender VARCHAR(10),
PRIMARY KEY(sid)
);
下面,我们采用第一种方式指定主键,并验证主键的相关特性,如下所示:
(1)创建一个表,名字为stu1,如图1-1所示:
图1-1 创建数据库
(2)向stu1表中插入一条数据,sql语句为:insert into stu1 values(null,’张三’,23,’male’),执行结果如图1-2所示:
图1-2 插入一个主键为null的记录
图1-2中向stu1表插入一条主键值为null的记录,插入失败,验证了主键的非空特性。
(3)向stu1表中插入一条记录,sql语句为:insert into stu1 values(‘1’,’张三’,23,’male’),执行完之后,查询stu1表,如图1-3所示:
图1-3 插入并查询stu1表
(4)再次向stu1表中插入一条数据,这条数据的主键与图1-3中的数据的主键一样,如图1-4所示:
图1-4 插入重复主键记录
由图1-4可知,主键列的值不能重复,验证了主键的第二个特性。
使用第二种方式指定主键,然后重复以上四步,执行结果相同,也就是说这两种方式都可创建主键,它们的特性都是一样的。
2.修改表时指定主键
如果我们在创建表时忘了给表指定主键,可以在修改表时给表指定主键,语法如下:
- ALTER TABLE 表名 ADD RRIMARY KEY(主键列名)
(1)创建一个表,名称为stu2,对应的sql语句如图1-5所示:
图1-5 创建一个没有主键的表
(2)给stu2表添加主键,如图1-6所示:
图1-6 为stu2表指定主键
(3)向stu2表中插入一条记录,该记录的主键值为null,如图1-7所示:
图1-7 插入主键为null的记录
图1-7可知,修改sid列为主键列,修改成功。
3.删除表中的主键
删除表中的主键的语法是:ALTER TABLE 数据库名 DROP PRIMARY KEY,这里就不在进行演示,大家可以自己试一试。
本文版权归传智播客java学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客java学院