• mysql之索引


    一、索引概述

      1、定义:对数据库表的一列或多列的值进行排序的一种结构(Btree方式)

      2、优点:加快数据检索速度

      3、缺点:

        1)占用物理存储空间

        2)当对表中数据更新时,索引需要动态维护,降低数据维护速度

    二、索引分类

      1、普通(MUL) and 唯一(UNI)

        1)使用规则:

          1、可设置多个字段

          2、普通索引 :字段值无约束,KEY标志为 MUL

          3、唯一索引 :字段值不允许重复,但可为 NULL , KEY标志为 UNI

        2)创建普通索引and唯一索引:

          1、创建表时:

            create table 表名(字段名 数据类型,字段名 数据类型,index(字段名),index(字段名),unique(字段名));

          2、已有表中创建

            create [unique] index 索引名 on 表名(字段名);

        3)查看索引

          1、desc 表名; --> KEY标志为:MUL 、UNI

          2、show index from 表名G;

        4)删除索引

          drop index 索引名 on 表名;

      2、主键(PRI)and自增长(auto_increment)

        1)使用规则:

          1、只能有一个主键字段

          2、所带约束 :不允许重复,且不能为NULL

          3、KEY标志 :PRI

          4、通常设置记录编号字段id,能唯一锁定一条记录

        2)创建

          1、创建表添加主键

            create table student(xxx xxx)auto_increment=10000;##设置自增长起始值

            如:create table student( id int auto_increment, name varchar(20), primary key(id))charset=utf8,auto_increment=10000;##设置自增长起始值

          2、已有表添加主键

            alter table 表名 add primary key(id);

          3、已有表操作自增长属性

            1、已有表添加自增长属性

              alter table 表名 modify id int auto_increment;

            2、已有表重新指定起始值:

              alter table 表名 auto_increment=20000;

        3)删除

          1、删除自增长属性(modify)

          2、删除主键索引

      3、外键(foreign key)

        1、定义:让当前表字段的值在另一个表的范围内选择

        2、语法:

            

        3、使用规则:

          1、主表、从表字段数据类型要一致

          2、主表被参考字段 :KEY的一种,一般为主键

        4、示例:

          

        5、删除外键

          alter table 表名 drop foreign key 外键名;

          外键名 :show create table 表名;

        6、级联动作

          1)cascade :​数据级联删除、更新(参考字段)

          2)restrict(默认) :从表有相关联记录,不允许主表操作

          3)set null :主表删除、更新,从表相关联记录字段值为NULL

        7、已有表添加外键

          alter table 表名 add foreign key(参考字段) references 主表(被参考字段) on delete 级联动作 on update 级联动作

        

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    CF 256C Furlo and Rublo and Game【博弈论,SG函数】
    opengl笔记——OpenGL好资料备忘
    SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
    ORACLE数据库对比表结构
    SSRS Reports 2008性能优化案例二
    Linux LVM学习总结——扩展卷组VG
    MySQL备份还原——AutoMySQLBackup介绍
    mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
    MySQL备份还原——mysqldump工具介绍
    ORACLE查看数据文件包含哪些对象
  • 原文地址:https://www.cnblogs.com/yuxiangyang/p/11079153.html
Copyright © 2020-2023  润新知