SQL(Structured Query Language)は、データベースとやり取りするために使用されるプログラミング言語であり、関係データベース管理システム(RDBMS)におけるデータの管理、検索、操作に特化しています。この言語は、データベースを構築、維持、操作するために不可欠なツールです。本記事では、SQLの基本から応用に至るまでを完全かつ包括的に解説します。これを学ぶことで、データベースの設計やデータ操作のスキルを高めることができます。
1. SQLの基本構造
SQLは宣言型言語であり、目的(何をしたいか)を記述し、その方法をシステムに任せる形で動作します。SQL文は基本的に「クエリ(問い合わせ)」を記述するために使用され、一般的なSQL文には以下の種類があります:

-
SELECT: データの検索(取得)
-
INSERT: データの挿入
-
UPDATE: データの更新
-
DELETE: データの削除
-
CREATE: 新しいテーブルやデータベースの作成
-
DROP: テーブルやデータベースの削除
-
ALTER: テーブルの構造の変更
1.1 SELECT文
SELECT
文は、データベースから情報を取得するために使用されます。例えば、あるテーブルから特定の列を取得する場合、次のように記述します。
sqlSELECT column1, column2 FROM table_name;
ここで、column1
と column2
は取得したい列の名前、table_name
はデータを取得する対象のテーブル名です。もし全ての列を取得したい場合は、次のように *
を使用します。
sqlSELECT * FROM table_name;
1.2 WHERE句
WHERE
句は、指定した条件に一致するデータのみを取得するために使用します。例えば、年齢が30以上の従業員のデータを取得するには次のように記述します。
sqlSELECT * FROM employees WHERE age >= 30;
1.3 ORDER BY句
ORDER BY
句を使用することで、結果を昇順または降順に並べ替えることができます。例えば、名前のアルファベット順に並べ替える場合は次のようにします。
sqlSELECT * FROM employees ORDER BY name ASC;
ASC
は昇順、DESC
は降順を意味します。
2. SQLのデータ操作
SQLではデータの挿入、更新、削除が可能です。これらを行うための基本的な文法について説明します。
2.1 INSERT文
INSERT INTO
文を使うことで、テーブルに新しい行を挿入することができます。例えば、従業員テーブルに新しいデータを追加するには次のように記述します。
sqlINSERT INTO employees (name, age, position) VALUES ('佐藤', 25, 'エンジニア');
2.2 UPDATE文
UPDATE
文を使用して、既存のデータを変更できます。例えば、従業員の年齢を変更する場合は次のように記述します。
sqlUPDATE employees SET age = 26 WHERE name = '佐藤';
2.3 DELETE文
DELETE
文は、指定した条件に一致する行を削除します。例えば、特定の従業員のデータを削除するには次のようにします。
sqlDELETE FROM employees WHERE name = '佐藤';
3. テーブルの作成と管理
SQLでは、データベース内に新しいテーブルを作成することができます。テーブルは、行(レコード)と列(フィールド)から構成されるデータの集合です。
3.1 CREATE TABLE文
CREATE TABLE
文を使用して、新しいテーブルを作成できます。例えば、従業員情報を格納するテーブルを作成する場合、次のように記述します。
sqlCREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
position VARCHAR(100)
);
ここでは、id
は整数型の主キーであり、name
とposition
は文字列型、age
は整数型です。
3.2 ALTER TABLE文
ALTER TABLE
文を使用することで、既存のテーブルの構造を変更できます。例えば、従業員テーブルに新しい列を追加する場合、次のように記述します。
sqlALTER TABLE employees ADD salary DECIMAL(10, 2);
これにより、従業員テーブルにsalary
という新しい列が追加されます。
3.3 DROP TABLE文
DROP TABLE
文を使うと、テーブルを完全に削除することができます。例えば、employees
テーブルを削除する場合は次のように記述します。
sqlDROP TABLE employees;
4. SQLの集計関数
SQLには、データを集計するための便利な関数が多数用意されています。これらを使用することで、データの集計、計算、分析が可能になります。
4.1 COUNT関数
COUNT
関数は、指定した条件に一致する行の数を取得します。
sqlSELECT COUNT(*) FROM employees WHERE age > 30;
4.2 SUM関数
SUM
関数は、指定した列の合計値を計算します。
sqlSELECT SUM(salary) FROM employees;
4.3 AVG関数
AVG
関数は、指定した列の平均値を計算します。
sqlSELECT AVG(age) FROM employees;
4.4 MAXおよびMIN関数
MAX
およびMIN
関数は、指定した列の最大値と最小値を求めます。
sqlSELECT MAX(salary), MIN(salary) FROM employees;
5. JOINによるテーブルの結合
SQLでは、複数のテーブルを結合して、関連するデータを一度に取得することができます。これにはJOIN
句を使用します。
5.1 INNER JOIN
INNER JOIN
は、2つのテーブルで共通するデータのみを結合して取得します。例えば、従業員テーブルと部署テーブルを結合する場合は次のように記述します。
sqlSELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
5.2 LEFT JOIN
LEFT JOIN
は、左側のテーブルの全ての行と、右側のテーブルで一致する行を取得します。一致しない場合、右側のテーブルの列にはNULLが表示されます。
sqlSELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
6. サブクエリ
サブクエリとは、クエリ内で別のクエリを使用することです。サブクエリを使うことで、複雑な条件や計算を処理することができます。
6.1 サブクエリの基本
例えば、給与が平均より高い従業員の情報を取得する場合、次のように記述します。
sqlSELECT * FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
結論
SQLはデータベース管理の基盤であり、データの検索、挿入、更新、削除などを効率的に行うために必要不可欠な技術です。SQLを理解し、使いこなすことで、データベースの設計から運用までの幅広い分野で力を発揮できるようになります。さらに、SQLを活用して複雑なデータの分析や集計を行うことができ、ビジネスにおける意思決定を支える重要なツールとなります。