zoukankan      html  css  js  c++  java
  • MySQL索引

    1.主键索引(聚集索引)PRI

    #创建主键索引
    1.建表时创建主键索引
        1)方法1:
        mysql> create table student(id int unsigned primary key auto_increment comment '学生id');
        2)方法2:
        mysql> create table student1(id int unsigned NOT NULL AUTO_INCREMENT COMMENT '学生id', PRIMARY KEY (id));
    
    2.已经有的表,添加主键索引
    #建表
    mysql> create table student2(id int unsigned NOT NULL COMMENT '学生id',name varchar(10) NOT NULL COMMENT '学生姓名');
    #添加主键索引
    mysql> alter table student2 add primary key pri_key(id);

    2.唯一建索引 UNI

    1)创建表时添加唯一键索引

    1.方法1:
    mysql> create table student3(id int unsigned NOT NULL unique key COMMENT '学生id');
    
    2.方法2:
    mysql> create table student4(id int unsigned NOT NULL AUTO_INCREMENT COMMENT '学生id', unique key (id));

    2)已经有的表,添加唯一键索引

    #建表
    mysql> create table student5(id int unsigned NOT NULL COMMENT '学生id',name varchar(10) NOT NULL COMMENT '学生姓名');
    #添加主键索引
    mysql> alter table student2 add unique key uni_key(id);

    3)如何确定哪一列可以创建唯一键

    #1.查看表中某一字段的总数据
    mysql> select count(name) from country;
    +-------------+
    | count(name) |
    +-------------+
    |         239 |
    +-------------+
    1 row in set (0.00 sec)
    
    #2.去重查看表中某一列数据
    mysql> select distinct(name) from country;
    mysql> select distinct(count(name)) from country;
    +---------------+
    | (count(name)) |
    +---------------+
    |           239 |
    +---------------+
    1 row in set (0.00 sec)
    
    #3.查看以上两个值是否完全相同
    
    #4.如果相等则可以创建唯一建索引
    mysql> alter table country add unique key uni_key(name);

    4)函数

    now()          #当前时间的函数
    database()      #查看当前库的函数
    count()          #查看数据总数的函数,count(主键)
    distinct()      #去重数据的函数
    PASSWORD()      #数据库密码加密函数
    
    max()        #取某一列最大值
    min()        #取某一列最小值
    avg()        #取某一列平均值
    sum()        #取某一列总数

    3.普通索引(辅助索引)MUL

    1)创建索引

    1.方法1:
    mysql> alter table city add index index_key(name);
    
    2.方法2:
    mysql> create index idx_key on city(District);

    4.全文索引 MUL

    1)建表时创建全文索引

    mysql> create table xiaoshuo(id int,bookname varchar(20),author varchar(10),content text,FULLTEXT(content));

    2)插入数据

    mysql> insert into xiaoshuo values('1','西游演义','lhd','上回书说到张飞长坂坡三打白骨精救宋江');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from xiaoshuo;
    +------+--------------+--------+--------------------------------------------------------+
    | id   | bookname     | author | content                                                |
    +------+--------------+--------+--------------------------------------------------------+
    |    1 | 西游演义     | lhd    | 上回书说到张飞长坂坡三打白骨精救宋江                   |
    +------+--------------+--------+--------------------------------------------------------+
    1 row in set (0.00 sec)

    3)使用索引查询数据

    mysql> select * from xiaoshuo where match(content) against('上回书说到张飞长坂坡三打白骨精救宋江');
    +------+--------------+--------+--------------------------------------------------------+
    | id   | bookname     | author | content                                                |
    +------+--------------+--------+--------------------------------------------------------+
    |    1 | 西游演义     | lhd    | 上回书说到张飞长坂坡三打白骨精救宋江                   |
    +------+--------------+--------+--------------------------------------------------------+
    1 row in set (0.00 sec)

    5.查看索引

    1.方式1:
    mysql> desc city;
    +-------------+----------+------+-----+
    | Field       | Type     | Null | Key |
    +-------------+----------+------+-----+
    | ID          | int(11)  | NO   | PRI |        #主键索引
    | Name        | char(35) | NO   | MUL |        #普通索引
    | CountryCode | char(3)  | NO   | UNI |        #唯一键索引
    | District    | char(20) | NO   | MUL |
    | Population  | int(11)  | NO   |     |
    +-------------+----------+------+-----+
    
    2.方式2:
    mysql> show index from city;

    6.删除索引

    mysql> alter table city drop index idx_key;
  • 相关阅读:
    python+selenium初学者常见问题处理
    pycharm的这些配置,你都知道吗
    巧用浏览器F12调试器定位系统前后端bug
    dsu + lca
    indeed2017校招在线编程题(网测)三
    rolling hash
    ac自动机
    indeed 第二次笔试题
    vmware以及schlumberger题解
    2017 google Round C APAC Test 题解
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13907286.html
Copyright © 2011-2022 走看看