zoukankan      html  css  js  c++  java
  • Mysql 索引与Key

    如果只是key的话,就是普通索引

    mysql的key和index多少有点令人迷惑,单独的key和其它关键词结合的key(primary key)实际表示的意义是不同,这实际上考察对数据库体系结构的了解的。

    primary key 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个主键索引

    unique key 也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个唯一索引;

    foreign key 也有两个作用,一是约束作用(constraint),规范数据的引用完整性,但同时也在这个key上建立了一个index;

    mysql> desc aa;
    +-------+---------+------+-----+---------+-------+
    | Field | Type    | Null | Key | Default | Extra |
    +-------+---------+------+-----+---------+-------+
    | id    | int(11) | YES  |     | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    | xx    | int(11) | YES  | PRI | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    | yy    | int(11) | YES  | UNI | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    | zz    | int(11) | YES  | MUL | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    1 row in set (0.00 sec)

    我们看到Key那一栏,可能会有4种值,即'啥也没有','PRI','UNI','MUL'
    1. 如果Key是空的, 那么该列值的可以重复,表示该列没有索引, 或者是一个非唯一的复合索引的前导列
    2. 如果Key是PRI,  那么该列是主键的组成部分
    3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),且不能含有空值(NULL)
    4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL

  • 相关阅读:
    Java Mockito 笔记
    J2EE 练习题
    CXF 教程 (二)
    CXF 教程(一)
    Java 动态代理
    常用 Git 命令汇总
    JXL 简单示例
    Visual Studio 技巧
    TreeView双击节点而不改变节点的折叠/展开状态
    称3次,找出坏鸡蛋
  • 原文地址:https://www.cnblogs.com/tudachui/p/9685793.html
Copyright © 2011-2022 走看看