2 SQL入門(解説)
この章では、SQLの初歩的な事項について説明します。
2.1 リレーショナルデータベースとSQL
2.2 表の定義と削除
2.3 データの入力、検索、更新、削除
なお、SQLの詳しい使用方法については第3章で改めて説明することにします。
2.1 リレーショナルデータベースとSQL
この節では、リレーショナルデータベースの基本概念とSQLの基本事項について説明します。
リレーショナルデータベース(RDB: Relational Database)
リレーショナルデータベースは、データを表の形で管理するデータベースです。表のことをテーブルやリレーションと呼ぶこともあります。表は、商品や社員など、同じ概念に属するデータ集合の単位で作成します。一般に、表にはその内容を表す名前(表名)を付け、必要に応じて複数の表を1つのデータベース中に作成することになります。
表の縦方向のデータの並びを列、横方向の並びを行と呼びます。列のことをカラムや属性、行のことをタプルやレコードと呼ぶこともあります。列には名前(列名)を付けますが、行には名前が付きません。行を識別したい場合には、特定の列を主キーとして定義し、主キーの値によって識別します。以下は、社員に関する表(社員表)の例です。
社員表
社員番号 | 氏名 | 所属 | 生年月日 |
---|---|---|---|
1 | 佐藤未来 | 総務部 | 1960-07-08 |
2 | 鈴木薫 | 技術本部 | 1970-05-05 |
3 | 高橋光 | 営業本部 | 1980-03-02 |
社員表は4つの列と3つの行で構成されています。各列は同じデータ型のデータで構成されており、例えば社員番号列には整数データ、氏名列と所属列には文字列データ、生年月日列には日付データが格納されています。また、各行は個々の社員のデータを表しており、例えば1行目は、社員番号1番、佐藤未来、総務部所属、1960年7月8日生まれの社員を表しています。
SQL
SQL(エスキューエル)は、リレーショナルデータベースの標準言語です。1987年に国際標準が制定され、基本機能はPostgreSQLを含むすべてのリレーショナルデータベースで利用できます。SQLはコマンドとして入力するほかに、一般のプログラミング言語に組み込んで使用することもできます。SQLには機能単位に多数の文(SQL文)が用意されています。一般に1つのSQL文は、複数の句から構成されます。以下は、社員表から社員番号1番の社員の氏名を検索するSQL文(SELECT文)の例です。
SELECT 氏名
FROM 社員表
WHERE 社員番号 = 1
このSELECT文は、SELECT句、FROM句、WHERE句の3つの句を含みます。
SQL文の基本ルール
SQL文には、以下の基本ルールがあります。
- SQL文を構成するSELECT, FROM等の句を指定できる順序は固定であり、変更はできません。
- SELECT, INSERT等のキーワードは半角で記述します。大文字と小文字は区別しません。本書では大文字を使用することにします。
- 表名, 列名等の識別名の先頭文字は英字でなければなりません。2文字目以降は数字も使えます。また、全角文字も英字と同じ扱いになります。
- 数値はそのまま何も付けず、文字列や日付時刻の値は一重引用符(')で前後を囲んで記述します。
- 1つのSQL文を複数行に分けて記述することが可能です。ただし、キーワードの途中で改行できません。
- 文字列中に指定された場合を除き、空白、タブ、改行の各文字は同じスペースの扱いになります。
- コメントは二重ハイフン(--)で始まる文字の並びで、行末まで続きます。実効的にはスペースの扱いになります。