MySQL 索引的使用

Posted 两掺豆腐脑丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 索引的使用相关的知识,希望对你有一定的参考价值。

mysql 索引的使用(*)
– 切换数据库

use mybingschool;
DATABASE CHANGE;

– ALER 当需要修改数据表名或者修改数据表字段时,使用到 ALTER命令。

create table testalter_tbl(
	i  int ,
	c CHAR(1),
	d CHAR(1)
)CHARSET=utf8;

– 查看创建的表结构 columns (栏、条目)

show COLUMNs FROM testalter_tbl;

– 删除表字段为i的 DROP (删除)

ALTER TABLE testalter_tbl  DROP i;

– 添加表字段i add
– alter(在后面) add命令格式:alter table 表名 add字段 类型 其他;
– FIRST 和AFTER 关键字可用于 ADD 与 MODIFY 子句,
– 如果想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
– first (第一)添加到第一个 ADD (添加)

ALTER TABLE testalter_tbl  ADD i  int first;

– add after 添加在**之后

alter table testalter_tbl ADD a VARCHAR(20) AFTER c;

ALTER TABLE testalter_tbl ADD i INT AFTER c;

– 如果需要修改字段类型及名称, 可以在ALTER命令中使用 MODIFY 或 CHANGE 子句
– MODIFY (修改)
– 把字段 c 的类型从 CHAR(1) 改为 CHAR(10)

ALTER TABLE testalter_tbl MODIFY c CHAR(10);

– CHANGE (更换改变)
– 把字段 i 从i 改为 j

ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE testalter_tbl CHANGE j j int;

– 修改表名 rename (改名)

alter table testalter_tbl rename to alter_tbl;

– 查看表结构

show COLUMNs FROM alter_tbl;

– nll空值 修改default的默认值

alter table alter_tbl modify d char(20);
alter table alter_tbl ALTER d set default '1000';
alter table alter_tbl ALTER a set default '500';

alter table alter_tbl alter a DROP DEFAULT;


– -- 索引 index
– -- MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
– -- 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
– -- 拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。
– -- 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
– -- 创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
– -- 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
– -- 上面都在说使用索引的好处,但过多的使用索引将会造成滥用。
– -- 因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。
– -- 因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
– -- 建立索引会占用磁盘空间的索引文件。

– 查看表结构

show COLUMNs FROM alter_tbl;
show COLUMNs FROM mytbl;

– 直接创建索引(基本)

-- CREATE INDEX indexName ON table_name (column_name);
create index int_suoyin on alter_tbl(j);
create index char_suoyin on alter_tbl(c);

– 添加索引(修改表结构)

-- ALTER table tableName ADD INDEX indexName(columnName);
alter table alter_tbl add index varchar_suoyin(a);

– 建表时创建索引

create table mytbl(
id int not null,
uname VARCHAR(50)  not null,
-- INDEX [indexName] (username(length))  
INDEX une_suoyin (uname(10))
)CHARSET=utf8;

– 删除索引

DROP INDEX [indexname] on table_name;
DROP INDEX une_suoyin ON mytbl; 

– 删除前,查看表结构 确定索引名

show index from alter_tbl;
drop index varchar_suoyin on alter_tbl;

– 对表呢添加索引

ALTER table alter_tbl add index (a);
alter table alter_tbl add index  d_suoyin(d);

– ALTER 命令添加主键

ALTER TABLE alter_tbl MODIFY j INT NOT NULL;

– ALTER 命令删除主键

ALTER table alter_tbl drop primary key;

– 删除主键时只需指定PRIMARY KEY,但在删除索引时,必须知道索引名。

– 查看表结构

show COLUMNS from alter_tbl;

– 查看表索引信息

 SHOW INDEX FROM alter_tbl;
--  SHOW INDEX FROM alter_tbl\\G;
 SHOW INDEX FROM mytbl;

– 查询表

select * from alter_tbl;

– MySQL 临时表

以上是关于MySQL 索引的使用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 之索引类型

Mysql索引的类型

Navicat创建MySQL数据库索引教程

Navicat创建MySQL数据库索引教程

Navicat创建MySQL数据库索引教程

Navicat创建MySQL数据库索引教程