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

2022/9/25 3:17:15

本文主要是介绍【九月打卡】第十六天数据库约束之主键约束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第 一 模 块

学习课程:

MySQL8.0零基础入门之从青铜到钻石
URL https://www.imooc.com/learn/1281

章节名称:

第8章 钻石局之数据库约束

讲师姓名:

欧阳熊猫老师 主页:https://www.imooc.com/u/6561220/courses?sort=publish

第 二 模 块

课程内容:

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


这篇关于【九月打卡】第十六天数据库约束之主键约束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程