format_list_bulleted
【SQL】INSERT, UPDATE, DELETE文などのデータを操作するSQL文について解説
最終更新日時:2023-03-19 12:39:59



SQLは、リレーショナルデータベースにアクセスするための言語であり、DML文はその中でも、データを操作するためのコマンドです。今回は、DML文に関する技術ブログを作成いたします。


DML文とは

DML文とは、データベース内のデータを操作するために使用されるSQLのコマンドです。DML文は、SELECT、INSERT、UPDATE、DELETEの3つのコマンドに分類されます。

SELECT

SELECT文は、データベースからデータを取得するために使用されます。この文を使用することで、テーブル内の特定の列や行を選択することができます。例えば、以下のようなSQL文を使用して、employeesテーブルから名前とメールアドレスの列を取得することができます。

タイトル:sample.sql

SELECT name, email FROM employees;

INSERT

INSERT文は、データベースに新しいデータを追加するために使用されます。この文を使用することで、テーブルに新しい行を挿入することができます。例えば、以下のようなSQL文を使用して、employeesテーブルに新しい行を追加することができます。

タイトル:sample.sql

INSERT INTO employees (name, email) VALUES ('John Doe', 'johndoe@email.com');

また、SQLのINSERT文とSELECT文を組み合わせることで、1つのテーブルから別のテーブルにデータを移動することができます。以下に、INSERT文とSELECT文を組み合わせて使用する方法を説明します。

基本的なINSERT文とSELECT文を組み合わせた構文は以下の通りです。

INSERT INTO テーブル1 (1,2, ...) SELECT 列1,2, ... FROM テーブル2 WHERE 条件;

ここで、INSERT INTOはINSERT文を開始するキーワードで、テーブル1はデータを追加するテーブルの名前、列1, 列2, ...は新しい行の列名を指定します。SELECT文の後には、移動するデータの取得元となるテーブル2と、WHERE句を使用して取得するデータを指定します。

例えば、以下のようなcustomersテーブルがあるとします。

+----+---------+-------------------------+
| id | name    | email                   |
+----+---------+-------------------------+
|  1 | John    | john@email.com          |
|  2 | Sarah   | sarah@email.com         |
|  3 | Michael | michael@example.com    |
+----+---------+-------------------------+

このテーブルから、id=2の行を新しいテーブルに追加するには、以下のようなINSERT文とSELECT文を組み合わせたSQL文を使用します。

INSERT INTO new_customers (id, name, email)
SELECT id, name, email FROM customers WHERE id=2;

これにより、new_customersテーブルにid=2の行が追加されます。

INSERT文とSELECT文を組み合わせることで、データを簡単に移動することができます。ただし、注意点としては、移動するデータが適切であることを確認することが重要です。また、データベースの権限を持っていることを確認し、適切なテーブルにデータを追加することも重要です。


UPDATE

UPDATE文は、既存のデータを変更するために使用されます。この文を使用することで、テーブル内の行の値を更新することができます。例えば、以下のようなSQL文を使用して、employeesテーブル内の特定の行の名前を更新することができます。

タイトル:sample.sql

UPDATE employees SET emp_salary = 6000 WHERE emp_id = 1001;

DELETE

DELETE文は、データベースからデータを削除するために使用されます。この文を使用することで、テーブル内の行を削除することができます。例えば、以下のようなSQL文を使用して、employeesテーブル内の特定の行を削除することができます。

タイトル:sample.sql

DELETE FROM employees WHERE emp_id = 1001;


以上が、SQLのDML文に関する技術的な情報です。これらの文を理解し、適切に使用することで、データベース内のデータを簡単に操作することができます。