SQLとは?:データベースに”問い合わせる”ための呪文|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

SQL(エスキューエル、英語的にはスィークェル)

本日はデータベースにおける「SQL」という言葉を解説します。SQLは以前ご説明したデータベースマネージメントシステム(DBMS)を「利用者が利用するための手段」です。

SQLは言語

SQLはしばしは「Structured Query Language」の頭文字であるといわれます*。直訳すると「構造化された問い合わせ言語」となります。まずここから「SQLは言語である」と説明させてください。何の為の言語でしょうか?それが”Q=Query”にあらわれていて「Query=問い合わせ」の為の言語なのです。
すなわち、データベースマネージメントシステム(DBMS)内で管理されているデータを利用者が見たいと思ったとき、利用者は「XXXのデータの中でZZZという条件に該当するデータをください」とDBMSに「問い合わせ」をします。するとDBMSは該当するデータを利用者に応答します。この「問い合わせ」に用いられる「言語」がSQLなのです。
*国際標準としては形式上「SQLという単語自体は何かの略語ではない」という表現がなされています。

具体例

前回、表(テーブル)に関して説明しました。その際に例として以下のようなテーブルをお見せしました。今回はこのテーブルを例にして説明をさせてください。以下のテーブルがDBMS内に存在したとします。
 
表の名前:総理大臣テーブル

氏名 ふりがな 出生日 出生地 出身校 死没日 死没地
伊藤博文 いとうひろぶみ 1841年10月16日 周防国熊毛郡 松下村塾 1909年10月26日 中国黒龍江省
黒田清隆 くろだきよたか 1840年11月9日 薩摩国鹿児島郡 1900年8月23日 東京府
山縣有朋 やまがたありとも 1838年6月14日 長門国阿武郡 松下村塾 1922年2月1日 神奈川県小田原市

 
これに対して、利用者が 「総理大臣テーブルの中で、【出身校】が”松下村塾”の総理大臣の【氏名】を、データとしてください。」と問い合わせをしたとしましょう。この場合のSQLは以下のように表されます。

SELECT 氏名 FROM 総理大臣テーブル WHERE 出身校=’松下村塾’

 
すると、DBMSは以下の結果を応答します。結果データは表の形式で応答されます。

氏名
伊藤博文
山縣有朋

 
このようにDBMSの利用者はDBMS内のデータにSQLを用いて問い合わせを行うことにより、目的となるデータを得ることができるのです。

SQLはデータを取得するだけではありません

DBMSの目的は利用者にデータを提供することなので、SQLの代表的な使い方はデータの取得(上記のSELECT~の使い方)なのですが、その他にDBMSに対するさまざまな操作をSQLで行う事ができます。たとえばデータの追加です。そもそもDBMSの中にデータが格納されなければ、DBMSは利用者に何も提供できませんから、このような処理もSQLで行う必要があるのです。
SQLで行う処理をおおまかに説明すると以下の3つに分かれます。
[データ定義]
表(テーブル)を作成する
表(テーブル)を削除する
など
[データ操作]
表(テーブル)のデータを取得する
表(テーブル)のデータを削除する
表(テーブル)にデータを追加する
など
[データ制御]
表(テーブル)へのデータの変更を無効にして元に戻す。
など
 
関連記事(姉妹サイト):オススメ!SQL入門書のご紹介 「まずはこの2冊!」
データ分析用語:索引

SERVICE