数据库 - 索引

索引

索引

  • 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。
  • 索引分单列索引,组合索引:
    • 单列索引,即一个索引只包含一个字段,一个表可以有多个单列索引。
      • 普通索引,唯一索引,主键索引,全文索引
    • 组合索引,即一个索引包含多个字段

索引:index

索引名:index _ 表名 _ 索引字段

索引字段:以哪个字段为准添加索引

普通索引

方式1:(建表之后,直接创建索引)

create index 索引名 on 表名(字段名 (length));

举例:

create index index_emp_empno on emp(empno);
  • length:如果是blob和text类型的话, 需要指定长度

方式2:(修改表的结构)

alter table 表名 add index 索引名(字段名);

举例:

alter table emp add index index_emp_ename(ename);

方式3:建表的时候一起创建

create table 表名(
    字段1 类型(长度),
    ...
    index 索引名(字段1(长度))
)

举例:

create table test(
    name varchar(20),
    index index_test_name(name(20))
);

唯一索引

索引列(索引字段)的值必须的唯一的,但允许有空值。如果是组合索引,则字段值的组合必须唯一。

方式1:(建表之后,直接创建索引)

create unique index 索引名 on 表名(字段名);
举例:
create unique index index_emp_empno on emp(empno)

方式2:(修改表的结构)

alter table 表名 add unique index 索引名(字段名);
举例:
alter table emp add unique index index_emp_empno(empno);

方式3:建表的时候一起创建

create table 表名(
    字段1 类型(长度),
    ...
    unique index 索引名(字段1(长度))
)
举例:
create table test(
    name varchar(20),
    unique index index_test_name(name(20))
);

组合索引

方式1:(建表之后,直接创建索引)

create  index 索引名 on 表名(字段1,字段2,..);
举例:
create  index index_emp_empno_ename on emp(empno,ename)

方式2:(修改表的结构)

alter table 表名 add  index 索引名(字段1,字段2....);
举例:
alter table emp add  index index_emp_empno_ename(empno,ename);

方式3:建表的时候一起创建

create table 表名(
    字段1 类型(长度),
    ...
    index 索引名(字段1,字段2..)
)
举例:
create table test(
    name varchar(20),
    index index_test_id_name(id,name(20))
);

全文索引

  • 主要用来查询文中的关键字,而不是直接与索引中的值相比较的。

  • fulltext索引跟其他索引大不相同,它更像一个搜索引擎,而不是简单的where语句的参数匹配。

  • fulltext索引配合 match against 操作使用,而不是一般的where

  • 它可以在create table,alter table, create index使用,不过目前只有char,varchar,text类型的列上可以创建全文索引

方式1:(建表之后,直接创建索引)

create fulltext index 索引名 on 表名(字段1);
举例:
create fulltext index index_emp_empno on emp(empno)

方式2:(修改表的结构)

alter table 表名 add fulltext index 索引名(字段1);
举例:
alter table emp add fulltext index index_emp_empno(empno);

方式3:建表的时候一起创建

create table 表名(
    字段1 类型(长度),
    ...
    fulltext(字段1)
)
举例:
create table test(
    name varchar(20),
    fulltext(name)
);

主键索引

  • 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引

方式1:创建表格后添加主键索引

ALTER TABLE 表名 ADD PRIMARY KEY(字段名)

举例:
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

方式2:创建表格时添加主键索引

create table 表名(
    字段1 类型(长度),
    ...
    PRIMARY KEY(字段名)
)

你可能感兴趣的:(数据库 - 索引)