为什么要创建索引?

    在此本人也带着相同的疑问,能够解释的仅仅是:为了减少数据库查询时所需要的速度。如果正常查询和索引查询所需时间相差很多倍时我们自然是需要索引的了。

想要知道结果,只能等我学得更加深入一点咯。

创建索引

创建索引有三种方法:(1)在创建表时创建索引; (2)使用ALTER TABLE 语句创建索引;(3)使用CREATE INDEX语句创建索引。

创建索引的类型有:普通索引(INDEX),唯一索引(UNIQUE INDEX),全文索引(FULLTEXT INDEX),空间索引(SPATIAL INDEX);其中全文索引,空间索引必须在MyISAM存储引擎下创建,且全文索引必须在数据类型为:CHAR、VARCHAR和TEXT的列上建立。

下面进行举例:

一、创建表时创建索引

1、创建普通索引

 CREATE TABLE T1
(
id INT NOT NULL,
    name CHAR(50) NULL,
   INDEX SingleIdx(name)
)

创建普通索引的语句为INDEX [索引名](列名),其中列名可以为多个,即以多个关键字创建索引。

2、创建唯一索引

CREATE TABLE T1
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
UNIQUE INDEX UniqIdx(id)
)

   创建唯一索引的语句为 UNIQUE INDEX [索引名](列名)

3、创建全文索引

CREATE TABLE T1
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
age INT NOT NULL,
info VARCHAR(255),
FULLTEXT INDEX FullTxtIdx(info)
) ENGINE=MyISAM;

  创建全文索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

  4、创建空间索引

CREATE TABLE T1
(
g GEOMETRY NOT NULL,
SPATIAL INDEX spatLdx(g),
) ENGINE = MyISAM;

  创建空间索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

二、在已有表上创建索引

  1、使用ALTER TABLE 语句创建索引

      其中基本语法为: ALTER TABLE table_name ADD [索引种类] [索引名](字段); 

      如:

      普通索引: ALTER TABLE book ADD INDEX BkNameIdx(bookname(30) ); 

      唯一索引: ALTER TABLE book ADD UNIQUE INDEX UniqidIdx( bookId ); 

  全文索引: ALTER TABLE book ADD FULLTEXT INDEX infoIdx( info); 

  空间索引: ALTER TABLE book ADD SPATIAL INDEX spatIdx( g ); 

     2、使用CREATE INNDEX语句创建索引

      其中基本语法为:

  CREATE [索引种类] INDEX [索引名] ON [表名](字段名)

      如:

      普通索引: CREATE INDEX BkNameIDX ON book(bookname); 

      唯一索引: CREATE UNIQUE INDEX UniqidIdx ON book( bookId ); 

  全文索引: CREATE FULLTEXT INDEX ON T1(info); 

  空间索引: CREATE SPATIAL INDEX spatIdx ON T1(g); 

     3、删除索引

     a、用ALTER TABLE 删除:

 ALTRER TABLE [表名] DROP INDEX [索引名];

  b、用DROP INDEX删除:

 DROP INDEX [索引名] ON [表名];

mysql基础操作学习笔记(2)----索引的更多相关文章

  1. mysql基础操作学习笔记(一)

    1前期准备: SQL语言包涵以下4个部分: (1)数据定义语言(DDL):包括DROP, CREATE, ALTER等语句 (2)数据操纵语言(DML):包括INSERT, UPDATE, DELET ...

  2. Mysql高级操作学习笔记:索引结构、树的区别、索引优缺点、创建索引原则(我们对哪种数据创建索引)、索引分类、Sql性能分析、索引使用、索引失效、索引设计原则

    Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 ...

  3. MySQL 5.6学习笔记(索引的创建与删除)

    1. 创建索引 1.1 创建新表时同时建立索引 语法: create table table_name[col_name data_type] [unique|fulltext|spatial][in ...

  4. MySQL基础操作&&常用的SQL技巧&&SQL语句优化

    基础操作     一:MySQL基础操作         1:MySQL表复制             复制表结构 + 复制表数据             create table t3 like t ...

  5. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  6. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  7. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  8. mysql数据库优化课程---13、mysql基础操作

    mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...

  9. Objective-c基础知识学习笔记

    Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...

随机推荐

  1. mysql DDL时出现的锁等待状态

    如下表格所示: session1: session2: 10:30:27 root@localhost:[testdb] mysql.sock>select * from t2;+------+ ...

  2. Google Code jam Qualification Round 2015 --- Problem A. Standing Ovation

    Problem A. Standing Ovation Problem's Link:   https://code.google.com/codejam/contest/6224486/dashbo ...

  3. Java数字图像处理基础 - 必读

    写了很多篇关于图像处理的文章,没有一篇介绍Java 2D的图像处理API,文章讨论和提及的 API都是基于JDK6的,首先来看Java中如何组织一个图像对象BufferedImage的,如图: 一个B ...

  4. 单例(C#版)

    单例: 一个类只有一个实例.巧妙利用了编程语言的一些语法规则:构造函数private, 然后提供一个public的方法返回类的一个实例:又方法和返回的类的实例都是static类型,所以只能被类所拥有, ...

  5. c语言笔试题

    填空: 1,short int a[10]={123, 456, 789}; sizeof(a)=(       ); short int *p=&a, 则sizeof(p)=(       ...

  6. Mysql的简单使用(三)

    接上文Mysql的简单使用(二) mysql中结构相同的两个表进行合并:(注意需要两个表的结构是一样的) 有如下结构的两个表father和person. 合并的步骤为: 1.把person表和fath ...

  7. mysql root用户kill connection报ERROR 1095 (HY000): You are not owner of thread N

    今日某系统mysql root用户kill connection时报ERROR 1095 (HY000): You are not owner of thread N 按说通过root用户具有supe ...

  8. [js开源组件开发]js手机端浮层控件,并有多种弹出小提示,兼容pc端浏览器

    js dialog组件,包含alert和confirm的实现 本组件所有的资源均在github上可以查看源代码 GitHub 本dialog的组件的例子请在这里查看 demo dialog js di ...

  9. Sass学习之路(2)——Sass环境安装(windows版)

    因为本喵目前用的是window10的本子,所以这里就发windows版本的安装流程啦.(希望有朋友可以赞助我一个mac(┳_┳)): 第一步:安装ruby 因为Sass是基于ruby编写的,所以先去官 ...

  10. Vue基础理论

    一 vue的定位 (1)Vue.js是一个构建数据驱动的 web 界面的库. (2)Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. (3)Vue.js 自身不是一 ...