MySql 表结构修改、约束条件、表关系

表结构修改(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分别是学生表和课程表的外键
(0)

相关推荐

  • 外键与单表查询

    日期类型 datetimedatetimeyear 枚举与集合 多选一enum gender enum()多选多(多选一)set hobbies set() 创建表的完整语法 create table ...

  • sql语句,筛选条件、聚合分组、连接查询

    筛选条件.聚合分组.连接查询 mysql三:表结构修改.约束条件.python交互 一.表结构修改 --- alter 1.修改表名: alter table 原名 rename to 新名; 2.修 ...

  • MySQL数据库:数据完整性及约束的应用

    数据完整性 1.域完整性:---------匹配完整性:非空.缺省 字段/列 2.实体完整性:-------匹配完整性:主键.唯一键 记录/行 3.引用完整性:-------匹配完整性:外键 表与表之 ...

  • MySQL: (二) 约束那点事儿

    顶哥今天总结一下mysql当中的一些常见约束吧! 那什么是约束呢?通俗点讲,约束就是限定指定字段的存放规则! ● 主键约束(Primary Key) ● 外键约束(Foreign Key) ● 非空约 ...

  • (8条消息) MySQL数据库命令

    (8条消息) MySQL数据库命令

  • Mysql:初识MySQL

    转载自:https://www.cnblogs.com/hellokuangshen/archive/2019/01/09/10246029.html Mysql:初识MySQL 只会写代码的是码农: ...

  • 综述 | Semin.Cancer Biol. : 癌症代谢与表观遗传学的关系

    编译:王缠,编辑:Emma.江舜尧. 原创微文,欢迎转发转载. 导读 在过去的半个世纪里,我们对癌症的看法,从肿瘤的发生.生长到转移,都是以基因突变为主:直到最近才认识到代谢和表观遗传学的重要性.广泛 ...

  • 全网股民请注意,这9篇口诀表从量价关系,...

    全网股民请注意,这9篇口诀表从量价关系,到买卖交易法则,涵盖了市场最具价值的口诀大全! 这些经典炒股规律可以让你少走10年弯路,越早学会越早持续盈利,一定要好好收藏看看,值得股民朋友牢记一辈子! #A ...

  • MySQL行锁、表锁、间隙锁详解

    前言 我们前几篇讲了索引是什么,如何使用explain分析索引使用情况,如何去优化索引,以及show profiles分析SQL语句执行资源消耗的学习.今天我们来讲讲MySQL的各种锁,这里存储引擎我 ...

  • MySQL 从零开始:04 表的增删改查

    在上一小节中介绍了 MySQL 数据库的一些最最最基础的入门级也是必须要掌握的10条语句,本节将继续深入学习 MySQL 的增删改查语句.本节讲的增删改查是相对于表 而言的. 1.准备工作 想要对表进 ...

  • 口袋之旅属性相克表 各属性相克关系一览

    口袋妖怪间的对战最有策略性的是什么?正是属性之间的相克,火克草,水克火,草克水,不仅仅是这三个属性,中一共有18种属性!那么了解这些属性间如何相克就显得格外重要了.就跟小编一起,来看看口袋之旅中的属性 ...

  • MySQL(学生表、教师表、课程表、成绩表)多表查询

    MySQL(学生表、教师表、课程表、成绩表)多表查询

  • mySql创建带解释的表及给表和字段加注释的实现代码

    mySql创建带解释的表及给表和字段加注释的实现代码

  • mysql 不能加载表问题

    记录一次 mysql 5.7 下,出现重启数据库后不能加载特定表的问题处理. 搜索了很多的类似的错误,大多都是说因为外键同名的索引丢失的情况.但在5.7这个版本下,会禁止更新外键关联的索引. 最后经过 ...

  • mysql添加索引(建表之后)

    一.使用ALTER TABLE语句创建索引 语法如下: alter table table_name add index index_name (column_list) ;alter table t ...