MySQL18
2021/10/25 2:14:52
本文主要是介绍MySQL18,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
主键约束
主键约束,其特点是:
不允许表中有NULL记录;
不允许表中有重复记录;
每张数据表只能存在一个PRIMARY KEY约束;
创建主键约束后,系统将自动创建主键索引(是一种特殊的唯一索引);
-- 创建数据表时添加列级主键约束 CREATE TABLE t4( id SMALLINT UNSIGNED PRIMARY KEY, username VARCHAR(20) ); DESC t4; INSERT t4(id,username) VALUES(1,'Tom');
-- 创建数据表时添加表级主键约束 CREATE TABLE t5( first_name VARCHAR(10), lASt_name VARCHAR(20), PRIMARY KEY (first_name,lASt_name) ); DESC t5;
主键约束经典面试题
创建如下结构的数据表t6
Field | Type | NULL | KEY | DEFAULT | Extra |
---|---|---|---|---|---|
first_name | VARCHAR(10) | NO | PRI | NULL | |
last_name | VARCHAR(20) | NO | PRI | NULL | |
age | tinyINT(3) unsigned | YES | NULL | ||
---- |
CREATE TABLE t6( first_name VARCHAR(10), last_name VARCHAR(20), age TINYINT UNSIGNED, PRIMARY KEY (first_name,lASt_name) );
插入记录时可能产生的错误
ERROR 1364 (HY000): Field 'id' doesn't have a DEFAULT value 错误原因:插入记录时,没有为禁止为空且没有赋认值的字段进行赋值;
ERROR 1062 (23000): Duplicate entry '1' fOR KEY 'PRIMARY' 错误原因:因主键值重复而导致插入/更新记录失败;
-- 创建表时,添加主键约束 CREATE TABLE word01( id INT PRIMARY KEY, name VARCHAR(30), age INT(3) ); DESC word01; INSERT INTo word01 VALUES(101,'张三',20); INSERT INTo word01 VALUES(101,'李四',30); --错误 INSERT INTo word01(name,age) VALUES('王五',35); --错误
联合(复合)主键
使用主键约束来修饰两列或者多列
CREATE TABLE word02( id INT, name VARCHAR(30), age INT(3), PRIMARY KEY(id,name) ); DESC word02;
-- 创建一张表,表名为word03,表中包含的字段有id INT(8),name VARCHAR(30),sex CHAR(3),age INT(3) 修改表时,对id列添加主键约束 CREATE TABLE word03( id INT(8), name VARCHAR(30), sex CHAR(3), age INT(3) ); DESC word03; --修改前 ALTER TABLE word03 ADD PRIMARY KEY(id); DESC word03; --修改后
-- 创建一张表,表名为word04,表中包含的字段有wid INT,wname VARCHAR(30),age INT(3),修改表时,对wid和wname列添加主键约束并验证 CREATE TABLE word04( wid INT, wname VARCHAR(30), age INT(3) ); DESC word04; ALTER TABLE word04 ADD PRIMARY KEY(wid,wname); DESC word04;
删除主键约束
语法格式:
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 删除word01表中主键约束并验证 ALTER TABLE word01 DROP PRIMARY KEY; DESC word01;
这篇关于MySQL18的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南