精华内容
下载资源
问答
  • 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 1.ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。 ALTER TABLE table_name ADD INDEX ...

    在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。

    1.ALTER TABLE

    ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

    ALTER TABLE table_name ADD INDEX index_name (column_list)
    
    ALTER TABLE table_name ADD UNIQUE (column_list)
    
    ALTER TABLE table_name ADD PRIMARY KEY (column_list)
    

    其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。

    2.CREATE INDEX

    CREATE INDEX可对表增加普通索引或UNIQUE索引。

    CREATE INDEX index_name ON table_name (column_list)
    
    CREATE UNIQUE INDEX index_name ON table_name (column_list)
    

    table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

    3.索引类型

    在创建索引时,可以规定索引能否包含重复值。如果不包含,则索引应该创建为PRIMARY KEY或UNIQUE索引。对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。

    PRIMARY KEY索引和UNIQUE索引非常类似。事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。

    下面的SQL语句对students表在sid上添加PRIMARY KEY索引。

    ALTER TABLE students ADD PRIMARY KEY (sid)
    

    4. 删除索引

    可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。

    DROP INDEX index_name ON talbe_name
    
    ALTER TABLE table_name DROP INDEX index_name
    
    ALTER TABLE table_name DROP PRIMARY KEY
    

    其中,前两条语句是等价的,删除掉table_name中的索引index_name。

    第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

    如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

    5.查看索引

    mysql> show index from tblname;

    mysql> show keys from tblname;

    · Table

    表的名称。

    · Non_unique

    如果索引不能包括重复词,则为0。如果可以,则为1。

    · Key_name

    索引的名称。

    · Seq_in_index

    索引中的列序列号,从1开始。

    · Column_name

    列名称。

    · Collation

    列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。

    · Cardinality

    索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。

    · Sub_part

    如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。

    · Packed

    指示关键字如何被压缩。如果没有被压缩,则为NULL。

    · Null

    如果列含有NULL,则含有YES。如果没有,则该列含有NO。

    · Index_type

    用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。

    · Comment

    展开全文
  • MySQL:使用SQL语句删除所有索引

    千次阅读 2019-09-18 18:06:06
    该文章是我转载别人的,但是我适当的加了一些自己的东西进去和做了一些小的修改。 前言 要清空所有的索引,首先得先清空所有的外键关联,...这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行...

    该文章是我转载别人的,但是我适当的加了一些自己的东西进去和做了一些小的修改。

    前言

    要清空所有的索引,首先得先清空所有的外键关联,清空所有外键关联可以参考:

    https://www.zhengjie.me/blog/99.html

    删除所有索引

    可利用ALTER TABLEDROP INDEX语句来删除索引。这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行即可

    #拼接删除索引的语法
    SELECT CONCAT('ALTER TABLE ',i.TABLE_NAME,' DROP INDEX ',i.INDEX_NAME,' ;') 
    FROM INFORMATION_SCHEMA.STATISTICS i
    #过滤主键索引
    WHERE TABLE_SCHEMA = '库名' AND i.INDEX_NAME <> 'PRIMARY';

    查询结果如下

    这里写图片描述

    语法

    查询索引

    SELECT
         *
    FROM
         INFORMATION_SCHEMA.STATISTICS
    WHERE
         TABLE_SCHEMA = '库名';
    #或者使用查看表的索引
    (1)show index from tblname;
    (2)show keys from tblname;

    查询索引

    #查询索引
    
    #拼接删除索引的语法
    SELECT i.TABLE_NAME, i.COLUMN_NAME, i.INDEX_NAME, 
    CONCAT('ALTER TABLE ',i.TABLE_NAME,' DROP INDEX ',i.INDEX_NAME,' ;') 
    FROM INFORMATION_SCHEMA.STATISTICS i
    #过滤主键索引
    WHERE TABLE_SCHEMA = 'myemployees' AND i.INDEX_NAME <> 'PRIMARY';
    

    创建索引

    执行CREATE TABLE语句可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。

    ALTER TABLE

    ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

    (1.)ALTER TABLE table_name ADD INDEX index_name (column_list)
    (2.)ALTER TABLE table_name ADD UNIQUE (column_list)
    (3.)ALTER TABLE table_name ADD PRIMARY KEY (column_list)

    其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个列,因此ALTER TABLE可以同时创建多个索引。

    CREATE INDEX

    CREATE INDEX可对表增加普通索引或UNIQUE索引。

    (1)CREATE INDEX index_name ON table_name (column_list)
    (2)CREATE UNIQUE INDEX index_name ON table_name (column_list)

    table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

    删除索引

    (1)DROP INDEX index_name ON talbe_name
    (2)ALTER TABLE table_name DROP INDEX index_name
    (3)ALTER TABLE table_name DROP PRIMARY KEY

    其中,前两条语句是等价的,删除掉table_name中的索引index_name。
    第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
    如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

    原地址:https://www.zhengjie.me/blog/100.html

    展开全文
  • Mysql中使用sql语句索引

    千次阅读 2019-02-27 11:38:16
    Mysql中使用sql语句对已有的表加索引: ALTER TABLE 表名 ADD index 索引名 ( `列名` ); 如果此文章有帮助到您,还请施舍施舍

    Mysql中使用sql语句对已有的表加索引:

    ALTER TABLE 表名 ADD index 索引名 ( `列名` );

    如果此文章有帮助到您,还请施舍施舍

    展开全文
  • mysql怎么添加索引sql语句

    万次阅读 2018-05-31 16:47:02
    工具:mysql数据库创建一个user的表里边的字段1.普通索引 添加INDEXALTER TABLE `table_name` ADD INDEX index_name ( `column` )下面演示下给user表的name字段添加一个索引2.主键索引 添加PRIMARY KEYALTER TABLE `...
    工具:mysql数据库创建一个user的表里边的字段
    1.普通索引 添加INDEX
    ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

    下面演示下给user表的name字段添加一个索引

    2.主键索引 添加PRIMARY KEY
    ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

    3.唯一索引 添加UNIQUE
    ALTER TABLE `table_name` ADD UNIQUE ( `column` )

    4.全文索引 添加FULLTEXT
    ALTER TABLE `table_name` ADD FULLTEXT ( `column`)

    5.如何添加多列索引
    ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
    展开全文
  • 主要介绍了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法,总结分析了MySQL建表、编码设置、字段添加、索引操作所涉及的SQL语句,需要的朋友可以参考下
  • create unique index customer_info_index1 on customer_info(number);--创建唯一索引create index customer_info_index2 on customer_info(name);--创建索引drop index user_... --删除索引mysql查询表结构的语句sh
  • MySQL建立索引SQL语句

    千次阅读 2019-12-26 15:11:25
    1. 主键索引:创建表时自动创建 { 聚集索引:一个表中只有一个聚集索引 } 2. 唯一索引:CREATE UNIQUE INDEX unique_index_warn[索引名称]ON cas_alarm[表名](warn_id[列名]) 3. 普通索引:CREATE INDEX index_...
  • SQL CREATE INDEX (mysql 创建索引语句 ** 1.创建普通索引 SQL CREATE INDEX 语法 在表上创建一个简单的索引。允许使用重复的值: CREATE INDEX index_name ON table_name (column_name) 注释:“column_name” ...
  • MySQL中特别实用的几种SQL语句送给大家

    万次阅读 多人点赞 2020-06-11 17:23:49
    在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。 目录 实用的SQL 1.插入或替换 2....
  • 删除MySQL表的SQL语句-DROP-TABLE-简介

    千次阅读 2019-12-10 21:11:15
    辨析: 在SQL中, DROP 用于删除表结构等信息, 属于数据格式定义 DDL的范畴; 而 DELETE 用于删除数据,属于数据内容操作 DML 的范畴。 官方给出的 DROP 关键字删除表结构的语法如下: DROP [TEMPORARY] TABLE [IF ...
  • MySQL数据库:SQL语句

    千次阅读 2016-10-27 15:01:47
    MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1、SQL概述1.1 什么是SQLSQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以...
  • MySQL数据库:SQL语句的执行过程

    万次阅读 多人点赞 2021-02-22 03:59:20
    我们的系统在和 MySQL 数据库进行通信前,需要先和数据库建立连接,而这个功能就是由MySQL驱动底层帮我们完成的,建立完连接之后,我们只需要发送 SQL 语句就可以执行 CRUD 了。如下图所示: 一次 SQL 请求就会...
  • 7天带你玩转Mysql数据库之SQL语句

    万人学习 2019-04-30 11:07:26
    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 七年SQL语句编写经验。满满的干货! 在网上找了好多SQL数据库的教程,但你还会面临这样的问题: 1. 自己写了SQL却不知道对不对。 2. 在上线后...
  • MySQL:优化SQL语句的步骤

    万次阅读 2017-11-01 14:49:28
    本文主要介绍了MySQL性能分析以及explain的使用,包括:组合索引、慢查询分析、MYISAM和INNODB的锁定、MYSQL的事务配置项等索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300...
  • MySQL常用SQL语句大全

    万次阅读 多人点赞 2017-12-21 19:22:28
    MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQLMySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是...
  • 1、修改表名:  rename table 旧表名 to 新表名; 2、修改字段类型: ... alter table 表名 modify column...mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )  
  • MySQL通过SQL语句查看表的索引

    千次阅读 2019-01-03 21:16:00
    通过命令查看 show index from tbname;...MySQL通过SQL语句查看表的索引: 1、查看数据库所有索引 SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '数据库名'; 2、查看...
  • MySQL数据库:sql语句的执行

    千次阅读 2018-10-24 16:50:12
    MySQL mysql-8.0.12-win64bit Navicat Premium navicat120_premium_cs_x64 系统 Windows7-64bit-旗舰版 时间 2018/10/24 关联文章 MySQL数据库安装配置   1. 利用Navicat Premium操作...
  • MySQL优化书写高质量sql语句

    万次阅读 多人点赞 2021-03-22 22:21:49
    1. 查询SQL尽量不要使用全查 select *,而是 select + 具体字段。 反例: select * from student; 正例: select id,name, age from student; ...预编译语句可以重复使用计划,减少SQL编译所需要
  • MySQL中一条SQL语句的执行过程

    万次阅读 多人点赞 2018-11-24 18:35:01
    2.建立连接后客户端发送一条语句mysql收到该语句后,通过命令分发器判断其是否是一条select语句,如果是,在开启查询缓存的情况下,先在查询缓存中查找该SQL是否完全匹配,如果完全匹配,验证当前用户是否具备...
  • Effective MySQLSQL语句最优化

    热门讨论 2012-12-10 14:42:12
    ● 创建MySQL索引来改进查询性能 ● 掌握MySQL的查询执行计划 ● 找出影响查询执行和性能的关键配置变量 ● 用SQL语句优化的生命周期来识别、确 认、分析然后优化SQL语句,并检查优 化的结果 ● 学习使用...
  • 1 show profiles; 2 查看profiling 是否是on状态; 3 如果是off,则 set profiling = 1; 4 执行自己的sql语句; 5 show profiles;就可以查到sql语句的执行时间;
  • 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( ... id INT NOT NULL PRIMARY KEY AUTO_INCREMENT...mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 196,267
精华内容 78,506
关键字:

mysql删除索引的sql语句

mysql 订阅