• mysql索引和约束区别


    一:约束

    作用:是为了保证数据的完整性而实现的摘自一套机制,它具体的根据各个不同的数据库的实现而有不同的工具(约束);

    这里主要讲解mysql的约束:

    1、非空约束:not null;

     指示某列不能存储 NULL 值

    2、唯一约束:unique();uk 

    unique约束的字段,要求必须是唯一的,但null除外;

    3、主键约束:primary key();pk

    主键约束=not  null + unique,确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

    4、外键约束:foreign  key () references (参考),fk 

    保证一个表中的数据匹配另一个表中的值的参照完整性。语法:constraint  fk_dept_id   foreign key  (dept_id)  references  dept(dept_id);

    5、自增约束:auto_increment

    6、默认约束:default 

    给定默认的值

    7、检查性约束:check 

    保证列中的值符合指定的条件。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table member(
       id      int(10),
       phone   int(15)  unsigned   zerofill,
       name    varchar(30)   not   null,
       constraint   uk_name   unique(name),
       constraint   pk_id     primary key (id),
       constraint   fk_dept_id   foreign key (dept_id,字段2)
       references  dept(主表1)(dept_id)
    );

      

    //constraint  uk_name   可以省略不写。uk_name  唯一约束名称;

    //pk_id     主键约束名称;

    //fk_dept_id   外键约束名称


    二:索引

    作用:快速定位特定数据,提高查询效率,确保数据的唯一性快速定位特定数据;可以加速表和表之间的连接,实现表与表之间的参照完整性,使用分组和排序语句进行数据检索时,可以显著减少分组和排序的时间全文检索字段进行搜索优化;

    索引的种类:

    1、主键索引(primary   key);

    2、唯一索引(unique);

    3、常规索引(index);

    4、全文索引(full  text);

    总结:约束是为了保证表数据的完整性,索引是为了提高查询效率,两者作用不一样!其次种类也不一样。

    摘自:https://www.cnblogs.com/YLQBL/p/8473248.html

  • 相关阅读:
    百度搜索时加上 (要屏蔽的内容),你会回来感谢我的。
    layui中不全的组件
    PHP使用gd库做的图像处理
    范用户体验相关BLOG
    视频聊天室软件的技术标准
    QTP11使用DOM XPath以及CSS识别元素对象
    跟我一起学Oracle 11g【11】Oracle 中的事务
    一点关于 mybatis 的记录
    git撤销本地commit,复原本地代码与服务器同步
    中国人民银行令〔2021〕第4号(征信业务管理办法)
  • 原文地址:https://www.cnblogs.com/Zeng02/p/12736373.html
Copyright © 2020-2023  润新知