ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

|NO.Z.00060|——————————|BigDataEnd|——|Java&MySQL索引/存储过程/触发器.V01|-------------------------|MySQL.v01|索

2022-04-05 14:03:59  阅读:159  来源: 互联网

标签:Java --- 索引 demo01 MySQL TABLE 主键 ###




[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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有