3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド 2004年 6月3日(木) 01T6074X 茂木啓悟 3-6.インデックスについて レコードが非常に多くなりデータの検索に 時間がかかる場合、カラムにインデックス (索引)をつけることによって検索速度を向 上させることができる。 インデックスの作成と確認 1.テーブル作成時に指定する方法 mysql> create table MEMBERS(ID_C int not null -> primary key,NAME_C varchar(20) -> not null,ADDRESS_C varchar(32), -> index ID_INDX(ID_C)); 2.既存のテーブルにあるカラムに インデックスを作成する方法 mysql> create index NAME_INDX on -> MEMBERS(NAME_C); 3.作成済みのテーブルに変更を加える方法 mysql> alter table MEMBERS add index -> NAME_INDX(NAME_C); いずれの場合でもインデックス名が指定 されていなければ,インデックスのカラム名 がそのままインデックス名になる。 • インデックスの確認 mysql> show index from MEMBERS; Key_nameのカラムにインデックスの 名前が表示される. • インデックスの削除 インデックスを削除する場合には, drop indexコマンドを使う。 mysql> drop index NAME_INDX -> on MEMBERS; 3-7.関数と併用されることの多い MySQLコマンド • having句 ある条件で抽出された結果セットに対して、 さらに条件を加えて絞り込みを行う場合に 用いる。 関数で処理されたあとに結果セットを絞り 込むときにwhereは使えないのでhavingが 有効。 mysql> select ID_C,NAME_C,AGE_C from -> FRIENDS_T2 where ID_C > 5 -> having AGE_C > 40 order by ID_C; mysql> select ID_C,NAME_C,AGE_C from -> FRIENDS_T2 where ID_C > 5 -> having NAME_C like “友%”; • グルーピング:group by 指定のカラムにある全データから重複する ものをまとめて表示させる。 mysql> select BLOOD_C from -> FRIENDS_T2 group by BLOOD_C; 上記のコマンドはselect distinctと同じ結果 セットを得ることになる。 select distinctとの違いは、1つのカラムの グループ化を行った後、他のカラムのデー タも表示できる。 mysql> select * from FRIENDS_T2 -> group by BLOOD_C;
© Copyright 2024 ExpyDoc