データベース データの指定方法について

データベース

こんにちは、じじグラマーのカン太です。
50歳目前、不景気の本業に焦りながら週末プログラマーをしています。

たくさんのデータの中から、自分が欲しいデータだけを取り出すにはどうしたらいいの?

データベースのお勉強第三弾。
この記事では、データベースの中から必要なデータを指定する方法を紹介します。

※第一弾はこちら↓

※第二弾はこちら↓

指定方法について

データベースの中身は、たくさんのデータが格納されています。

例えば、
 select 顧客名 from 顧客マスタ
というSQLの命令をデータベースに渡すと、お客様の名前がずらーっと表示されます。
(selectという命令に見覚えのない方はこちらの記事をどうぞ)

実際の仕事などでは、「特定の条件の顧客情報を知りたい」ということがほとんだと思います。

条件を指定する命令も、SQLには用意されています。
 select 顧客名 from 顧客マスタ where 顧客名 = “令和株式会社”

SQLには「where」句というものが用意されています。
SELECT UPDATE DELETE 文の加えて、データを指定する際に使います。

ここでは、
  条件を指定するときは「where」句を使用する
とだけ覚えておいてください。

文法など詳細が知りたい方は、グーグル先生にお聞きしましょう。

ユニークキーについて

「令和株式会社」という会社が2件登録されていました。どちらのデータが正しいの?

先ほどのSQL文
 select 顧客名 from 顧客マスタ where 顧客名 = “令和株式会社”
を実行すると、2件のデータが表示されました。

同じ会社が二件登録されてしまったのか、たまたま名前が同じだったのか。

リレーショナルデータベースには重複登録を防ぐため「ユニークキー」を指定することが可能です。
「ユニークキー」や「主キー」あるいは「プライマリキー」 と呼ばれることもあります。
(それらは少しずつ意味が違うそうですが、気にしません)

あるテーブルの中で、一つだけだと特定できる項目(カラム)をキーと呼びます。
この一つだけと特定できることを「一意に識別できる」と言います。

ここでは
 テーブルの中で一意に識別できるカラムを「ユニークキー」と呼ぶ
と覚えておいてください。

インデックスについて

例えば、100万件の中からデータを特定するのって、時間かからないの?

受注の情報を管理するデータベースなど大量のデータを保存しているテーブルから、特定のデータを指定すると時間がかかる場合があります。

例えば、100万件のレコードの中からデータを検索するとき、1秒間に1万件のレコードを読み込めるコンピュータでも、100秒かかる計算になります

スーパーのレジなどで、バーコードをピッと読み込み待つこと100秒、次の商品にぴっと待つこと100秒・・などという状況になったら、地獄絵図のような展開になりますね。

データベースには、検索を速くする仕組みが用意されています。
インデックス
と呼ばれるものです。

インデックスは、テーブルのカラムで指定し、指定したカラムを昇順や降順で並べ替えた状態で保持しています。
昇順や降順で並び替えられたカラムを検索すると、「二分探索」という方法で検索することが可能になります。(詳しくはグーグル先生にお聞きください)
つまり、ものすごく速くなります。

ここでは、
「インデックス」カラムで検索すると、レスポンスが飛躍的に向上する
とだけ覚えておいてください。

まとめ

今回の記事をまとめます。
・条件の指定は「WHERE」句を用いて行う
・「ユニークキー」はデータを一意に識別するカラムである
・「インデックス」カラムを用いるとレスポンスを向上させる

コメント