MySql数据库常用指令(四)MySQL 索引2
MySQL 索引是一种数据结构,用于加快数据库查询的速度和性能。
MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL 的检索速度。
注:文中TEST为测试所用数据库,根据实际应用修改
一、唯一索引 修改表结构
ALTER TABLE 命令创建唯一索引。
ALTER TABLE命令修改已经存在的表结构,包括添加新的索引
ALTER table mytable ADD UNIQUE [indexName] (columnName(length))
ALTER TABLE:
用于修改表结构的关键字。
table_name:
指定要修改的表的名称。
ADD CONSTRAINT:
这是用于添加约束(包括唯一索引)的关键字。
index_name:
指定要创建的唯一索引的名称。约束名称在表中必须是唯一的。
UNIQUE (column1, column2, …):
指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
ASC和DESC(可选):
用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
mysql> ALTER TABLE test
ADD CONSTRAINT idx_email UNIQUE (email);
注: test 表的 email 列上创建一个名为 idx_email 的唯一索引。
二、创建表的时候直接指定唯一索引
CREATE TABLE 语句中创建唯一索引:
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
…,
CONSTRAINT index_name UNIQUE (column1 [ASC|DESC], column2 [ASC|DESC], …)
);
CREATE TABLE:
用于创建新表的关键字。
table_name:
指定要创建的表的名称。
(column1, column2, …):
定义表的列名和数据类型。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
CONSTRAINT:
用于添加约束的关键字。
index_name:
指定要创建的唯一索引的名称。约束名称在表中必须是唯一的。
UNIQUE (column1, column2, …):
指定要索引的表列名。
mysql> CREATE TABLE test (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100) UNIQUE
);
注:email 列后面加上了 UNIQUE 关键字,因此被定义为唯一索引
三、使用ALTER 命令添加和删除索引
四种方式:
- ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):
该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。 - ALTER TABLE tbl_name ADD UNIQUEindex_name (column_list):
这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。 - ALTER TABLE tbl_name ADD INDEX index_name (column_list):
添加普通索引,索引值可出现多次。 - ALTER TABLE tbl_name ADD FULLTEXT index_name
(column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
mysql> ALTER TABLE test_tbl ADD INDEX (c);
mysql> ALTER TABLE test_tbl DROP INDEX c;
注:在表中增加索引和删除索引
四、使用 ALTER 命令添加和删除主键
drop 命令删除数据库;
drop database <数据库名>;
mysql> drop database TEST;
五、创建数据表
主键作用于列上(可以一个列或多个列联合主键),添加主键索引时,你需要确保该主键默认不为空(NOT NULL);
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
注:增加主键
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
注1:删除主键
注2:删除主键时只需指定PRIMARY KEY,但在删除索引时,你必须知道索引名。
六、显示索引信息
SHOW INDEX 命令列出表中的相关的索引信息,
添加 \G 来格式化输出信息。
SHOW INDEX: 用于显示索引信息的关键字。 FROM table_name: 指定要查看索引信息的表的名称。 \G:
格式化输出信息。
mysql> SHOW INDEX FROM table_name\G
注:SHOW INDEX 语句