PR

【SQL】DROP INDEX(インデックスの削除)を1分でわかりやすく解説

Database

DROP INDEX はインデックスを削除するSQL文です。

-- MySQLなどの場合
DROP INDEX インデックス名 ON テーブル名; 

-- Oracle、PostgreSQLなどの場合
DROP INDEX インデックス名;

利用するDBMSによって多少構文ルールに差がありますが、考え方は一緒です。

参考 DBMSとは?

このページでは初心者向けにDROP TABLEの利用方法を1分でわかりやすく解説します。

このページで学べる内容
  • DROP INDEX の使い方
  • ALTER文を利用したインデックスの削除方法

プログラマーやエンジニアを目指す方であれば知らないと恥ずかしい基本知識の1つ。是非最後までご覧ください。

スポンサーリンク

DROP INDEX:インデックスの削除

DROP INDEXの構文ルールは以下の通りです。

-- MySQLなどの場合
DROP INDEX インデックス名 ON テーブル名; 

-- OracleやPostgreSQLなどの場合
DROP INDEX インデックス名;

DROP INDEXの後に削除したいインデックス名を記述するだけ。

今回サンプルとして利用するMySQLなどの場合は、インデックス名とテーブル名を指定します。

MySQLではインデックスの管理がテーブル単位であるためです。(OracleやPostgreSQLなどの場合は、インデックスはデータベース単位。)

DROP INDEX のサンプルコードがこちら。

/* 削除前(わかりやすいように一部省略して表示)
+------------+------------+----------+-------------+------+------------+
| Table      | Non_unique | Key_name | Column_name | Null | Index_type |
+------------+------------+----------+-------------+------+------------+
| sample_tbl |          1 | idx_1    | ID          | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | AAA         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | BBB         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | EEE         | YES  | BTREE      |
+------------+------------+----------+-------------+------+------------+
*/

-- インデックス(idx_1)を削除
DROP INDEX idx_1 ON sample_tbl;

/* 削除後(インデックス「idx_1」が削除されている)
+------------+------------+----------+-------------+------+------------+
| Table      | Non_unique | Key_name | Column_name | Null | Index_type |
+------------+------------+----------+-------------+------+------------+
| sample_tbl |          1 | idx_2    | AAA         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | BBB         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | EEE         | YES  | BTREE      |
+------------+------------+----------+-------------+------+------------+
*/

ALTER文を利用したインデックス削除

インデックスを削除したい場合は、ALTER TABLE文を利用することもできます。

構文ルール

-- インデックスの削除
ALTER TABLE テーブル名 DROP INDEX インデックス名;

サンプルコード

/* インデックス定義を表示(変更前)
+------------+------------+----------+-------------+------+------------+
| Table      | Non_unique | Key_name | Column_name | Null | Index_type |
+------------+------------+----------+-------------+------+------------+
| sample_tbl |          1 | idx_1    | ID          | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | AAA         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | BBB         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | EEE         | YES  | BTREE      |
+------------+------------+----------+-------------+------+------------+
*/


--  インデックス(idx_1)の削除
ALTER TABLE sample_tbl DROP INDEX idx_1;


/* インデックス定義を表示(ide_1)が削除されている
+------------+------------+----------+-------------+------+------------+
| Table      | Non_unique | Key_name | Column_name | Null | Index_type |
+------------+------------+----------+-------------+------+------------+
| sample_tbl |          1 | idx_2    | AAA         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | BBB         | YES  | BTREE      |
| sample_tbl |          1 | idx_2    | EEE         | YES  | BTREE      |
+------------+------------+----------+-------------+------+------------+
*/

SQLを1から学習したい方は

SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。

SQLは決して難しい技術ではないので、エンジニアであれば「当たり前のように」扱えて当然かも・・・?

とはいえ、案外SQLをちゃんと使ったことがない人も多いはずです。この機会に是非一度ご覧になってみてください。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
DatabaseIT-Skills
シェアする
ビズドットオンラインをフォローする
blank
ビズドットオンライン
タイトルとURLをコピーしました