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 命令添加和删除索引

四种方式:

  1. ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):
    该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
  2. ALTER TABLE tbl_name ADD UNIQUEindex_name (column_list):
    这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
  3. ALTER TABLE tbl_name ADD INDEX index_name (column_list):
    添加普通索引,索引值可出现多次。
  4. 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 语句

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西又X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值