主键索引(PRIMARY KEY)

  1. # 主键 = 唯一键索引 + 非空 + 只能设置一个字段
  2. # 创建表的时候创建主键索引
  3. mysql> create table test(id int not null auto_increment primary key comment '学号');
  4. Query OK, 0 rows affected (0.04 sec)
  5. mysql> create table test1(id int not null auto_increment,primary key(id));
  6. Query OK, 0 rows affected (0.04 sec)
  7. # 查看索引命令
  8. mysql> show index from test;
  9. mysql> desc test;
  10. # 已经有表时添加主键索引
  11. mysql> alter table student add primary key(id);
  12. mysql> alter table student add primary key pri_id(id);
  13. # 删除主键索引
  14. mysql> alter table student DROP PRIMARY KEY;

唯一键索引(UNIQUE KEY)

  1. # 唯一键 = 普通索引 + 列中每个值是唯一的
  2. # 创建表的时候创建唯一键索引
  3. mysql> create table test2(id int not null auto_increment unique key comment '学号');
  4. Query OK, 0 rows affected (0.04 sec)
  5. # 已经有表时添加唯一键索引
  6. mysql> alter table student add unique key(name);
  7. mysql> alter table student add unique key uni_key(name);
  8. # 删除唯一键索引
  9. mysql> alter table student drop index name;
  10. mysql> alter table student drop index uni_key;
  11. # 注意:在创建唯一键索引(或主键索引)时,选择的列不能有重复数据
  12. 判断一列能否做唯一建索引
  13. 1.查询数据总量
  14. mysql> select count(name) from city;
  15. 2.去重查看该列数据总量
  16. mysql> select count(distinct name) from city;
  17. # 以上两个值相等则可以设置唯一建索引

如下案例则可以创建 name字段的唯一键索引:

  1. # 1.查看列的总数据量
  2. mysql> select count(name) from country;
  3. +-------------+
  4. | count(name) |
  5. +-------------+
  6. | 239 |
  7. +-------------+
  8. 1 row in set (0.00 sec)
  9. # 2.查看去重后数据量
  10. mysql> select count(distinct(name)) from country;
  11. +-----------------------+
  12. | count(distinct(name)) |
  13. +-----------------------+
  14. | 239 |
  15. +-----------------------+
  16. 1 row in set (0.00 sec)
  17. # 3.创建唯一建索引
  18. mysql> alter table country add unique key uni_key(name);

普通索引(INDEX)

  1. # 为了方便查找记录
  2. # 方式一
  3. mysql> alter table city add index inx_name(name);
  4. Query OK, 0 rows affected (0.14 sec)
  5. Records: 0 Duplicates: 0 Warnings: 0
  6. # 方式二
  7. mysql> create index index_District on city(District);
  8. 注意,这两种称呼是对建立索引技巧的一种称呼,并非索引的类型。
  9. # 删除索引(方式一,方式二)
  10. mysql> alter table city drop index inx_name;
  11. mysql> drop index index_District on city;

全文索引(FULLTEXT)

  1. mysql> create table txt(id int,bookname varchar(12),wenzhang text,fulltext(wenzhang));
  2. Query OK, 0 rows affected (0.20 sec)
  3. mysql> select * from txt where match(wenzhang) against('查询的内容');
  4. # 实例
  5. mysql> create table text(id int,bookname varchar(12) charset utf8,wenzhang text charset utf8,fulltext(wenzhang));
  6. Query OK, 0 rows affected (0.21 sec)
  7. mysql> insert into text values(1,'红楼梦','上回书说到张飞长坂坡三打白骨精救出宋江');
  8. Query OK, 1 row affected (0.01 sec)
  9. mysql> select * from text;
  10. +------+-----------+-----------------------------------------------------------+
  11. | id | bookname | wenzhang |
  12. +------+-----------+-----------------------------------------------------------+
  13. | 1 | 红楼梦 | 上回书说到张飞长坂坡三打白骨精救出宋江 |
  14. +------+-----------+-----------------------------------------------------------+
  15. 1 row in set (0.00 sec)
  16. mysql> select * from text where match(wenzhang) against('上回书说到张飞长坂坡三打白骨精救出宋江');
  17. +------+-----------+-----------------------------------------------------------+
  18. | id | bookname | wenzhang |
  19. +------+-----------+-----------------------------------------------------------+
  20. | 1 | 红楼梦 | 上回书说到张飞长坂坡三打白骨精救出宋江 |
  21. +------+-----------+-----------------------------------------------------------+
  22. 1 row in set (0.00 sec)
  23. mysql> alter table city drop index wenzhang;
  24. Query OK, 0 rows affected (0.03 sec)
  25. Records: 0 Duplicates: 0 Warnings: 0

