首页 > 数据库> > |NO.Z.00060|——————————|BigDataEnd|——|Java&MySQL索引/存储过程/触发器.V01|-------------------------|MySQL.v01|索
|NO.Z.00060|——————————|BigDataEnd|——|Java&MySQL索引/存储过程/触发器.V01|-------------------------|MySQL.v01|索
作者:互联网
[BigDataJava:Java&MySQL索引/存储过程/触发器.V01] [BigDataJava.MySQL基础][|第二阶段|模块一|——|章节四|mysql基础|mysql索引/存储过程/触发器|索引的介绍|]
一、索引的介绍
### --- 什么是索引
——> 在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,
——> 可以令MySQL的查询和运行更加高效。
——> 如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,
——> 那么没有设计和使用索引的MySQL就是一个人力三轮车。
——> 拿汉语字典的目录页(索引)打比方,
——> 我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字
——> MySql将一个表的索引都保存在同一个索引文件中, 如果对中数据进行增删改操作,
——> MySql都会自动的更新索引
二、常见索引分类索引名称 | 说明 |
主键索引 (primarykey) | 主键是一种唯一性索引,每个表只能有一个主键, 用于标识数据表中的每一条记录 |
唯一索引 (unique) | 唯一索引指的是 索引列的所有值都只能出现一次, 必须唯一. |
普通索引 (index) | 最常见的索引,作用就是 加快对数据的访问速度 |
三、主键索引
### --- 主键索引 (PRIMARY KEY)
——> 特点: 主键是一种唯一性索引,每个表只能有一个主键,用于标识数据表中的某一条记录。
——> 一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。
### --- 创建db4数据库
CREATE DATABASE db4 CHARACTER SET utf8;
### --- 创建 demo01表
CREATE TABLE demo01(
did INT,
dname VARCHAR(20),
hobby VARCHAR(30)
);
### --- 语法格式
——> 创建表的时候直接添加主键索引 (最常用)
CREATE TABLE 表名(
-- 添加主键 (主键是唯一性索引,不能为null,不能重复,)
字段名 类型 PRIMARY KEY,
);
——> 修改表结构 添加主键索引
ALTER TABLE 表名 ADD PRIMARY KEY ( 列名 )
### --- 为demo1 表添加主键索引
ALTER TABLE demo01 ADD PRIMARY KEY (did);
四、唯一索引(UNIQUE)
### --- 唯一索引
——> 特点: 索引列的所有值都只能出现一次, 必须唯一.
——> 唯一索引可以保证数据记录的唯一性。事实上,在许多场合,
——> 人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
### --- 语法格式
——> 创建表的时候直接添加主键索引
CREATE TABLE 表名(
列名 类型(长度),
-- 添加唯一索引
UNIQUE [索引名称] (列名)
);
——> 使用create语句创建: 在已有的表上创建索引
create unique index 索引名 on 表名(列名(长度))
——> 修改表结构添加索引
ALTER TABLE 表名 ADD UNIQUE ( 列名 )
### --- 为 hobby字段添加唯一索引
create unique index ind_hobby on demo01(hobby)
### --- 向表中插入数据
INSERT INTO demo01 VALUES(1,'张三','DBJ');
——> 报错Duplicate entry 'DBJ' for key 'hobby'
——> 唯一索引保证了数据的唯一性,索引的效率也提升了
INSERT INTO demo01 VALUES(2,'李四','DBJ');
四、普通索引 (INDEX)### --- 普通索引
——> 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
——> 因此,应该只为那些最经常出现在查询条件(WHERE column=)
——> 或排序条件(ORDERBY column)中的数据列创建索引。
### --- 语法格式
——> 使用create index 语句创建: 在已有的表上创建索引
create index 索引名 on 表名(列名[长度])
——> 修改表结构添加索引
ALTER TABLE 表名 ADD INDEX 索引名 (列名)
### --- 给 dname字段添加索引
~~~ # 给dname字段添加索引
alter table demo01 add index dname_indx(dname);
五、删除索引
### --- 删除索引
——> 由于索引会占用一定的磁盘空间,因此,为了避免影响数据库的性能,
——> 应该及时删除不再使用的索引
### --- 语法格式
ALTER TABLE table_name DROP INDEX index_name;
### --- 删除 demo01 表中名为 dname_indx 的普通索引。
ALTER TABLE demo01 DROP INDEX dname_indx;
六、sql语句### --- sql语句
~~~ # 创建db4数据库
CREATE DATABASE db4 CHARACTER SET utf8;
~~~ # 创建demo01表
CREATE TABLE demo01(
did INT,
dname VARCHAR(20),
hobby VARCHAR(30)
);
~~~ # 为demo01表添加主键索引
ALTER TABLE demo01 ADD PRIMARY KEY (did);
~~~ # 为 hobby字段添加唯一索引
CREATE UNIQUE INDEX ind_hobby ON demo01(hobby)
~~~ # 向表中插入数据
INSERT INTO demo01 VALUES(1,'张三','DBJ');
~~~ # 报错Duplicate entry 'DBJ' for key 'hobby'
~~~ # 唯一索引保证了数据的唯一性,索引的效率也提升了
INSERT INTO demo01 VALUES(2,'李四','DBJ');
~~~ # 给demo字段添加索引
ALTER TABLE demo01 ADD INDEX dname_indx(dname);
~~~ # 删除 demo01 表中名为 dname_indx 的普通索引。
ALTER TABLE demo01 DROP INDEX dname_indx;
### --- 索引
/*
索引概念
我们可以通过对数据表中的字段创建索引 来提高查询速度
常见的索引的分类
主键索引 (primary key) 主键是一个唯一性的索引 每个表中只能有一个主键
唯一索引 (unique) 索引列的所有数据只能出现一次,必须是唯一
普通索引 (index) 最常见的索引 作用就是提高对数据的访问速度
表对应的索引被保存在一个索引文件中, 如果对数据进行增删改操作,那么mysql就需要对索引进行更新
*/
/*
主键索引的创建
1.创建表的时候 直接添加主键
2.创建表之后 添加索引 使用 DDL
*/
-- 为demo01表添加 主键索引
ALTER TABLE demo01 ADD PRIMARY KEY (did);
/*
唯一索引的创建
create unique index 索引名 on 表名(列名(长度))
*/
-- 为demo01表的 hobby字段添加唯一索引
CREATE UNIQUE INDEX ind_hobby ON demo01(hobby);
-- 添加唯一索引的列,列的所有值都只能出现一次
INSERT INTO demo01 VALUES(1,'tom','篮球');
-- Duplicate entry '篮球' for key 'ind_hobby'
-- 唯一索引保证了数据的唯一性, 同时也提升了查询效率
INSERT INTO demo01 VALUES(2,'jack','篮球');
/*
普通索引的创建
1.create index 索引名 on 表名(列名[长度])
2.ALTER TABLE 表名 ADD INDEX 索引名 (列名)
*/
-- 为 demo01表中的 dname字段添加普通索引
ALTER TABLE demo01 ADD INDEX ind_dname(dname);
/*
删除索引
ALTER TABLE 表名 DROP INDEX 索引名;
*/
-- 删除dname字段上的索引
ALTER TABLE demo01 DROP INDEX ind_dname;
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
来自为知笔记(Wiz)
标签:Java,---,索引,demo01,MySQL,TABLE,主键,### 来源: https://www.cnblogs.com/yanqivip/p/16102138.html