SQLの基本(その1)

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

藤本 壱

2009年10月13日 20:00

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なら「在庫なし」と表示します。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30