【SQL Server】インデックス(index)を作成する

SQL Serverのインデックス(index)を作成するSQL

構文

SQL Serverでインデックスを作成するには「CREATE INDEX ~ON ~」を使います。

-- クラスター化インデックス作成
CREATE CLUSTERED INDEX {インデックス} ON {テーブル} ({列});
-- 非クラスター化インデックス作成
CREATE NONCLUSTERED INDEX {インデックス} ON {テーブル} ({列});

クラスター化インデックスと非クラスター化インデックスの違い

  • クラスター化インデックス・・・テーブルに1つのみ。データを並びかえて格納する
  • 非クラスター化インデックス・・・複数可。インデックスへのポインタを格納する

クラスター化インデックスと非クラスター化インデックスの違いをザックリいうと、データ自体を並び替えて保存するのがクラスター化インデックスで、データへリンクしたものが非クラスター化インデックスです。

 

例1. インデックスを作成する例

-- インデックスindex1作成
CREATE CLUSTERED INDEX index1 on db1.emp (empname);

ここでは、db1にあるempテーブルのempnameにインデックス「index1」を作成しました。

例2.インデックスを複合列で作成するSQL

-- インデックスindex1作成
CREATE CLUSTERED INDEX index1 on db1.emp (empname,depno);

ここでは、db1にあるempテーブルの列「empname」「depno」にインデックス「index1」を作成しました。複数列でインデックスを作成する場合は、列名をカンマで続けて記述します。

参照:クラスター化インデックスの作成 | Microsoft Docs

以上、SQL Serverのインデックス(index)を作成するSQLでした。

コメント