MySQL におけるデータ操作の基礎:CRUD 構文の実践

CRUD 操作の基本概念

データベース開発において、CRUD は Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)の 4 つの基本操作を指す略称です。これらはデータ持久化層における最も頻繁に実行される処理であり、SQL 構文の核心を成します。

環境設定とテーブル定義

以下の例では、従業員情報を管理するためのシンプルなスキーマを用意します。主鍵は id とし、自動増分設定を適用しています。

employees テーブル

CREATE TABLE `employees` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `full_name` varchar(255) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `age` int(11) NOT NULL,
  `emp_code` varchar(20) NOT NULL COMMENT '従業員コード',
  `dept_code` varchar(20) DEFAULT NULL COMMENT '部署コード',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

初期データの投入

INSERT INTO `employees` VALUES 
(1, 'Tanaka', 'Male', 30, 'E001', 'D10'),
(2, 'Suzuki', 'Female', 28, 'E002', 'D10'),
(3, 'Sato', 'Male', 35, 'E003', 'D20'),
(4, 'Yamada', 'Female', 25, 'E004', 'D20');

データ作成(Insert)

新しいレコードを追加するには、主に 2 つの構文パターンが利用されます。

標準的な挿入構文

カラム名を明示し、対応する値を指定します。

INSERT INTO employees (full_name, gender, age, emp_code, dept_code) 
VALUES ('Kato', 'Male', 29, 'E005', 'D30');

SET 句を用いた構文

MySQL 特有の構文で、カラムと値を直接紐付けて記述できます。

INSERT INTO employees 
SET full_name = 'Ito', gender = 'Female', age = 32, emp_code = 'E006', dept_code = 'D30';

複数レコードの同時挿入

VALUES 句にカンマ区切りで複数の値セットを記述することで、一度に多くのデータを追加できます。

INSERT INTO employees (full_name, gender, age, emp_code, dept_code) 
VALUES 
('Watanabe', 'Male', 40, 'E007', 'D10'),
('Kimura', 'Female', 27, 'E008', 'D20');

※主鍵 id を指定しない場合、自動増分値が割り当てられます。文字列型は単引号で囲む必要があります。

データ更新(Update)

既存のレコードを変更するには UPDATE 文を使用します。特定の行のみを対象とする場合は WHERE 句が必須です。

特定行の更新

UPDATE employees 
SET full_name = 'Nakamura', age = 31 
WHERE id = 1;

この場合、id が 1 のレコードのみが変更され、他の行やカラムには影響しません。

全行の更新(危険性)

UPDATE employees 
SET dept_code = 'D99';

WHERE 句を省略すると、テーブル内のすべてのレコードが対象となります。意図しないデータ破壊を防ぐため、条件指定には細心の注意を払ってください。

データ削除(Delete)

レコードを削除する処理です。条件付き削除とテーブル全体のクリアには異なるアプローチがあります。

条件付き削除

DELETE FROM employees 
WHERE id = 5;

テーブルのクリアと削除

  • DELETE FROM 表名:レコードを行単位で削除します。トリガーが発火し、トランザクションログに記録されます。
  • TRUNCATE TABLE 表名:テーブルを高速に空にします。構造は維持され、自動増分カウンタもリセットされます。
  • DROP TABLE 表名:テーブル構造ごと完全に削除します。元に戻すことはできません。

データ読み取り(Select)

データの検索は SQL で最も頻繁に使用される操作です。

全データの取得

SELECT * FROM employees;

主鍵による検索

SELECT * FROM employees 
WHERE id = 2;

複雑な検索条件や結合查詢については、より高度な SELECT 構文を学ぶ必要があります。

タグ: MySQL crud sql-insert sql-update sql-delete

5月19日 16:32 投稿