手记

【九月打卡】第十六天数据库约束之主键约束

第 一 模 块

学习课程:

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快结束了耶!每天进步一点点~!
    第 四 模 块 学习页面的截图

1人推荐
随时随地看视频
慕课网APP