MySQL 索引的类型的更多相关文章

  1. Mysql索引的类型

    索引的类型 B-Tree索引 B-Tree 索引 通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同. B-Tree 索引 能够加快访问数据的速度,存储引擎不再需要进行全表扫描来获取需 ...

  2. MYSQL索引的类型和索引的方式

    索引的类型: normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索 ...

  3. Mysql索引的类型和优缺点

    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢.每修改数据 ...

  4. mysql 索引B-Tree类型对索引使用的生效和失效情况详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt343 当人们谈论索引的时候,如果没有特别指明类型 ,那多半说的是 B-Tre ...

  5. mysql索引总结----mysql 索引类型以及创建

    文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...

  6. ***mysql索引总结----mysql索引类型以及创建

    文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...

  7. mysql索引总结(1)-mysql 索引类型以及创建

    mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...

  8. MySQL数据库索引类型、MySQL索引的优化及MySQL索引案例

    关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车.对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型 ...

  9. MYSQL索引类型。MYSQLc储存引擎

                                                            MYSQL索引类型,MYSQLc储存引擎 MySQL索引创建与删除 MySQL存储引擎的 ...

随机推荐

  1. libnum报错问题解决

    之前在使用python libnum库时报错 附上报错内容 Traceback (most recent call last) : File" D:/python file/ctf/RSA共 ...

  2. 训练分类器 - 基于 PyTorch

    训练分类器 目前为止,我们已经掌握了如何去定义神经网络.计算损失和更新网络中的权重. 关于数据 通常来讲,当你开始处理图像.文字.音频和视频数据,你可以使用 Python 的标准库加载数据进入 Num ...

  3. SAP 摘录数据集

    要在报表中创建并填充摘录数据集,需要执行三步骤:1.将要在摘录数据集中使用的记录类型定义为字段组FIELD-GROUPS该语句定义了字段组,字段组可以将几个字段组合到一个名称下,字段组不为字段保留存储 ...

  4. 如何将1rpx转为1rem

    最近我在开发的过程中,出现了一个需求,我需要把开发好的小程序倒模成H5页面,这里就涉及一个布局单位问题,我们小程序用的单位都rpx,是按照750rpx铺满整个页面来算的,可H5又不支持rpx单位,这里 ...

  5. Py变量,递归,作用域,匿名函数

    局部变量与全局变量 全局变量:全局生效的变量,在顶头的,无缩进的定义的变量. 局部变量:函数内生效的变量,在函数内定义的变量. name='1fh' def changename(): name='s ...

  6. Jmeter如何录制APP客户端脚本

    简单五步教大家Jmeter录制APP客户端脚本: Step1 右键单击该测试计划,选择"添加"-"线程组",添加一个线程组. Step2 为了录制客户端的操作, ...

  7. charles安装使用乱码连手机等问题解决方案

    捣鼓半天终于安装好了,给大家分享下我的过程 1.安装, 正常网上安装即可,我安装了个有汉化包的,,推荐链接 安装方法下载破解版,安装即可 安装包地址:https://pan.baidu.com/s/1 ...

  8. 解析MySQL中存储时间日期类型的选择问题

    解析MySQL中存储时间日期类型的选择问题_Mysql_脚本之家 https://www.jb51.net/article/125715.htm 一般应用中,我们用timestamp,datetime ...

  9. how2j 仿天猫j2EE零散笔记

    1. 在servlet中拼接  :"http://localhost:8080/tmall/admin_property_list?cid=83"  这句话中的cid=83时, c ...

  10. nginx 配置文件解读

    参考:链接 在微服务的体系之下,Nginx正在被越来越多的项目采用作为网关来使用,配合 Lua 做限流.熔断等控制 --源自 nginx Lua 脚本语言,用标准C语言编写并以源代码形式开放, 其设计 ...