MySQL(3)修改表结构,约束条件

143 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第41天,点击查看活动详情

一,修改表结构

​ 1.1,修改表名

​ -alter table 表名 rename to 新表名;

​ 1.2,修改字段名和类型

​ -alter table 表名 change 旧字段 新字段 数据类型;

​ 1.3,修改字段数据类型

​ -alter table 表名 modify 字段 数据类型;

​ 1.4,增加字段

​ -alter table 表名 add 字段 数据类型;

​ 1.5,删除字段

​ -alter table 表名 drop 字段;

二,约束条件

约束是一种限制,通过对表中的数据做出限制,并确保表格中数据完整性,唯一性

在这里插入图片描述

​ 2.1,默认约束(默认为NULL)

​ -create table 表名(字段 数据类型 default 默认值,...);

​ -alter table 表名 add 字段 数据类型 default 默认值;

​ 2.2,非空约束(值不能是NULL)

​ -create table 表名(字段 数据类型 not null,...);

​ -alter table 表名 add 字段 数据类型 default 默认值;

​ 2.3,唯一约束(不能有重复的值)

​ -create table 表名(字段 数据类型 unique key,...);

​ -alter table 表名 add 字段 数据类型 unique key;

​ 2.4,主键约束(最重要的字段,体现唯一性)

​ 主键 = 非空 + 唯一

​ -create table 表名(字段 数据类型 primary key,...);

​ -alter table 表名 add 字段 数据类型 primary key;

​ 2.5,自增长约束(只能和主键配合使用)

​ -create table 表名(字段 数据类型 primary key auto_increment)

​ 全字段插入时,若该主键此处的值为NULL时,自己生成数字!!!

​ 2.6,外键约束(联系表,保持数据一致性。主表里的绑定数据必须唯一)

当外键约束条件时,想删除主表里id为5数据,必先删次表里id为5的数据[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhG2Fc2k-1620639774751)(D:\python\python思维导图和笔记\数据库\1,MySQL\笔记辅图\Snipaste_2019-02-05_18-52-34.png)]

​ 缺点:对性能消耗比较大,如果在一张表里面增加或者删除,要在另外一张表把所有的数据扫描一遍!

三,表关系


​ 3.1,一对一

​ 把两个唯一键用外键绑定在一起(两个主键的值必须相互对应)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mL94hcw4-1620639774752)(D:\python\python思维导图和笔记\数据库\1,MySQL\笔记辅图\Snipaste_2019-02-05_21-28-10.png)]

​ 3.2,一对多

​ 主表绑定的数据是唯一,次表没有设置唯一键,就是一对多[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bOMVLEzZ-1620639774754)(D:\python\python思维导图和笔记\数据库\1,MySQL\笔记辅图\Snipaste_2019-02-05_21-31-18.png)]

​ 3.3,多对多

​ 通过一张中间表,来进行多对多关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nyn9Zt1d-1620639774757)(D:\python\python思维导图和笔记\数据库\1,MySQL\笔记辅图\Snipaste_2019-02-05_21-42-54.png)]