PR

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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