データ操作② データの抽出

目次

データの抽出

データベースの抽出とは、保存されている大量のデータの中から、特定の条件に一致するデータを取り出すことを指します。

これには、基礎理論で学習した論理演算の考え方を用います。

OR・AND・NOT・XORのそれぞれの論理演算はデータ抽出の条件を指定するために用いることができます。

以下の従業員テーブルについて、データを抽出してみましょう。

従業員テーブル:

ID名前部門給与
1アリス営業50000
2ボブ人事60000
3チャーリー営業70000
4デイブIT80000
5イブIT60000

論理和(OR)

論理和(OR)は、二つ以上の条件のうち、少なくとも一つが真(true)である場合に、該当するデータを抽出します。

例として、部門が営業または給与が70000以上の従業員を抽出します。

アリス、チャーリー、デイブが対象となります。

ID名前部門給与
1アリス営業50000
3チャーリー営業70000
4デイブIT80000

論理積(AND

論理積(AND)は、二つ以上の条件が全て真(true)である場合にのみ、該当するデータを抽出します

例として、部門が営業で、かつ給与が70000以上の従業員を抽出します。

この条件に合致するのはチャーリーだけです。

ID名前部門給与
3チャーリー営業70000

否定(NOT)

否定(NOT)は、指定した条件と逆の結果を抽出します。

例として、部門が営業ではない従業員を抽出します。

この条件に合致するのはボブ、デイブ、イブです。

ID名前部門給与
2ボブ人事60000
4デイブIT80000
5イブIT60000

排他的論理和(XOR)

二つの条件のうち、一方のみが真(true)である場合に該当するデータを抽出します。

例として、部門が営業であるか給与が70000以上の従業員を抽出しますが、両方の条件を満たす人は除外します。

この条件に合致するのはアリスとデイブです。(両方の条件を満たすチャーリーは除外されます。)

ID名前部門給与
1アリス営業50000
4デイブIT80000

上記の例では、論理和・論理積・否定・排他的論理和を使用して、様々な条件に基づいてデータベースからデータを抽出しています。

これらの論理演算子を組み合わせることで、より複雑な条件を指定してデータを抽出することも可能です。

ワイルドカード

ワイルドカードは、データの抽出の際に、部分一致や任意の文字に置き換えるために使われる特殊な文字です。

以下に、それぞれのワイルドカードについて説明します。

% 任意の0文字以上の文字列に置き換える。
*任意の0文字以上の文字列に置き換える。(主にファイル名やパス検索で使われる)
?任意の1文字に置き換える。
_任意の1文字に置き換える。(主にデータベースで使われる)

サンプル表:

氏名性別出身地
山田太郎東京
鈴木花子大阪
佐藤次郎東京
高橋雅子名古屋
田中一郎福岡
加藤和子仙台

例:

  1. 氏名が「鈴木%」に一致する人を検索 結果: 鈴木花子(鈴木で始まる名前をすべて抽出)
  2. 氏名が「%郎」に一致する人を検索 結果: 山田太郎、佐藤次郎、田中一郎(郎で終わる名前をすべて抽出)
  3. 出身地が「?京」に一致する人を検索 結果: 山田太郎、佐藤次郎(出身地が2文字で「京」で終わる人を抽出)
  4. 氏名が「加藤_子」に一致する人を検索 結果: 加藤和子(加藤で始まり、3文字目が任意の1文字で「子」で終わる名前を抽出)
ワイルドカードの語源

データベースやコンピュータサイエンスにおける「ワイルドカード」は、任意の文字列や文字を表すために使用される特別な記号や文字です。

この用語の語源は、カードゲームから来ています。カードゲームにおいて、「ワイルドカード」とはどのカードともマッチすることができる特別なカードを指します。つまり、ゲームのルールに基づいて、任意の値を取ることができるカードです。

例えば、トランプでいえばジョーカーがその役割を果たします。

コンピュータ科学におけるワイルドカードの概念も同様で、検索やデータマッチングの際に、あらかじめ定義された任意の文字列や文字にマッチするために使用されます。例えば、データベースの検索において%_(SQLにおけるワイルドカード)が使用され、これらはそれぞれ任意の文字列や単一の文字を表すために使われます。

このように、ワイルドカードはゲームの世界から情報技術の分野へとその概念が転用され、柔軟な検索やパターンマッチングを可能にするための便利なツールとして広く採用されています。

目次