精华内容
下载资源
问答
  • 在执行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

    展开全文
  • SQL Server SQL语句删除索引

    万次阅读 2018-12-19 21:29:00
    当删除索引提示超时时候,可以使用SQL语句删除索引,可以避免删除索引超时问题。 use [数据库名] drop index [索引名称] on [表名]   转载于:https://my.oschina.net/TOW/blog/2990678

    当删除索引提示超时时候,可以使用SQL语句删除索引,可以避免删除索引超时问题。

    use [数据库名]
    
    drop index [索引名称] on [表名]

     

    转载于:https://my.oschina.net/TOW/blog/2990678

    展开全文
  • 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

    展开全文
  • 1、建立表索引 ...2、删除索引 drop index 索引名 on 表名; 3、查看表索引 select * from sysibm.sysindexes where tbname='表名'; ---表名区分大小写 或者在后台可以用: describe indexes ...

    1、建立表索引

        create index 索引名 on 表名(列名,列名);

    2、删除表索引

        drop index 索引名 on 表名;

    3、查看表索引

        select * from sysibm.sysindexes where tbname='表名';   ---表名区分大小写

        或者在后台可以用:

        describe indexes for table 表名;

    4、查看SQL语句执行计划

        db2expln -d 库名 -f test.sql -t -g -z ";" > test.exp

    5、查看SQL语句索引优化建议

        db2advis -d 库名 -i test.sql

    转载于:https://www.cnblogs.com/yinguojin/p/8985824.html

    展开全文
  • Oracle创建索引sql语句

    千次阅读 2020-05-21 10:06:04
    CREATE INDEX POLICYIMPART_INDEX ON ROOTE.W_POLICYIMPART( POLICYID ASC, IMPARTCODE ASC, CUSTOMERTYPE ASC )POLICYIMPART_INDEX索引名称 ROOTE.W_POLICYIMPART表名
  • 创建索引sql 语句

    千次阅读 2020-04-21 12:38:11
    1、创建表的同时 指定 create table t1( id int not null, name char(30) not null, unique index UniqIdx...使用ALTER TABLE 语句创建索引 1.执行语句 alter table book add index BkName(bookname(30)) 2...
  • mysql怎么添加索引sql语句

    万次阅读 2018-05-31 16:47:02
    普通索引 添加INDEXALTER TABLE `table_name` ADD INDEX index_name ( `column` )下面演示下给user表的name字段添加一个索引2.主键索引 添加PRIMARY KEYALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )3...
  • drop index表名.索引名称
  • 常用SQL语句大全

    2019-03-04 16:25:33
    软件介绍 常用SQL语句大全 语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 ...Tags: 常用SQL语句大全 SQL语句大全 SQL
  • sql语句创建索引

    千次阅读 2021-04-02 00:37:27
    create index [index_mode] on [cn_name]([car_mode]); index_mode自定义索引名 cn_name表名 car_mode列名
  • 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_...
  • oracle查看表索引sql语句

    千次阅读 2020-10-22 16:46:50
    select distinct table_name, index_name, listagg(column_name, ',') WITHIN GROUP(ORDER BY column_position asc) over(PARTITION BY index_name) column_names from user_ind_columns where table_name ...
  • Mysql中使用sql语句索引

    千次阅读 2019-02-27 11:38:16
    Mysql中使用sql语句对已有的表加索引: ALTER TABLE 表名 ADD index 索引名 ( `列名` ); 如果此文章有帮助到您,还请施舍施舍
  • create unique index customer_info_index1 on customer_info(number);--创建唯一索引create index customer_info_index2 on customer_info(name);--创建索引drop index user_... --删除索引mysql查询表结构的语句sh
  • ---------添加索引方法--------- 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column...
  • pgsql创建、查询、删除索引
  • 1.SQL 创建索引 使用CREATE 语句创建索引 CREATE INDEX index_name ON table_name(column_name,column_name) include(score) ---普通索引 CREATE UNIQUE INDEX index_name ON table_name (column_name) ;---...
  • Oracle创建索引、视图SQL语句

    千次阅读 2020-05-19 12:23:36
    2、删除索引 drop index 索引对象名; 例: drop index userid; 二、视图(并不是真实存在的一张表) 1、创建视图 create view 视图名(学号,姓名,科目,成绩) as select 对应在表格中的字段名 from 涉
  • SQL语句(五) 索引建立

    万次阅读 2018-07-16 16:59:42
    1.创建唯一性索引 SET STATISTICS TIME ON SELECT * FROM customer WHERE name ='阿爆' ; SET STATISTICS TIME OFF CREATE UNIQUE INDEX customer_name ON customer(name);--在customer表上的name列创建唯一性索引 ...
  • sql语句 创建 查询 索引语句

    千次阅读 2019-09-20 14:38:50
    -- 创建Code字段的索引 名称叫:IX_CouponsInfoDN_Code USE ActivityDB GO IF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_CouponsInfoDN_Code')--检测是否已经存在IX_TEST_TNAME索引 DROP INDEX ...
  • sql语句中指定使用某个索引

    千次阅读 2019-03-05 18:15:12
    语法:select * from table_name use index(index_name1,index_name2) where ...... ...注意:MySQL优化器中,一个主要的目标是只要可能就是用索引,而且使用条件最严格的索引来尽可能多、尽可能...
  • sql 删除唯一索引unique

    千次阅读 2020-09-24 10:46:13
    mysql 删除唯一约束unique 比如,表bank中的字段user_id有约束unique(唯一索引),但是我们现在不需要这个约束了,想删除user_id的unique,下面的sql语句可以实现: alter table bank drop index user_id;
  • sql语句实现简单查询以及索引查询

    万次阅读 2017-10-30 21:03:30
     简单查询:是根据SQL语句中的条件进行查询,采用的手法是遍历查询,选出符合条件的记录;  索引查询如同书的目录一样,可以直接定位查询的位置,加快查询的速度;  二、SQL语句实现  简单查询:  select ...
  • sql语句添加、修改字段以及索引

    千次阅读 2019-06-28 14:00:40
    sql语句添加、修改字段以及索引(mysql) 在工作中,我们经常会遇到数据库表字段不够,修改扩展或者修改。 -- 修改字段名 alter table TABLE_NAME rename column A to B; -- 修改字段类型 alter table TABLE_NAME ...
  • 数据库索引:索引有单列索引复合索引之说如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。建设原则: 1、索引应该经常建在Where 子句...
  • SQL创建索引删除索引

    千次阅读 2020-10-30 19:50:29
    SQL创建索引删除索引 使用CREATE 语句创建索引 CREATE INDEX index_name ON table_name(column_name,column_name) include(score) 普通索引 CREATE UNIQUE INDEX index_name ON table_name (column_name) ; 非空...
  • SQL server 语句创建索引和查看索引

    千次阅读 2020-10-30 20:46:02
    //查看表中建立的所有索引 use库名 exec sp_helpindex表名 SQL语句创建索引设置倒序 create index new_index on表名 (字段 desc)// 创建索引 名称 在哪个列哪个字段倒序
  • alter table DC_APP_NOTICE add constraint FK_APP_NOTICE_USERID foreign key(id) references DC_USER(id) drop INDEX idx_DC_ALARM_lookup ON DC_ALARM --删除索引 CREATE NONCLUSTERED INDEX idx_DC_ALARM_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 383,185
精华内容 153,274
关键字:

删除索引的sql语句