前言:
现时我们对“查看mysql外键”大体比较着重,姐妹们都想要知道一些“查看mysql外键”的相关内容。那么小编同时在网络上收集了一些有关“查看mysql外键””的相关文章,希望姐妹们能喜欢,姐妹们快快来学习一下吧!一、mysql 索引
mysql索引描述:mysql 中的索引就像一本书的目录,能够提高检索效率,快速定位要找的内容。
(一)索引的四种类型:
1. NORMAL(普通索引类型)(常用)
适用范围广,最基本的索引,它没有任何限制,用于加速查询
2. UNIQUE(唯一索引)
不能重复,主键自动拥有该索引,但允许有空值。如果是组合索引,则列值的组合必须唯一
3. FULLTEXT(全文索引)
检索较长的文本文件效果较好,主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配
4. SPATIAL(空间索引)
空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING、POLYGON。MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建
5. 主键索引
是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。
(二)索引的两种方式:
1. BTREE (B-Tree索引)(常用)
BTREE索引,使用大于,小于,BETWEEN,不等于,LIKE等操作符的时候都可以用。对索引字段进行范围查询的时候,只有BTREE索引可以通过索引访问。HASH索引实际上是全表扫描的。
如果对多列进行索引,列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效查找。
2. Hash 索引
HASH索引适合等式比较的操作,不能用来加速order by操作,也不能确定在两个值之间大约有多少行,会影响一些查询的执行效率。而且只能使用整个关键字来搜索一行。
二、mysql 外键
建立两个表之间的连接的一列或多列联系,表示一个表中的字段被另一个表的字段引用。
在MySQL中,外键应该建在从属表(子表)中。也就是说,在多个表中存在关联关系时,主表(父表)中的主键被作为从属表(子表)中外键的参照对象,从而与其他表实现关联。因此,从属表中的外键列必须与主表中相应的主键列保持一致,以便通过外键约束来实现数据完整性的验证。
外键约束使用最多的两种情况无外乎:
1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败;
2)父表更新时子表也更新,父表删除时子表匹配的项也删除。
前一种情况,在外键定义中,我们使用ON UPDATE CASCADE ON DELETE RESTRICT;
后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE。
设置外键更新和删除时的四种外键约束类型:
CASCADE 在父表中 update/delete 记录时,同步 update/delete 子表对应的记录。(更新时常用)NO ACTION 在父表中 update/delete 记录时,不会 update/delete 子表对应的记录。(删除时常用)RESTICT 同 NO ACTION,有优先级时有区别。SET NULL 在父表中 update/delete 记录时,将字表匹配的列设为 NULL,字表外键列不能为 NOT NULL
标签: #查看mysql外键