iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL(73)MySQL创建索引(CREATE INDEX)
  • 941
分享到

MySQL(73)MySQL创建索引(CREATE INDEX)

数据库sqlmysql 2023-09-07 20:09:58 941人浏览 安东尼
摘要

Mysql创建索引(CREATE INDEX) 创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 mysql 数据库的高效运行来说是很重要的。 基本语法 Mysql 提供了三种创建索引的方法: 1) 使用

Mysql创建索引(CREATE INDEX)

创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 mysql 数据库的高效运行来说是很重要的。

基本语法

Mysql 提供了三种创建索引的方法:

1) 使用 CREATE INDEX 语句

可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语句不能创建主键。

语法格式:

CREATE <索引名> ON <表名> (<列名> [<长度>] [ ASC | DESC])

语法说明如下:

  • <索引名>:指定索引名。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的。
  • <表名>:指定要创建索引的表名。
  • <列名>:指定要创建索引的列名。通常可以考虑将查询语句中在 JOIN 子句和 WHERE 子句里经常出现的列作为索引列。
  • <长度>:可选项。指定使用列前的 length 个字符来创建索引。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间。在某些情况下,只能对列的前缀进行索引。索引列的长度有一个最大上限 255 个字节(MyISAM 和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限,就只能用列的前缀进行索引。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引。
  • ASC|DESC:可选项。

ASC指定索引按照升序来排列,

DESC指定索引按照降序来排列,默认为 ASC。

2) 使用 CREATE TABLE 语句

索引也可以在创建表(CREATE TABLE)的同时创建。

在 CREATE TABLE 语句中添加以下语句。语法格式:

CONSTRaiNT PRIMARY KEY [索引类型] (<列名>,…)

在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的主键。语法格式:

KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)

在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的索引。语法格式:

UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的唯一性索引。语法格式:

FOREIGN KEY <索引名> <列名>

在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的外键。

在使用 CREATE TABLE 语句定义列选项的时候,可以通过直接在某个列定义后面添加 PRIMARY KEY 的方式创建主键。而当主键是由多个列组成的多列索引时,则不能使用这种方法,只能用在语句的最后加上一个 PRIMARY KRY(,…) 子句的方式来实现。

3) 使用 ALTER TABLE 语句

CREATE INDEX 语句可以在一个已有的表上创建索引,ALTER TABLE 语句也可以在一个已有的表上创建索引。在使用 ALTER TABLE 语句修改表的同时,可以向已有的表添加索引。具体的做法是在 ALTER TABLE 语句中添加以下语法成分的某一项或几项。语法格式:

ADD INDEX [<索引名>] [<索引类型>] (<列名>,…)

在 ALTER TABLE 语句中添加此语法成分,表示在修改表的同时为该表添加索引。语法格式:

ADD PRIMARY KEY [<索引类型>] (<列名>,…)

在 ALTER TABLE 语句中添加此语法成分,表示在修改表的同时为该表添加主键。语法格式:

ADD UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

在 ALTER TABLE 语句中添加此语法成分,表示在修改表的同时为该表添加唯一性索引。语法格式:

ADD FOREIGN KEY [<索引名>] (<列名>,…)

在 ALTER TABLE 语句中添加此语法成分,表示在修改表的同时为该表添加外键。

创建普通索引

创建普通索引时,通常使用 INDEX 关键字。

例 1创建一个表 tb_stu_info,在该表的 height 字段创建普通索引。输入的 SQL 语句和执行过程如下所示。

mysql> CREATE TABLE tb_stu_info    -> (    -> id INT NOT NULL,    -> name CHAR(45) DEFAULT NULL,    -> dept_id INT DEFAULT NULL,    -> age INT DEFAULT NULL,    -> height INT DEFAULT NULL,    -> INDEX(height)    -> );Query OK,0 rows affected (0.40 sec)mysql> SHOW CREATE TABLE tb_stu_info\G*************************** 1. row ***************************       Table: tb_stu_infoCreate Table: CREATE TABLE `tb_stu_info` (  `id` int(11) NOT NULL,  `name` char(45) DEFAULT NULL,  `dept_id` int(11) DEFAULT NULL,  `age` int(11) DEFAULT NULL,  `height` int(11) DEFAULT NULL,  KEY `height` (`height`)) ENGINE=InnoDB DEFAULT CHARSET=gb23121 row in set (0.01 sec)

创建唯一索引

创建唯一索引,通常使用 UNIQUE 参数。

例 2创建一个表 tb_stu_info2,在该表的 id 字段上使用 UNIQUE 关键字创建唯一索引。输入的 SQL 语句和执行过程如下所示。

mysql> CREATE TABLE tb_stu_info2    -> (    -> id INT NOT NULL,    -> name CHAR(45) DEFAULT NULL,    -> dept_id INT DEFAULT NULL,    -> age INT DEFAULT NULL,    -> height INT DEFAULT NULL,    -> UNIQUE INDEX(height)    -> );Query OK,0 rows affected (0.40 sec)mysql> SHOW CREATE TABLE tb_stu_info2\G*************************** 1. row ***************************       Table: tb_stu_info2Create Table: CREATE TABLE `tb_stu_info2` (  `id` int(11) NOT NULL,  `name` char(45) DEFAULT NULL,  `dept_id` int(11) DEFAULT NULL,  `age` int(11) DEFAULT NULL,  `height` int(11) DEFAULT NULL,  UNIQUE KEY `height` (`height`)) ENGINE=InnoDB DEFAULT CHARSET=gb23121 row in set (0.00 sec)

