プログラミングの記事において、「SQL(エスキューエル)」は実に良く聞く用語ですが、SQLについて説明してくださいと言われると、なかなか難しいもの。本記事では、SQLの役割と基本文法を紹介します。
SQLとは?
SQL(Structured Query Language)はデータベースのデータを操作するための言語です。
例えば、全社員に関する情報を管理するとき、もしデータベースがなかった場合、社員名や所属など個々のデータの保存方法はテキストファイルなどにならざるを得ません。これではサーバーにファイルがいくつもある状態となり、管理が煩雑過ぎる上、扱えるデータの量が限定されてしまいます。
このため、大量のデータを管理する場合は、データベース管理システムを使用します。SQLはこのデータベースを操作するための言語というわけです。また、世界的にデータベース言語の標準として利用されています。
SQLで何ができるの?
データベースを管理するとき、「データベースにSQLで問い合わせをする」などと言います。
SQLでできるデータベースの操作の種類には、次のようなものがあります。
- データの取得、挿入、更新や削除
- データ取得の際の分類分けや整列
- データへのアクセスコントロール
- 表の作成、変更と削除
データベースで一般的なリレーショナル型のデータベースは、次のようなものです。表「テーブル」の形式で行と列に各データが格納されています。
SQLを使って、このデータベースに「nameがJasmineについての行を取得してください」「Jimは退職したのでJimに関する情報を削除してください」という具合で”問い合わせ”をします。データベースがSQLからの問い合わせとなる命令を受け取ると、それらの操作が実行されるのですね。
データの取得
データの取得で使用するSQLコマンドには次のようなものがあります。
SELECT,FROM
テーブルから特定のデータを取得するときはSELECT文を使います。また、FROM文でどの表からデータを取得するかを指定します。
SELECT <取り出したい列> FROM <テーブル名>;
特定の列だけを一覧で取得するときには、次のように指定します。
SELECT <列1>, <列2> FROM <テーブル名>;
列と列の間はカンマで区切ってください。
WHERE
特定の条件に当てはまる情報だけを取り出したい場合は、条件を指定する命令「WHERE」を使います。条件に合致したレコードだけを取得できます。
SELECT <列> FROM <テーブル名> WHERE <条件>;
データの追加や削除
データベースへのデータの追加、削除や更新などもSQLコマンドで行えます。これらの実行結果は次項にて説明します。
データの追加
データベースへのデータの追加するときのSQLコマンドは次のとおりです。
INSERT INTO <テーブル名> ( <列名>, ... ) SELECT <列名>, ... FROM <テーブル名> WHERE <条件>;
データの削除
データベースからデータを削除するときのSQLコマンドは次のとおりです。
DELETE FROM <テーブル名> WHERE <条件>
データの更新
データベース上のデータを更新するときのSQLコマンドは次のとおりです。
UPDATE <テーブル名> SET <列名> = <データ>, ... WHERE <条件>
演算子AND,OR
「特定の条件が複数ある場合」のデータベースへの問い合わせる場合、複数条件はどのように指定すれば良いでしょうか。SQLコマンドでは、「演算子」が用意されており、これらを組み合わせて条件を併記します。
SELECT <列> FROM <テーブル名> WHERE <条件><演算子><条件>;
SQLコマンドはどう使う?
上述のSQLコマンドを使って、表「employees」で構成された「社員情報データベース」を操作してみましょう。
データの取得
SQLを使ってデータベースからデータを取得するときの例です。
SELECT,FROM
SELECT文を使って、表「employees」内の全部のデータを取り出してみます。
「*(アスタリスク)」は、employees上のすべてのレコードを取り出すという意味です。
WHERE
WHERE文を使って、表「employees」から、所在地(location)がインド(India)のデータだけを取り出してみます。
データの追加や削除
SQLを使ってデータベースからデータの追加や削除をするときの例です。
データの追加
id=15として、Rodという名前の社員に関するレコードを追加してみましょう。
指定したid=15に、入力したレコードが追加されます。
データの削除
データの追加で追加した、レコードを削除してみましょう。
id=15に存在していた、Rodという名前の社員に関するレコードが削除されます。
データの更新
UPDATE文を使って、Australiaをカタカナ表記に更新してみます。
指定したid=1のlocationとareaがカタカナに更新されます。
演算子AND,OR
演算子を使って、所在地(location)がインド(India)または韓国(Korea)のデータだけを取り出してみます。指定したlocation名を持つレコードだけが取得されます。
逆に、「インド(India)かつ韓国(Korea)」という条件を指定したい場合は「OR」ではなく、「AND」となります。
まとめ
SQLによるデータベースの操作というと難しく聞こえますが、あたかもExcelの表をコマンドを使って編集するようなものだと考えると、取り掛かりやすくなりますね。
SQLのコマンドは、簡単な英単語で書かれていますので、プログラミング初心者でも命令の意味が概ね理解できますので、気軽にチャレンジしてみましょう。