SQL(Structured Query Language)は、データベース管理システム(DBMS)でデータを操作するための標準的な言語です。SQLは、データベース内の情報を取得、操作、更新、削除するために使用される非常に強力なツールです。この記事では、SQLの基本的な構文、機能、使用方法を包括的に解説します。
1. SQLの基本構文
SQLは非常にシンプルで直感的な構文を持っています。SQLの基本的な命令は以下の通りです:

-
SELECT: データの取得
-
INSERT: データの挿入
-
UPDATE: データの更新
-
DELETE: データの削除
-
CREATE: テーブルやビューなどのオブジェクトの作成
-
ALTER: テーブルの構造変更
-
DROP: テーブルやビューなどのオブジェクトの削除
これらの命令は、SQLを使用してデータベース内で基本的な操作を行うための根本的なコマンドです。
2. SELECT文
SELECT文は、データベースからデータを取得するために最もよく使われる命令です。基本的な構文は次のようになります:
sqlSELECT 列名 FROM テーブル名;
例えば、employees
というテーブルからすべてのデータを取得したい場合、次のように記述します:
sqlSELECT * FROM employees;
ここで*
は、すべての列を選択することを意味します。また、特定の列だけを取得したい場合は、列名を指定します:
sqlSELECT first_name, last_name FROM employees;
WHERE句
WHERE
句は、データをフィルタリングするために使用します。特定の条件に一致するデータのみを選択できます。
sqlSELECT first_name, last_name FROM employees WHERE department = 'Sales';
このクエリは、department
列が'Sales'
の従業員のfirst_name
とlast_name
を取得します。
ORDER BY句
データを並べ替えるためには、ORDER BY
句を使用します。デフォルトでは昇順(ASC)で並べ替えますが、降順(DESC)にもできます。
sqlSELECT first_name, last_name FROM employees ORDER BY last_name DESC;
このクエリは、last_name
で降順に並べた従業員の名前を取得します。
3. INSERT文
データをテーブルに挿入するには、INSERT INTO
文を使用します。基本的な構文は次の通りです:
sqlINSERT INTO テーブル名 (列1, 列2, 列3) VALUES (値1, 値2, 値3);
例えば、employees
テーブルに新しい従業員のデータを挿入する場合:
sqlINSERT INTO employees (first_name, last_name, department) VALUES ('John', 'Doe', 'Marketing');
4. UPDATE文
データを更新するためには、UPDATE
文を使用します。特定の条件に一致する行のデータを更新できます。
sqlUPDATE テーブル名 SET 列1 = 値1, 列2 = 値2 WHERE 条件;
例えば、employees
テーブルでdepartment
が'Sales'
の従業員のlast_name
を'Smith'
に更新する場合:
sqlUPDATE employees SET last_name = 'Smith' WHERE department = 'Sales';
5. DELETE文
データを削除するためには、DELETE
文を使用します。特定の条件に一致する行を削除できます。
sqlDELETE FROM テーブル名 WHERE 条件;
例えば、employees
テーブルからdepartment
が'HR'
の従業員を削除する場合:
sqlDELETE FROM employees WHERE department = 'HR';
6. CREATE文
新しいテーブルやその他のオブジェクトを作成するには、CREATE
文を使用します。例えば、新しい従業員テーブルを作成するには次のように記述します:
sqlCREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50)
);
このクエリは、employees
という名前のテーブルを作成し、従業員ID、名前、部門の情報を格納する列を定義します。
7. ALTER文
既存のテーブルの構造を変更するには、ALTER
文を使用します。例えば、employees
テーブルにemail
列を追加する場合:
sqlALTER TABLE employees ADD email VARCHAR(100);
8. DROP文
テーブルを削除するには、DROP
文を使用します。例えば、employees
テーブルを削除する場合:
sqlDROP TABLE employees;
9. SQLのデータ型
SQLでは、テーブルを作成する際に、各列のデータ型を指定する必要があります。一般的なデータ型には次のようなものがあります:
-
INT
: 整数型 -
VARCHAR(n)
: 可変長の文字列型(nは最大文字数) -
DATE
: 日付型 -
FLOAT
: 浮動小数点型
10. 集計関数
SQLでは、データを集計するためにいくつかの関数を使用できます。代表的な集計関数には以下があります:
-
COUNT(): 行数をカウント
-
SUM(): 合計
-
AVG(): 平均
-
MAX(): 最大値
-
MIN(): 最小値
例えば、employees
テーブルの従業員数をカウントする場合:
sqlSELECT COUNT(*) FROM employees;
11. JOIN操作
複数のテーブルからデータを結合するためには、JOIN
を使用します。代表的なJOIN
には以下があります:
-
INNER JOIN: 両方のテーブルに存在するデータを結合
-
LEFT JOIN: 左のテーブルに存在するデータと、右のテーブルの一致するデータを結合
-
RIGHT JOIN: 右のテーブルに存在するデータと、左のテーブルの一致するデータを結合
例えば、employees
テーブルとdepartments
テーブルを結合して、従業員とその部門を取得する場合:
sqlSELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
12. トランザクション
SQLでは、データの整合性を保つためにトランザクションを使用します。トランザクションは一連のSQL操作をまとめて処理し、途中でエラーが発生した場合にすべてを元に戻す(ロールバック)ことができます。主なトランザクション制御コマンドには以下があります:
-
BEGIN TRANSACTION: トランザクションの開始
-
COMMIT: トランザクションの確定
-
ROLLBACK: トランザクションの取り消し
sqlBEGIN TRANSACTION;
UPDATE employees SET department = 'Sales' WHERE department = 'Marketing';
COMMIT;
13. サブクエリ
サブクエリとは、別のSQLクエリの中に含まれるSQLクエリのことです。例えば、次のようにサブクエリを使って、特定の部門に所属する従業員を選択できます:
sqlSELECT first_name, last_name
FROM employees
WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');
まとめ
SQLは、データベースを操作するために欠かせない言語です。データの取得、挿入、更新、削除を行う基本的な構文に加えて、複雑な操作を可能にするさまざまな機能(集計関数、JOIN、サブクエリなど)も提供されています。これらの基本を理解することで、より効率的にデータベースを管理し、必要な情報を迅速に取得することができるようになります。