SQL 入門
SQL 入門
データ操作の基本を知ろう
基本的な SQL を用いたデータ操作について解説します。
ここに書かれている内容は、mSQL に特化したものではなく、
一般的な SQL の基本を解説しています。
そのため、このまま mSQL で動くとは限りません。
mSQL に特化した SQL については、次章で解説します。
とりあえず、ありがちな例題ですが、社員データベースを作ってみましょう。
以下のようなテーブルを設計してみました。 (登場人物は実在の人物と一切関係ありません)
社員番号 | 部門 | 氏名 |
---|---|---|
101 | 開発部 | 宮前 竜也 |
102 | 営業部 | 鈴木 陽二朗 |
103 | 企画部 | 畠山 めぐみ |
104 | 開発部 | 菊地 直人 |
105 | 営業部 | 北島 知明 |
さあ、早速 SQL を書いてみましょう。
今回は、上のテーブルとデータが、すでに存在するものとして、
まずはここからデータを取り出す(検索する)SQL から書いてみます。
取り出し (SELECT)
データベースからデータを取り出すには、SELECT 文を使います。 もちろん、プログラム中で最も多用する命令です。 基本的には以下の構文です。
select カラム名 from テーブル名 where 条件
基本はこれだけなんです。 これで、条件にマッチしたレコードの指定カラムを取り出します。 早速、社員テーブルから、開発部の人の氏名一覧を取り出してみましょう。
select 氏名 from 社員テーブル where 部門 = '開発部'
氏名 宮前 竜也 菊地 直人
氏名だけでなく、社員番号も同時に取り出したい場合は、 select 社員番号, 氏名 ... のようにカラム名をカンマで区切って、 複数指定できます。また、カラム名に、 * (アスタリスク)を指定すると、レコード全体が取り出せます。
select 社員番号, 氏名 from 社員テーブル where 部門 = '開発部'
社員番号 氏名 101 宮前 竜也 104 菊地 直人
このようにして取り出したデータを、
どのようにプログラムの中で利用するのかは、プログラミング編で解説します。
今は、SQL を使って、
データベースからデータを取り出す考え方だけを理解してください。
追加 (INSERT)
データ取り出しの基本がわかったところで、 次はレコードの追加方法を説明しましょう。 レコードを追加するには、INSERT 文を使います。 基本的な構文は以下の通りです。
insert into テーブル名 (カラム名, カラム名, ...) values (値, 値, ...)
SELECT 文より、多少わかりにくいかも知れませんが、 実例を見ればすぐに理解できるでしょう。 新しい社員を追加するには、以下のようにします。
insert into 社員テーブル (社員番号, 部門, 氏名) values (106, '企画部', '澤本 隆')
確認のため、全データを SELECT してみましょう。 確かに新しいレコードが追加されていますね。
select * from 社員テーブル
社員番号 部門 氏名 101 開発部 宮前 竜也 102 営業部 鈴木 陽二朗 103 企画部 畠山 めぐみ 104 開発部 菊地 直人 105 営業部 北島 知明 106 企画部 澤本 隆
更新 (UPDATE)
すでに登録されているデータを更新するには UPDATE 文を使います。 データを更新するには、後述する DELETE 文で、一旦レコードを削除して、 再度 INSERT する方法もありますが、 UPDATE 文を使えば、必要なカラムだけを簡単に更新することができますし、 複数のレコードを一括で更新することもできます。 基本構文は以下の通りです。
update テーブル名 set カラム名=値 where 条件
条件にマッチしたレコードの、指定カラムの値を変更します。
では、104番の菊地さんを、企画部に変更してみましょう。
update 社員テーブル set 部門='企画部' where 社員番号=104
今回は社員番号として、 社員を識別するためユニークな値が割り振られていますので、 where 社員番号=104 とすれば、菊地さんのレコードが特定できるわけです。
更新されたかどうか見てみましょう。
select * from 社員テーブル
社員番号 部門 氏名 101 開発部 宮前 竜也 102 営業部 鈴木 陽二朗 103 企画部 畠山 めぐみ 104 企画部 菊地 直人 105 営業部 北島 知明 106 企画部 澤本 隆
さて、今度は複数レコードの一括更新の例を示しましょう。 要するに複数レコードがマッチするように条件を指定すれば良いだけの話です。
「開発部」が、「システム開発部」に名称が変わりました。 そんな場合は、こうしましょう。
update 社員テーブル set 部門='システム開発部' where 部門='開発部'
「部門 = "開発部"」なレコードの、
「部門」の値を "システム開発部" に書き換えろ。ってな感じですね。
ちょっと複雑ですが、じっくり読んで理解してください。
削除 (DELETE)
最後に、不要になったレコードを削除する、DELETE 文を解説します。 構文は、以下の通り、非常にシンプルで簡単です。
delete from テーブル名 where 条件
条件にマッチしたレコードを削除します。単純ですね。
では営業部の人を全員削除してみましょう。
delete from 社員テーブル where 部門 = '営業部'
select * from 社員テーブル
社員番号 部門 氏名 101 開発部 宮前 竜也 103 企画部 畠山 めぐみ 104 企画部 菊地 直人 106 企画部 澤本 隆
もし特定の社員を削除したければ、条件に社員番号を使えば良いのです。
簡単ですよね。
以上が SQL の基本です。簡単な構文と概念さえ覚えてしまえば、 独自のデータファイルを作って、自分で検索処理をプログラミングするのより、 遥かに簡単で便利なのがわかると思います。
[ 目次 ]