2020/01/21 04-主键外键索引约束视图

在这里插入图片描述
主键是唯一的是不可以重复的,不可以为空,而且可以自增,一般是是一个表的ID列,
或者一个表的多列代表主键。主键对大多数表都必须要有
实际中,虽然可以用多列来表示主键,用来唯一标识表中的一行,但是不会使用这个来做主键,一般选择一个ID字段来做唯一字段,联合主键的方式用的很少,一般建立单列主键

在这里插入图片描述
字典本身没有索引,一旦有索引之后,字典要增厚,一种增加空间来换时间的方法,为了时间复杂度O(1)
常用的;
主键索引,使用主键就会为你自动创建主键索引,当你把这个列设定成主键之后,自动会为这些列创建主键索引,因为主键可以标识唯一的一行,所以主键天生有索引。
唯一索引:在这个列上加了唯一索引,就可以标识表中的唯一一行,与主键索引的区别就是,唯一索引可以为空,空可以有很多个,但是只要是非空只能唯一。
普通索引:没有唯一性要求,就是建了一个字典的目录而已。
(如果创建新的数据,在索引里就需要增加,删除数据就需要从索引里剔除,修改就需要在索引上进行挪动)
写入的操作,索引 会降低效率,读取操作,索引提高效率
所以写多杜读少,索引就需要适量

这里用的索引是B+TREE树,理解为特殊的2分的树,把树的数据排序好的话,速度会很快

在这里插入图片描述
唯一键会生成约束,非空必须唯一,不满足就报错
在这里插入图片描述
主键这一列就要求不为空,而且单列必须唯一,如果是多列,就是多列组合在一起唯一,强制性约束
在这里插入图片描述
A表,B表,表B 的列关联A中的主键,表B的列就是外键
在这里插入图片描述
外键约束有三种情况,插入,更新,删除
插入规则:
在表B插入一条数据,B的外键列插入了一个值,这个值必须是表A中存在的主键值

在这里插入图片描述
b表的uid是外键,那就必须在A表的id中出现过,这就是外键 插入约束在这里插入图片描述
缺省的规则
如果要从父表中删除更新主键

在这里插入图片描述
如果要从父表中删除更新主键所对应的行,主键一旦被从表使用过,就会阻止你删除或者修改,这是默认行为在这里插入图片描述
在从表中,主表的主键不一定全部要在从表中出现,不代表主表有多少个,从表就要有多少个在这里插入图片描述
说白了这个就是阻止你更新和删除的
在这里插入图片描述
父表要删除或更新某一行,会设置子表的列为null,但是一旦子表的列不允许null,就会报错
在这里插入图片描述
从父表删除或更新会自动删除或更新子表中匹配的行,级联删除,特别需要小心
在这里插入图片描述
视图也成虚表
看起来像个表,但是是由查询语句生成的表。虽然可以通过视图CRUD,但是不建议。
简化查询操作
核心的业务一般通过视图暴露出去,看不到真实的列,比较安全

在这里插入图片描述
可以直接拖起来,把下面的语句拷贝走
在这里插入图片描述

mysql中的数据类型

在这里插入图片描述
在这里插入图片描述
一般float够用了,如果是浮点数数值比较大,建议使用double
在这里插入图片描述
固定长度在物理磁盘上存放的比较整齐,按照偏移量来找数据,检索起来就比较快在这里插入图片描述
text存字符,blob是大字节,能不用则不用,一般放相对路径,存放是文件系统的事情
在这里插入图片描述
M是字符数的限制
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值