主表 从表

建表原则

  • 一对多的关系建表

从表中创建一个外键字段,指向主表的主键。

分类和商品:一个分类可以对应多个商品,但一个商品只能属于某一个分类。
部门和员工:一个部门可以有多个员工,但一个员工只能属于某一个部门。
  • 多对多的关系建表原则

创建中间表,表中至少有两个字段,分别作为外键,指向各自一方的主键。
两张表分别都是主表,中间表为从表,提供两个字段都是外键。

学生和课程

主键,外键

主键:primary key

外键:foreign key,用来保证数据的完整性。
从表外键列的值必须参照主表主键列的值,外键允许为NULL。

从表中外键的数据类型,必须与主表中主键的数据类型保持一致。

外键值不许添加主表中,不存在的主键值。
主表的主键,不能删除从表中外键已经引用的记录。
声明外键约束

alter table 从表 add [constraint] [外键名称] 
foreign key(从表外键字段名) 
references 主表(主表的主键)
在MySQL中,InnoDB支持事务和外键,修改表的存储引擎为InnoDB。

ALTER TABLE 表名 ENGINE = 'InnoDB';

约定优于配置:约定好规则

表名:t_表名
主键 id
外键 参照表(缩写)_主键名

开发中为了提高性能,往往不要外键,但是依然使用InnoDB存储引擎。

视图

视图即虚表,实际上就是一个命名的查询,用于改变基表数据的显示,用来限制对基表数据的直接访问,提高了查询性能。

视图的DML

创建视图
CREATE VIEW v_demo
AS SELECT AVG(salePrice) 
FROM product 
WHERE salePrice > 100 
GROUP BY dir_id HAVING  AVG(salePrice) > 400

删除一个视图
DROP VIEW viewname



作者:云承寒
链接:https://www.jianshu.com/p/3fc4e2e95910
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值