第 一 模 块
学习课程:
MySQL8.0零基础入门之从青铜到钻石
URL https://www.imooc.com/learn/1281
章节名称:
第8章 钻石局之数据库约束
讲师姓名:
第 二 模 块
课程内容:
MySQL8.0零基础入门之从青铜到钻石:
第8章 钻石局之数据库约束
8-2数据库约束之主键约束
第 三 模 块 学习收获与心得
今天继续学习了8-2数据库约束之主键约束
主键的作用
用来唯一标识一条记录,每个表都应该有一个主键,并且每个表只能有一个主键。
有些记录的 name,age,sex 字段的值都一样时,那么就没法区分这些数据,造成数据库的记录不唯一,这样就不方便管理数据。
哪个字段应该作为表的主键?
通常不用业务字段作为主键,单独给每张表设计一个id的字段,把id作为主键。主键是给数据库和程序使用的,不是给最终的客户使用的。所以主键有没有含义没有关系,只要不重复,非空就行。
创建主键
主键:PRIMARY KEY
主键的特点:
主键必须包含唯一的值
主键列不能包含NULL值
创建主键方式:
在创建表的时候给字段添加主键
字段名 字段类型 PRIMARY KEY
删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
主键自增
主键如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值
AUTO_INCREMENT 表示自动增长(字段类型必须是整数类型)
举个栗子:
CREATE TABLE hero2(
id int PRIMARY Key AUTO_INCREMENT,
name varchar(20),
age int
);
扩展
默认地AUTO_INCREMENT 的开始值是1,如果希望修改起始值,请使用下列SQL语法
ALTER TABLE 表名 AUTO_INCREMENT=起始值;
DELETE和TRUNCATE的区别
- DELETE 删除表中的数据,但不重置AUTO_INCREMENT的值。
- TRUNCATE 摧毁表,重建表,AUTO_INCREMENT重置为1
举个栗子:DELETE FROM hero2 && TRUNCATE TABLE hero2
明天继续学习,MySQL快结束了耶!每天进步一点点~!
第 四 模 块 学习页面的截图