mysql 表关系 与 修改表结构

时间:2019-07-15 09:29:14   收藏:0   阅读:179

mysql 表关系 与 修改表结构

两张表关系

技术分享图片

"""
从左边的表思考,这张表的多条信息是否能对应上右边表的一条信息,能对应上(成立),再从右边的表思考,
右表的多条信息是否能对应上左表的一条信息(不成立),那么两张表就可以确定是多对一关系,右表是多,左表是一,右边表就是设置外键的表
"""

技术分享图片

技术分享图片

分析步骤

"""
#1、先站在左表的角度去找
是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id)

#2、再站在右表的角度去找
是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)

#3、总结:
#多对一:
如果只有步骤1成立,则是左表多对一右表
如果只有步骤2成立,则是右表多对一左表

#多对多
如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系

#一对一:
如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,
就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可
"""

修改表结构

"""
语法:
1. 修改表名
      alter table 表名 
                      rename 新表名;

2. 增加字段
      alter table 表名
                      add 字段名  数据类型 [完整性约束条件…],
                      add 字段名  数据类型 [完整性约束条件…];
                            
3. 删除字段
      alter table 表名 
                      drop 字段名;

4. 修改字段
      alter table 表名 
                      modify  字段名 数据类型 [完整性约束条件…];
      alter table 表名 
                      change 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
      alter table 表名 
                      change 旧字段名 新字段名 新数据类型 [完整性约束条件…];

5.修改字段排列顺序/在增加的时候指定字段位置
    alter table 表名
                     add 字段名  数据类型 [完整性约束条件…]  first;
    alter table 表名
                     add 字段名  数据类型 [完整性约束条件…]  after 字段名;
    alter table 表名
                     change 字段名  旧字段名 新字段名 新数据类型 [完整性约束条件…]  first;
    alter table 表名
                     modify 字段名  数据类型 [完整性约束条件…]  after 字段名;


6.去掉null约束
create table t(id int unique,name char(10) not null);
alter table t modify name char(10) null;


7.添加null约束
alter table t modify name char(10) not null;


8.去掉unique约束
alter table t drop index id;


9.添加unique约束
alter table t modify id int unique;

10.删除表
drop table 表名;

"""

原文:https://www.cnblogs.com/guokaifeng/p/11186606.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!