索引简介

2021/4/28 10:55:13

本文主要是介绍索引简介,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

索引

定义:索引是数据库系统内部自动维护的隐藏的"数据表",可以极大的加快数据的查找速度。这个隐藏的数据表,其中的数据是自动排序好的,其查找速度就是建立在这个基础上的。

通常,所谓索引,其实是指一个表的某个或者某些字段作为索引数据字段就可以了,形式为 : 

索引类型(要建立索引的字段名)

索引的类型主要分为以下几种

普通索引: 形式 : key(字段名)    加快查询速度

唯一索引: 形式 : unique key(字段名)    字段值必须唯一(可为空)

主键索引: 形式 : primary key(字段名)   字段值必须唯一(不可为空)  区分每一行数据

全文索引: 形式 : fulltext(字段名)   

外键索引: 形式 : foreign key(字段名) reference 其他表(对应的字段名)   

演示

create table test(

id int(11),

name varchar(20),

email varchar(20),

age tinyint(5),

primary key(id),

unique key(name),

key(email)

)

外键:

设定的某个表的某个字段,他设定的值,必须是在另外一个表的另外一个字段中存在

示例

create table class(

id int(11) auto_increment,

name varchar(30),

primary key(id)

)


create table student(

id int(11) auto_increment,

name varchar(30),

class_id int(11),

primary key(id),

foreign key(class_id) references class(id)

)


在studnet表中插入(修改)值的时候,所插入(修改)的class_id值,必须是class表中的id值,存在的值,否则会报错

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test`.`student`, CONSTRAINT `student_ibfk_1` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`))

关于索引的sql语句:

CREATE INDEX index_name

ON table_name (column_name)

CREATE INDEX 实例

本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:

CREATE INDEX PersonIndex

ON Person (LastName) 

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX PersonIndex

ON Person (LastName DESC) 

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PersonIndex

ON Person (LastName, FirstName)

DROP INDEX index_name ON table_name

ALTER TABLE table_name

ALTER COLUMN column_name datatype

ALTER TABLE table_name 

DROP COLUMN column_name





这篇关于索引简介的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程