来源地址:https://blog.csdn.net/m0_54144956/article/details/131259591

您可能感兴趣的文档:

--结束END--

本文标题: MySQL(73)MySQL创建索引(CREATE INDEX)

本文链接: https://www.lsjlt.com/news/398895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL(73)MySQL创建索引(CREATE INDEX)
    MySQL创建索引(CREATE INDEX) 创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 MySQL 数据库的高效运行来说是很重要的。 基本语法 MySQL 提供了三种创建索引的方法: 1) 使用 ...
    99+
    2023-09-07
    数据库 sql mysql
  • elasticsearch索引创建create index集群matedata更新
    目录创建索引更新集群index matedata首先创建index的create方法从indice中获取对应的IndexService总结创建索引更新集群index matedata...
    99+
    2024-04-02
  • MySQL如何管理创建CREATE表和索引
    小编给大家分享一下MySQL如何管理创建CREATE表和索引,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQL语句:   数据库   表 ...
    99+
    2024-04-02
  • elasticsearch索引的创建过程index create逻辑分析
    目录索引的创建过程materOperation方法实现clusterservice处理建立索引 修改配置总结索引的创建过程 从本篇开始,就进入了Index的核心代码部分。这里首先分析...
    99+
    2024-04-02
  • mysql创建索引
    mysql创建索引?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!分为五种索引方式:1.添加PRIMARY KEY(主键索引...
    99+
    2024-04-02
  • elasticsearch索引创建create index集群matedata更新的方法
    本文小编为大家详细介绍“elasticsearch索引创建create index集群matedata更新的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“elasticsearch索引创建create index集...
    99+
    2023-06-30
  • mysql如何创建索引
    使用CREATE INDEX创建索引语法:CREATE [UNIQUE] INDEX index_name ONtb_name (col_name [(length)] ...
    99+
    2024-04-02
  • mysql 如何创建索引
    本文将介绍mysql 如何创建索引,需要的朋友可以参考下 添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE...
    99+
    2023-09-01
    mysql 数据库 sql
  • MYSQL创建联合索引
    在创建表的时候即指定联合索引,例如 -- 如果存在表,则删除DROP TABLE IF EXISTS core_fund_shares -- 创建表CREATE TABLE `core_fund_shares` ( `fund_code`...
    99+
    2023-08-30
    mysql 数据库
  • MySQL创建组合索引
    大家都知道索引是用来优化的主要因素,对于少量数据索引的影响并不大,对于几十万或百万级别以上数据的时候,单列索引的性能也不是很理想,组合索引可以大大的减少开销。 一、创建组合索引的方法 1、sql语句: ALTER TABLE `table_...
    99+
    2023-08-31
    mysql创建组合索引 mysql组合索引
  • mysql 创建索引语句
    一、创建索引 PRIMARYKEY(主键索引) mysql > ALTERTABLE`table_name`ADDPRIMARYKEY (`column`) 2.UNIQUE(唯一索引) mysql ...
    99+
    2023-08-31
    mysql 数据库 java 面试 开发语言
  • mysql中如何创建索引
    这篇文章主要介绍mysql中如何创建索引,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。1、...
    99+
    2023-06-15
  • MySQL索引如何创建和使用索引
    创建MySQL索引可以通过以下两种方式: 使用CREATE INDEX语句创建索引: CREATE INDEX index_na...
    99+
    2024-03-06
    MySQL
  • MySQL中怎么创建索引
    在MySQL中,可以使用CREATE INDEX语句来创建索引。语法如下: CREATE INDEX index_name ON t...
    99+
    2024-04-09
    MySQL
  • 创建和利用MySQL索引
    MySQL索引的创建和使用 MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。在处理大量数据时,索引是提高查询性能的关键。本文将介绍MySQL索引的创建和使用方法,并提供...
    99+
    2024-02-22
    使用 (use) mysql索引
  • MySQL索引总结(Index Type)
    目录MySQL Index1.创建和删除索引2. 索引类型MySQL Index 索引是一种数据结构,可以是B-tree、R-tree、或者hash结构。其中,B-tree适用于查找...
    99+
    2023-02-05
    MySQL Index Type MySQL索引
  • MySQL索引总结(Index Type)
    目录mysql Index1.创建和删除索引2. 索引类型MySQL Index 索引是一种数据结构,可以是B-tree、R-tree、或者hash结构。其中,B-tree适用于查找某范围内的数据,可以快速地从当前数据找...
    99+
    2023-02-05
    MySQL Index Type MySQL索引
  • 如何在MySQL中创建索引
    本篇文章为大家展示了如何在MySQL中创建索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是索引?MySQL官方对索引的定义为:索引(Index)是帮助MyS...
    99+
    2024-04-02
  • mysql怎么创建联合索引
    在MySQL中,可以使用CREATE INDEX语句来创建联合索引。 创建联合索引的语法如下: CREATE INDEX index...
    99+
    2024-02-29
    mysql
  • mysql覆盖索引如何创建
    要创建一个覆盖索引,在创建索引时需要同时包含需要查询的列和查询的列。例如,假设我们有一个表包含列A、B、C,我们想要查询A和B列,那...
    99+
    2024-03-15
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作