SQLの基本(その1)

2009年10月13日(火)
藤本 壱

SQLの概要

リレーショナルデータベースには多くの製品がありますが、現在ではほとんどの製品で「SQL」という言語が採用されています。SQLは、データベースにアクセスする手順を記述するための、プログラム言語の一種です。

RDBMSの黎明(れいめい)期に、IBMの「System R」というRDBMSがあり、「SEQUEL」という言語が使われていました。現在のSQLは、このSEQUELを起源として作られています。SQLが広く使われるようになり、「SQL:2003」などの標準規格も作られています。

現在のRDBMSの各製品は、基本的には標準に沿ったSQLが採用されています。例えば、データベース(テーブル)からデータを取り出すには、「SELECT」という命令を使います(SELECT命令はこの後で解説します)。

SQLには多くの命令がありますが、大きく分けると、次のように「DML」「DDL」「DCL」の3つのグループに分かれます。

1)DML
「Data Manipulation Language」の略で、日本語では「データ操作言語」と呼びます。データの読み込み/保存/編集/削除を行うための命令群を指します。DML/DDL/DCLの中で、DMLは圧倒的に使用頻度が高いです。

2)DDL
「Data Definition Language」の略で、日本語では「データ定義言語」と呼びます。テーブルの作成/削除/変更など、データ構造を定義するための命令群を指します。

3)DCL
「Data Control Language」の略で、日本語では「データ制御言語」と呼びます。データベースのユーザーにアクセス権を設定したりなど、データベースを制御するための命令群を指します。

RDBMSの製品には、コマンドラインでこれらのSQLを実行して、結果を得るようなツールが付属していることが一般的です。また、Webブラウザーを使って、SQLを実行するツールがある場合もあります。SQLを学ぶ際には、こういったツールを使うと便利です。

例えば、Webアプリケーションでよく使われている「MySQL」では、オープンソースのデータベース管理ツールとして、「phpMyAdmin」がよく使われています。phpMyAdminには、SQLの命令を実行する機能もあります。

プログラムからデータベースにアクセスする

一般に、RDBMSはそれ単体で使うことはなく、さまざまなアプリケーションプログラムと組み合わせて使います。プログラムとRDBMSの間では、次のような手順でやりとりが行われます。

1)アプリケーションプログラムは、RDBMSに対してSQLで命令を送信します。

2)RDBMSは、SQLを受け取って、その内容に沿ってデータを処理します。

3)RDBMSは、処理した結果をアプリケーションプログラムに送信します。

4)アプリケーションプログラムは、RDBMSから受け取った結果を元に、データを表示するなどの処理を行います。

例えば、在庫管理のアプリケーションプログラムで、商品Xの在庫があるかどうかを表示する処理を行うとします。この場合、次のような手順で処理を進めます。

1)アプリケーションプログラムは、「商品Xの個数」を求めるためのSQLを、RDBMSに送信します。

2)RDBMSは、1)のSQL文を受け取り、テーブルを検索して商品Xの個数を求めます。

3)RDBMSは、求めた商品Xの個数を、アプリケーションプログラムに送信します。

4)アプリケーションプログラムは、商品Xの個数を受信します。そして、その値が0でないなら「在庫あり」と表示し、0なら「在庫なし」と表示します。

1969年生まれ。神戸大学工学部電子工学科卒。ソフトメーカー勤務後、フリーライターとして独立。現在では、パソコン関係およびマネー関係の書籍を中心に執筆活動を行っている。ブログ「The blog of H.Fujimoto」は、Movable TypeやWordPressの情報を中心に毎日更新している(http://www.h-fj.com/blog/)。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています