MySql 表结构修改、约束条件、表关系
程序员文章站
2022-11-07 11:28:17
表结构修改(alter) 查看表的结构:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型; 修改字段类型:alter table 表名 modify 字段名 数据类型; 添加字 ......
表结构修改(alter)
- 查看表的结构:desc 表名;
- 修改表名:alter table 表名 rename to 新表名;
- 修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型;
- 修改字段类型:alter table 表名 modify 字段名 数据类型;
- 添加字段:alter table 表名 add [column] 新字段 数据类型;
- 删除字段:alter table 表名 drop [column] 字段名;
约束条件
约束是一种限制,通过对表中的数据做出限制,来确保表中数据的完整性,唯一性
- 默认约束(default)
- 插入数据的时候,如果没有明确为字段赋值,则自动赋予默认值
- 在没有设置默认值的情况下,默认值为null
- 非空约束(not null)
- 限制一个字段的值不能为空,insert的时候必须为该字段赋值
- 空字符不等于null
- 唯一约束(unique key)
- 限制一个字段的值不重复,该字段的数据不能出现重复的
- 确保字段中值的唯一
- 主键约束(primary key)
- 通常每张表都需要一个主键来体现唯一性,每张表里面只能有一个主键
- 主键 = 非空 + 唯一
- 自增长约束(auto_increment)
- 自动编号,和主键组合使用,一个表里面只能有一个自增长
- auto_increment 要求用在主键上
- id int primary key auto_increment,
- 或者
- id int auto_increment , primary key(id)
- 如果不想默认从1开始,从1000开始
- ...(id int primary key auto_increment)auto_increment=1000;
- 外键约束(foreign key)
- 保持数据的一致性,我有的你一定有,你没有的,我绝对没有
- foreign key (id_b) references a(id_a)
表关系
- 一对一
- 用外键的方式,把两个表的主键关联
- 一对多
- 通过外键关联来实现这种关系
- 多对多
- 对于多对多关系,需要创建中间表实现
- 例如学生选课
- 选课表(中间表)的学生id和课程id分别是学生表和课程表的外键