

まずは簡単にデータベースの基本から説明します


データベースってなに?

社員の名前や住所・電話番号・生年月日や、お店で購入した商品・金額・買った日時などが入っているところをデータベースと言います。
名前や住所などそれぞれの項目にわかれて入っていますが、この項目を列(カラム)と呼ばれます。
1人ずつのデータがわかれて入っており、これを行(レコード)と呼ばれます。
上の図のように、社員の情報がカラム・レコードで仕切られている中に入っています。
すべての社員の名前をほしいときには、名前のカラムを参照しますし、山田太郎さんの情報がほしいときには、1番目のレコードを参照します。
社員の情報や、お店で購入した情報はそれぞれの表(テーブル)と呼ばれる中に入っています。
データベースからデータを取得しよう(SELECT文)

最初にデータベースの「どこから何を」取得するのかを確認しましょう。

上の社員テーブル(employee)から、全社員の名前を取得してみましょう。
・どこのテーブルから?・・・社員テーブル(employee)
・何のカラムを? ・・・社員テーブルの名前(name)
データを取得するには、「SELECT文」を使います。
「FROM」でどこから取得するのかを指定します。
社員テーブル(employee)から取得するので、FROM employeeと書きます。
「SELECT」で何のカラムを取得するかを指定します。
社員テーブルの名前(name)を取得するので、SELECT nameと書きます。
// 社員テーブルから名前 [name] を取得
SELECT name
FROM employee;
複数のカラムを取得するには…
先ほどは社員テーブルの中から1つのカラムを取得する方法をお伝えしました。
2つ以上のカラムを取得するには、対象のカラムをカンマ区切りでつなげて指定するだけでOKです。
社員テーブルから、名前と住所を取得したいときには、このように書きます。
// 社員テーブルから名前 [name] と住所 [address] を取得
SELECT name
,address
FROM employee;
すべてのカラムを取得するには…
テーブルの中にあるすべてのカラムを取得したいときには、すべてのカラムを書いてもOKですが、このようにアスタリスク(*)で書くことでもできます。
// 社員テーブルからすべてのカラムを取得
SELECT *
FROM employee;
それぞれのデータの型を知ろう
カラムには、保存するデータの種類に合った型というのがあります。
「数値型」「文字列型」「日付型」などのいろんなデータ型があります。
どういった種類のデータを入れるかによって、それに見合ったデータ型をカラムごとに決めています。
金額や数量といった数値しか入れないカラムは「数値型」、名前や住所といった文字を入れるカラムは「文字列型」、登録した日や誕生日のような日付を入れるカラムは「日付型」となります。
指定されたデータ型に沿ったデータしか入れることができません。例えば、数値型のカラムに文字や日付を入れることはできません。
データ型には、以下のような種類があります。
データベースの種類によって、データ型の名前が違いますので、注意しましょう。
- 文字列型(CHAR・VARCHAR)
- 数値型(NUMBER・INTEGER・LONG)
- 日付型(DATE・TIMESTAMP)
上記だけではなく、これ以外にもいろいろなデータ型があります。
欲しいデータだけを取得しよう(WHERE句)

テーブルの中からほしいデータだけを取得するには「WHERE句」を使います。
WHEREのあとに、絞り込みしたいカラム名と条件を指定します。
社員テーブルからIDが1と等しいデータを取得するには、このように書きます。〇〇と△△が等しいという条件を作成するときには、イコール(=)を使います。
// 社員テーブルからIDが1のレコードを取得
SELECT *
FROM employee
WHERE id = 1;
〇〇以上や〇〇未満でデータを取得するには…
〇〇と△△が等しいという条件を作成するときには、イコール(=)を使いました。
〇〇より大きい△△という条件のときには、>を使います。また、〇〇が△△以上という条件のときは、>と=を使います。
逆に〇〇より小さい△△という条件のときには、<を使います。〇〇が△△以下という条件のときは、<と=を使います。
このような、より大きいとかより小さいといった大小比較をするときは、数値型のカラムや日付型のカラムで利用するケースとなります。
// 社員テーブルからIDが10以上のレコードを取得
SELECT *
FROM employee
WHERE id >= 10;
// 社員テーブルから誕生日 [birthday] が2000/1/1より前のレコードを取得
SELECT *
FROM employee
WHERE birthday < '2000-01-01';
〇〇ではないデータを取得するには(NOT)
〇〇が△△ではないという否定条件とするときには、先ほどの条件式の前にNOTを付けます。
〇〇と△△が等しくないという否定条件のときは、NOTの代わりに<>でも構いません。
// 社員テーブルから性別 [sex] が1(男性)以外のレコードを取得
SELECT *
FROM employee
WHERE NOT sex = 1;
// 社員テーブルから性別 [sex] が1(男性)以外のレコードを取得
SELECT *
FROM employee
WHERE sex <> 1;
文字列型や日付型のときは値の前後にシングルコーテーション(’ )を付けます。数値型のときは付けないようにします。
まとめ
レコードからデータを取得するには、SELECT文を使います。
どこから何を取得するのかを確認したうえで、SELECT文を作成していきましょう。
また、WHERE句を使って、テーブルの中からほしいレコードだけを選択することができます。
等しいもの、〇〇以上や〇〇未満、〇〇以外といった条件を指定することができます。
(=、>、>=、<、<=、NOT)
この内容はデータ取得の基本的な部分ですので、あまり難しく考えることはありません。