SQL CREATE INDEX


SQL CREATE TABLE
SQL CREATE VIEW
SQL CREATE INDEX
SQL ALTER TABLE
SQL 主キー
SQL 外来キー
SQL DROP TABLE
SQL TRUNCATE TABLE
SQL INSERT INTO
SQL UPDATE
SQL DELETE FROM


サイトのご案内

  SQL > テーブル処理 > Create Index

インデックス (Index)により、テーブルの中から、必要なデータを調べることができます。例えば、ある園芸の本からピーマンを植える情報を探すこととします。もし、その本の中にインデックスがなければ、一番の初めのところから読み始めて、ピーマンを植える情報のところまで読まなければなりません。もし、その本にインデックスがある場合、インデックスからピーマンを植える情報のページを調べることができます。それから、直接にそのページに入って読み始めます。明らかに、インデックスの利用はとても効果的で、しかも時間の節約ができる方法。

データベースのテーブルからデータを調べることも同様。一つのテーブルにインデックスがなければ、データベースシステムがテーブル全体のデータを読み込まなければなりません (これは'table scan'と呼ばれます)。適当なインデックスがあれば、データベースシステムが、インデックスから必要なデータがテーブルのどこにあるかを調べて、それから、直接にそこへ入って、当該データを読み込むことができます。そうすると、作業がずっと早くなります。

従って、テーブルの中にインデックスを作るのが、システムの効率にとてもよいのです。一つのインデックスは、一つ又は複数のフィールドを含む場合があります。インデックスを作るプログラミングは次のようになります。

CREATE INDEX "インデックス名" ON "テーブル名" (フィールド名)

仮に、次のようなテーブルがあるとします。

Customer テーブル
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)


そして、Last_Name フィールドにインデックスを作ることにします。では、次のようなコマンドを入力します。

CREATE INDEX IDX_CUSTOMER_LAST_NAME
on CUSTOMER (Last_Name)

City 及び Country の二フィールドにインデックスを作る場合、次のようなコマンドを入力します。

CREATE INDEX IDX_CUSTOMER_LOCATION
on CUSTOMER (City, Country)

インデックスの名づけは決まった方法がありません。通常、データベースの他の部分と混同されないように、よく使われるのは名前の前に "IDX_" などをつけます。その他に、インデックス名の中に、テーブル名及びフィールド名が含まれるのもよい方法です。

それぞれのデータベースはその自身の CREATE INDEX プログラミングがあり、また、データベースによりプログラミングが異なる場合があること注意してください。従って、コマンドを指定する前に、あらかじめ、データベースのマニュアルにある正しいプログラミングを確かめるとよいです。

SQL ALTER TABLE >>