索引简介
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
这篇关于索引简介的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略