MySql数据库常用指令(三)MySQL 索引1

MySql数据库常用指令(三)

MySQL 索引是一种数据结构,用于加快数据库查询的速度和性能。

MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL 的检索速度。

注:文中TEST为测试所用数据库,根据实际应用修改

一、创建索引

CREATE INDEX 语句可以创建普通索引:

CREATE INDEX index_name

ON table_name (column1 ASC\|DESC, column2 ASC\|DESC, ...);

~~

注: CREATE INDEX: 用于创建普通索引的关键字。 index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。

table_name: 指定要在哪个表上创建索引。 (column1, column2, ...):

指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。 ASC和DESC(可选):

用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。

~~

sql 复制代码
mysql> CREATE INDEX idx_name ON test (name);

注:在test表的name列上创建一个普通索引idx_name

二、修改表结构(添加索引)

ALTER TABLE 命令可以在已有的表中创建索引:

ALTER TABLE table_name

ADD INDEX index_name (column1 ASC\|DESC, column2 ASC\|DESC, ...);

注: ALTER TABLE: 用于修改表结构的关键字。 table_name: 指定要修改的表的名称。

ADD INDEX:添加索引的子句。ADD INDEX用于创建普通索引

index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。

(column1, column2, ...):指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。

ASC和DESC(可选):用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。

sql 复制代码
mysql>ALTER TABLE test ADD INDEX idx_age (age);

注:在 test 表的 age 列上创建一个名为 idx_age 的普通索引。

三、创建表的时候直接指定

CREATE TABLE 语句中直接指定索引,以创建表和索引的组合:

CREATE TABLE table_name (

column1 data_type,

column2 data_type,

...,

INDEX index_name (column1 ASC\|DESC, column2 ASC\|DESC, ...)

);

CREATE TABLE: 用于创建新表的关键字。

table_name: 指定要创建的表的名称。

(column1, column2,...): 定义表的列名和数据类型。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期

INDEX:用于创建普通索引的关键字。

index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。

(column1,column2, ...): 指定要索引的表列名。可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。

ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。

sql 复制代码
mysql> CREATE TABLE test (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  INDEX idx_age (age)
);

注:在test 表的 age 列上创建了一个名为 idx_age 的普通索引。

四、删除索引的语法

  1. 使用 DROP INDEX 语句来删除索引;

    DROP INDEX index_name ON table_name;

    DROP INDEX: 用于删除索引的关键字。

    index_name: 指定要删除的索引的名称。

    ON table_name:指定要在哪个表上删除索引。

    sql 复制代码
     mysql> DROP INDEX idx_age ON test;

    注:在 test 表中删除一个名为idx_age 的普通索引。

  2. 使用ALTER TABLE 语句删除索引:

    ALTER TABLE table_name DROP INDEX index_name;

    ALTER TABLE: 用于修改表结构的关键字。 table_name: 指定要修改的表的名称。 DROP INDEX:

    用于删除索引的子句。 index_name: 指定要删除的索引的名称。

    复制代码
      sql mysql> ALTER TABLE test DROP INDEX idx_age ;

    注:在 test 表中删除一个名为idx_age 的普通索引。

五、唯一索引

CREATE UNIQUE INDEX 语句创建唯一索引:

唯一索引确保索引中的值是唯一的,不允许有重复值。

CREATE UNIQUE INDEX index_name

ON table_name (column1 ASC\|DESC, column2 ASC\|DESC, ...);

CREATE UNIQUE INDEX: 用于创建唯一索引的关键字组合

index_name:指定要创建的唯一索引的名称。索引名称在表中必须是唯一的。

table_name: 指定要在哪个表上创建唯一索引。

(column1, column2, ...): 指定要索引的表列名。可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。

ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。

sql 复制代码
mysql> CREATE UNIQUE INDEX idx_name ON test (name);

注:在test 表的 name 列上创建一个名为 idx_name 的唯一索引

相关推荐
小二·4 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手4 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌4 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者5 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余5 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹5 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
TPBoreas6 小时前
MySQL性能优化面试全攻略
mysql·面试·性能优化
xlq223226 小时前
11.表的内外连接,索引
mysql
AllData公司负责人6 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine