SQL

ここからは、データベースを操作するための言語・SQLについて学びます。

SQLの概要

SQLはIBM社の計算幾何学者・コッド(Codd)によって考案された、データの定義・操作・制御を行うための言語です。当初は各システムベンダーごとに独自の拡張がなされ互換性に問題があったのですが、1986年にANSI、1987年よりISOで標準化が行われています。

なお、当初SQLは『Structured Query Language=構造化問い合わせ言語』の略と言われていましたが、標準化SQLでは『SQLは何の略でもない』とされています。

データ定義言語(DDL=Data Definition Language)

データ定義言語とは、テーブルの作成・削除など、データベースの構造を定義するためのデータベース言語です。

主なDDLには次のようなものがあります。

CREATE

新たにテーブルやビューなどを作成する。

DROP

存在するテーブルやビューなどを削除する。

ALTER

存在するテーブルやビューなどに変更を加える。

データ操作言語(DML=Data Manipulation Language)

データ操作言語とは、データベースに対してデータの新規登録・検索・更新・削除を行うためのデータベース言語です。

主なDMLには次のようなものがあります。

INSERT INTO

データを新規登録する。

SELECT

データを検索する。

UPDATE

データを更新する。

DELETE

データを削除する。

データ制御言語(DCL=Data Control Language)

データ制御言語とは、データに対するアクセス制御を行うためのデータベース言語です。情報処理試験のIT共通知識体系の分類ではDDLの中に含まれています。

主なDCLには次のようなものがあります。

GRANT

データベースユーザーに対してアクセス権限を付与する。

REVOKE

データベースユーザーからアクセス権限を剥奪する。

SQLの基本文法

予約語と識別子

SQLには、SELECT、CREATEなどのような、意味の決まった単語があります。これを『予約語(reserved word)』といいます。予約語は基本的に英単語由来で、半角英文字で記述します。大文字小文字は区別されません。

データベース名、テーブル名、カラム名など、ユーザが付ける名前を『識別子(identifier)』といいます。識別子に使える文字種はDBMSによって異なります。MySQLの場合はASCII(0x00)とASCII(0xFF)以外のすべての文字が使えますが、古いシステムとの互換性も考慮して半角英数字および『 _ (アンダースコア)』のみの使用にしておくのが安全です。また、そのままでは予約語を識別子として使うことはできません。

識別子に特殊文字を使用する場合には、『`(バッククォート)』で囲みます。

文と句・節

予約語や識別子を組み合わせて、1つの処理を表したものを『文(statement)』といいます。文の最後には『;(セミコロン)』を付け、次の文と区切ります。文の中にはさらに、特定の予約語によって表される『句(clause)』または『』が存在します。

予約語や識別子など各語の間は空白文字(半角空白、タブ文字、改行文字)で区切ります。カッコやカンマやシングルクォーテーションで区切られる場合もあります。空白文字が複数連続して記述されていても、半角空白1文字だけの場合と意味は同じです。つまりSQLを記述する場合には、見やすいように自由に字下げ(インデント)や改行を行うことができます。

定数

文の中で数値型および論理型以外の定数(文字列、日付、時刻など)を扱うときは『 ’(シングルクォーテーション)』で囲みます。数値型および論理型の場合はシングルクォーテーションは不要です。

NULL

NULL は『データが存在しない』状態を表します。『数値が0』や『空文字列』ではなく、そもそもデータが定義されていない状態です。

コメント

タイトルとURLをコピーしました