データの抽出
データベースの抽出とは、保存されている大量のデータの中から、特定の条件に一致するデータを取り出すことを指します。
これには、基礎理論で学習した論理演算の考え方を用います。
OR・AND・NOT・XORのそれぞれの論理演算はデータ抽出の条件を指定するために用いることができます。
以下の従業員テーブルについて、データを抽出してみましょう。
従業員テーブル:
ID | 名前 | 部門 | 給与 |
---|---|---|---|
1 | アリス | 営業 | 50000 |
2 | ボブ | 人事 | 60000 |
3 | チャーリー | 営業 | 70000 |
4 | デイブ | IT | 80000 |
5 | イブ | IT | 60000 |
論理和(OR)
論理和(OR)は、二つ以上の条件のうち、少なくとも一つが真(true)である場合に、該当するデータを抽出します。
例として、部門が営業または給与が70000以上の従業員を抽出します。
アリス、チャーリー、デイブが対象となります。
ID | 名前 | 部門 | 給与 |
---|---|---|---|
1 | アリス | 営業 | 50000 |
3 | チャーリー | 営業 | 70000 |
4 | デイブ | IT | 80000 |
論理積(AND)
論理積(AND)は、二つ以上の条件が全て真(true)である場合にのみ、該当するデータを抽出します
例として、部門が営業で、かつ給与が70000以上の従業員を抽出します。
この条件に合致するのはチャーリーだけです。
ID | 名前 | 部門 | 給与 |
---|---|---|---|
3 | チャーリー | 営業 | 70000 |
否定(NOT)
否定(NOT)は、指定した条件と逆の結果を抽出します。
例として、部門が営業ではない従業員を抽出します。
この条件に合致するのはボブ、デイブ、イブです。
ID | 名前 | 部門 | 給与 |
---|---|---|---|
2 | ボブ | 人事 | 60000 |
4 | デイブ | IT | 80000 |
5 | イブ | IT | 60000 |
排他的論理和(XOR)
二つの条件のうち、一方のみが真(true)である場合に該当するデータを抽出します。
例として、部門が営業であるか給与が70000以上の従業員を抽出しますが、両方の条件を満たす人は除外します。
この条件に合致するのはアリスとデイブです。(両方の条件を満たすチャーリーは除外されます。)
ID | 名前 | 部門 | 給与 |
---|---|---|---|
1 | アリス | 営業 | 50000 |
4 | デイブ | IT | 80000 |
上記の例では、論理和・論理積・否定・排他的論理和を使用して、様々な条件に基づいてデータベースからデータを抽出しています。
これらの論理演算子を組み合わせることで、より複雑な条件を指定してデータを抽出することも可能です。
ワイルドカード
ワイルドカードは、データの抽出の際に、部分一致や任意の文字に置き換えるために使われる特殊な文字です。
以下に、それぞれのワイルドカードについて説明します。
% | 任意の0文字以上の文字列に置き換える。 |
* | 任意の0文字以上の文字列に置き換える。(主にファイル名やパス検索で使われる) |
? | 任意の1文字に置き換える。 |
_ | 任意の1文字に置き換える。(主にデータベースで使われる) |
サンプル表:
氏名 | 性別 | 出身地 |
---|---|---|
山田太郎 | 男 | 東京 |
鈴木花子 | 女 | 大阪 |
佐藤次郎 | 男 | 東京 |
高橋雅子 | 女 | 名古屋 |
田中一郎 | 男 | 福岡 |
加藤和子 | 女 | 仙台 |
例:
- 氏名が「鈴木%」に一致する人を検索 結果: 鈴木花子(鈴木で始まる名前をすべて抽出)
- 氏名が「%郎」に一致する人を検索 結果: 山田太郎、佐藤次郎、田中一郎(郎で終わる名前をすべて抽出)
- 出身地が「?京」に一致する人を検索 結果: 山田太郎、佐藤次郎(出身地が2文字で「京」で終わる人を抽出)
- 氏名が「加藤_子」に一致する人を検索 結果: 加藤和子(加藤で始まり、3文字目が任意の1文字で「子」で終わる名前を抽出)
データベースやコンピュータサイエンスにおける「ワイルドカード」は、任意の文字列や文字を表すために使用される特別な記号や文字です。
この用語の語源は、カードゲームから来ています。カードゲームにおいて、「ワイルドカード」とはどのカードともマッチすることができる特別なカードを指します。つまり、ゲームのルールに基づいて、任意の値を取ることができるカードです。
例えば、トランプでいえばジョーカーがその役割を果たします。
コンピュータ科学におけるワイルドカードの概念も同様で、検索やデータマッチングの際に、あらかじめ定義された任意の文字列や文字にマッチするために使用されます。例えば、データベースの検索において%
や_
(SQLにおけるワイルドカード)が使用され、これらはそれぞれ任意の文字列や単一の文字を表すために使われます。
このように、ワイルドカードはゲームの世界から情報技術の分野へとその概念が転用され、柔軟な検索やパターンマッチングを可能にするための便利なツールとして広く採用されています。