SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

DB Magazine 転載記事

まったくの初心者もこれでバッチリ
12のキーワードから学ぶデータベース基本中のキホン(後編)

『DB Magazine 2007年05月号』 転載記事

keyword 8 SQL(Structured Query Language)

 データベースを操作する際、個々のDBMS製品ごとにやり方や文法が異なると、製品が異なる業務システムを開発するたびに勉強しなければなりません。そうならないように、データベース(リレーショナル)の操作を行なう言語はSQL(Structured Query Language)として統一化されています。

 SQLはアメリカ規格協会(ANSI)や国際標準化機構(ISO)によって標準化され規格化されています。この規格化によって、どの製品のデータベースであっても同一の文法で検索や更新を行なえるようになっています。ただし、個々の製品ごとに独自拡張が数多くあり、完全な互換性の確保はなかなか進んでいないのが現状です。

 SQLを使用してデータベースを操作する場合、大きく2つのやり方に分かれます。

アプリケーションプログラムにSQL文を組み込む

 JavaやC言語などで作成するアプリケーションの中にSQL文を埋め込み、アプリケーションからSQL文を発行してデータベースに接続して操作する方法です。JavaやCといった一般的な言語では、直接データベースの操作を行なうことはできません。これらの言語の中ではSQL文をデータベースに送ったり、データベースへの操作結果を受け取るためのインターフェイスを用意しています(図18)。

図18:アプリケーションとSQL
図18:アプリケーションとSQL

 業務処理用に開発されたアプリケーションを使用しいてる場合、ほとんどがこのやり方となります。例えばJavaでデータを入力するための画面入出力アプリケーションを作成し、そのアプリケーションの中で入力されたデータをデータベースに登録するなどです。

直接呼び出し

 通常、データベース製品には直接ユーザーがSQL文をデータベースに実行を指示するためのツールが付属されています。このツールを使用して操作することを「直接呼び出し」と言います。以前はコマンドラインツールがほとんどでしたが、GUIを用いたツールもあります。なおこのツールは製品ごとに固有であり、OracleだとSQL*Plusというツールがあります。ツールを使用した場合、データベースの操作結果は同一ウィンドウ内に表示されます。データベースの各種の管理作業をするときに使用されるケースが多いようです(図19)。

図19:コマンドラインツールによるデータベース操作
図19:コマンドラインツールによるデータベース操作

 また、SQLは大きく分けて次の3種類で構成されています。

  • データ定義言語(DDL:Data Definition Language)
  • データ操作言語(DML:Data Manipulation Language)
  • データ制御言語(DCL:Data Control Language)

 DDLには表や制約条件などを定義するCREATE文や、表などを削除するDROP文などがあります。DMLには行の抽出を行なうSELECT文や、表に行を挿入するINSERT文、行を削除するDELETE文、特定の行のフィールドを更新するUPDATE文などがあります。DCLにはトランザクション処理の開始を宣言するBEGIN文、トランザクションの確定(完了)を指示するCOMMIT文、トランザクションを取り消すROLLBACK文などが含まれます(表4)。

表4:主なSQL
言語 SQL 説明
DML SELECT
INSERT
UPDATE
DELETE
データを検索する
表に新しい行を挿入する
表の既存の行の内容を変更する
表の既存の行の内容を削除する
DDL CREATE TABLE
ALTER TABLE
DROP TABLE
表を作成する
表の構造を修正する
表を削除する(行も一緒に削除される)
DCL COMMIT
ROLLBACK
トランザクションを確定する
トランザクションを取り消す

 なお、SQL文は言語なので文法があります。その文法について基本的なものを簡単に紹介します。文法はSQLの種類によって異なります。カコミでSELECT、UPDATE、CREATE TABLEについて触れておきます。

SQL(SELECT 文、UPDATE 文、CREATE TABLE 文)の文法
(1)SELECT文

 表からデータを検索するときに使用する

SELECT 列リスト…検索したい列を順番で指定する
  FROM 表リスト…対象となる表を指定する
 WHERE 条件式…検索したい行を絞り込みたいときに指定する(省略可)
 GROUP BY 列リスト…グルーピングして表示したいときに指定する(省略可)
HAVING 条件式…グルーピングした結果をより絞り込みたいときに指定する(省略化)
 ORDER BY 列リスト…行を指定した列で並べ替えて表示したいときに指定する(省略化)
例)
SELECT 社員番号, 氏名
  FROM 社員表
 WHERE 部署コード=101
(2)UPDATE文

 表の既存の行の内容を変更する。変更結果は表示されないため、変更結果を確認したい場合にはSELECT文を使用する

UPDATE 表…対象の表を指定する
   SET 列=値, 列=値, … …修正する列と値を必要分指定する
 WHERE 条件式…修正の対象の行を絞り込む(省略可)
例)
UPDATE 社員表
   SET 部署コード=102
 WHERE 氏名='D'

 文字型の値を指定する場合は「'」(シングルクォーテーション)で値を囲む

(3)CREATE TABLE 文

 表を作成するときに使用。DML 文を実行する前に対象となる表を作成しておく必要がある

CREATE 表                 …表の名前を指定する
(列 データ型(長さ), 列 データ型(長さ), …) …表を構成する

 列をデータ型やサイズとともに指定する

例)
CRETAE 社員表
 (社員番号NUMBER(5),
  氏名VARCHAR2(20), 部署コードNUMBER(3))

次のページ
keyword 9 インスタンス

この記事は参考になりましたか?

DB Magazine 転載記事連載記事一覧
この記事の著者

市川 道雄(イチカワ ミチオ)

 株式会社日立システムアンドサービス、人財教育部に勤務。サポート/ソリューションサービス部門と連携した教育企画/実施を担当後、現在はOracleを含むデータベース関連教育を選任で担当している。Oracle認定講師。データベーススペシャリスト、ORACLE MASTER Gold Oracle Databas...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3293 2009/02/06 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー