◆ SQLとは
SQL(Structured Query Language)とは、RDB(リレーショナルデータベース)を操作するための言語。
リレーショナルデータベースは現在広く用いられているデータベースの方式であり、データはテーブル表に
格納されます。テーブルは列(フィールド)と行(レコード)から構成して、テーブルのデータが関連付け
られます。下図は社員テーブルの「支店ID」と支店テーブルの「支店ID」の列の関連付け(リレーショナル)
SQLは大きく分けて、DDL、DML、DCLの3種類から構成されます。DMLには、SELECT(データの選択)
INSERT(追加)、UPDATE(更新)、DELETE(削除)等があります。以降はDMLにフォーカスして解説。
種類 | 和訳 | 説明 |
DDL ( Data Definition Language ) | データ定義言語 | データベースやテーブル作成時に使用 |
DML ( Data Manipulation Language ) | データ操作言語 | データ操作時に使用 |
DCL ( Data Control Language ) | データ制御言語 | トランザクション制御時に使用 |
リレーショナルデータベースの管理システムをRDBMS(Relational DataBase Management System)といい、
代表的なオープンソフトウェアにMySQL、商用製品にはOracle Database DB2、MS SQL Serverがあります。
◆ SQL – SELECT
データベースからデータを抽出するにはSELECT文というSQLの命令を使用します。構文は以下です。
◆ 構文 : SELECT 列名 FROM テーブル名 ;
◆ 実行例 : employeeテーブルから「 name 」列の取り出し
> SELECT name FROM employee; |
◆ 実行例 : employeeテーブルから「id」と「name」列の取り出し
> SELECT id,name FROM employee; |
◆ 実行例 : employeeテーブルから全ての列の取り出し
> SELECT * FROM employee; |
SELECT文でデータを抽出する際に以降で紹介。
・ WHERE
・ ORDER BY
・ GROUP BY
上記を使用することで、検索条件を指定しデータを抽出したり検索結果をソートして表示したり、指定した列について、グループ化して表示させられます。以降で、これら3つを詳細を解説していきます。
◇ WHERE
⇒ データを抽出する際に、特定の条件を満たしたものだけを取得するためにはWHEREを併用します。
◆ 構文 : SELECT 列名 FROM テーブル名 WHERE 検索条件;
◆ 実行例 : employeeテーブルから branchid が 20 である「 id と name列 」の取り出し
> SELECT id,name FROM employee WHERE branchid = 20; |
◇ ORDER BY
⇒ データを抽出する際に、検索結果をソートして表示するためにはORDER BYを併用します。
◆ 構文 : SELECT 列名 FROM テーブル名 ORDER BY 列名;
◆ 実行例 : employeeテーブルから「 salary列 」を昇順にソートして、全ての列の取り出し
> SELECT * FROM employee ORDER BY salary; |
◇ GROUP BY
⇒ データをグループ化し計算した上で抽出する際にはGROUP BYを併用します。
◆ 構文 : SELECT 列名 FROM テーブル名 GROUP BY グループ化する列名;
◆ 実行例 : employeeテーブルで「 branchid 列 」をグループ化して抽出し、salary の合計を算出。
> SELECT branchid, SUM(salary) FROM employee GROUP BY branchid; |
上記のSUMはSQLで使用する関数です。グループ化したデータの処理を行える関数には、その他には
MAX(最大値)、MIN(最小値)、COUNT(データ数)などがあります。
◆ SQL – INSERT
データベースにデータを追加するにはINSERT文というSQLの命令を使用します。構文は以下です。
◆ 構文 : INSERT INTO テーブル名 (列名) VALUES (値);
◆ 実行例 : employeeテーブルに、以下の新規レコードの追加
> INSERT INTO employee (id, name, branchid) VALUES (‘6′,’Ken’,’30’); |
◆ SQL – UPDATE
データベースのレコードを追加するには、UPDATE文というSQLの命令を使用します。構文は以下です。
なお、レコードの更新対象はWHERE句の条件式を満たすレコードとなります。
◆ 構文 : UPDATE テーブル名 SET 列名=値 WHERE 条件式;
◆ 実行例 : employeeテーブルにおいて、name列の値が「 Mike 」のレコードで branchid列を「 20 」に更新
> UPDATE employee SET branchid=’20’ WHERE name=’Mike’; |
◆ SQL – DELETE
データベースのレコードを削除するには、DELETE文というSQLの命令を使用します。構文は以下です。
なお、レコードの削除対象はWHEREの条件式を満たすレコードが対象(未指定なら全レコードが対象)
◆ 構文 : DELETE FROM テーブル名 WHERE 条件式;
◆ 実行例 : employeeテーブルにおいて、name列の値が「 Tom 」のレコードを削除
> DELETE FROM employee WHERE name=’Tom’; |
◆ SQL – SELECT with JOIN
データベースのデータは、複数のテーブルに格納されることが多いですが、データの抽出時にそれらの
データをまとめて取得したい場合、複数のデータのテーブルを結合できるINNER JOIN句を使用します。
> SELECT aaa.name, bbb.branch FROM aaa INNER JOIN bbb ON aaa.branchid=bbb.branchid; |