1. DDL(データ定義言語)の基本操作
データベースやテーブルの構造を定義・変更するためのコマンド
-- データベースの作成
CREATE DATABASE school_system
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- データベース選択
USE school_system;
-- テーブルの作成
CREATE TABLE learners (
student_id INT PRIMARY KEY NOT NULL,
full_name VARCHAR(30) NOT NULL,
birth_year YEAR NOT NULL,
contact_number VARCHAR(15),
gender ENUM('male', 'female', 'other') NOT NULL DEFAULT 'male'
);
-- テーブル構造の確認
DESC learners;
-- テーブル名の変更
ALTER TABLE learners RENAME TO pupils;
-- カラム追加(末尾)
ALTER TABLE pupils ADD emergency_contact VARCHAR(15) NOT NULL;
-- カラム追加(先頭)
ALTER TABLE pupils DROP emergency_contact;
ALTER TABLE pupils ADD emergency_contact VARCHAR(15) NOT NULL FIRST;
-- カラム追加(特定カラムの後)
ALTER TABLE pupils DROP emergency_contact;
ALTER TABLE pupils ADD emergency_contact VARCHAR(15) NOT NULL AFTER birth_year;
-- カラム定義の変更
ALTER TABLE pupils MODIFY full_name CHAR(30) NOT NULL;
2. DML(データ操作言語)の基本操作
テーブルに格納されたデータを操作するためのコマンド
-- 単一行挿入
INSERT INTO pupils (student_id, full_name, birth_year, contact_number, gender)
VALUES (1001, '山田太郎', 2005, '080-1234-5678', 'male');
-- 自動順序挿入
INSERT INTO pupils VALUES
(1002, '佐藤花子', 2004, '090-8765-4321', 'female');
-- 指定カラム挿入
INSERT INTO pupils (student_id, full_name, birth_year, contact_number)
VALUES (1003, '鈴木一郎', 2006, '070-5555-6666');
-- 複数行挿入
INSERT INTO pupils VALUES
(1004, '高橋美咲', 2003, '080-9876-5432', 'female'),
(1005, '中村健二', 2005, '090-3333-4444', 'male');
-- データ更新
UPDATE pupils SET birth_year = 2004 WHERE full_name = '高橋美咲';
UPDATE pupils SET contact_number = '080-1111-2222' WHERE full_name = '山田太郎';
-- 特定レコード削除
DELETE FROM pupils WHERE student_id = 1005;
-- 全データ削除
DELETE FROM pupils;
3. DCL(データ制御言語)の基本操作
ユーザ権限の管理を行うためのコマンド
-- ユーザ作成(MySQL 8.0+)
CREATE USER 'teacher'@'%' IDENTIFIED BY 'secure_password123';
-- 権限付与
GRANT ALL PRIVILEGES ON school_system.* TO 'teacher'@'%';
-- 特定ホストへのSELECT権限付与
GRANT SELECT ON school_system.* TO 'guest'@'192.168.1.100' IDENTIFIED BY 'readonly_pass';
-- 権限確認
SHOW GRANTS FOR 'teacher'@'%';
-- 権限取り消し
REVOKE SELECT ON school_system.* FROM 'guest'@'192.168.1.100';
-- ユーザ一覧表示
SELECT User, Host FROM mysql.user;
4. DQL(データ照会言語)の基本構文
データの検索と集計を行うためのクエリ
SELECT
full_name,
birth_year,
contact_number
FROM
pupils
WHERE
gender = 'female'
AND birth_year > 2003
ORDER BY
birth_year DESC
GROUP BY
gender;
5. 常用コマンド一覧
DDL関連
- SHOW TABLES; -- テーブル一覧表示
- SHOW DATABASES; -- データベース一覧表示
- CREATE DATABASE コマンドによるデータベース作成
- CREATE TABLE コマンドによるテーブル構造定義
- ALTER DATABASE による文字セット変更
- ALTER TABLE による構造変更(リネーム、カラム追加・削除・変更)
DML関連
- INSERT INTO によるデータ挿入
- UPDATE によるデータ更新
- DELETE によるデータ削除
DCL関連
- GRANT による権限付与
- REVOKE による権限取り消し
- SHOW GRANTS による権限確認
基本クエリ
- SELECT 文によるデータ抽出
- WHERE 条件指定
- ORDER BY によるソート
- GROUP BY による集計