【完全版】MySQLコマンド一覧|基本操作からデータ管理までよく使うコマンドを網羅!

データベース・SQL

「MySQLの操作方法がわからない」
「コマンドが多すぎて覚えられない」

そんな悩みを解決するために、MySQLでよく使うコマンドをカテゴリ別に整理しました。

初心者の方から中級者の方まで、必要なときにすぐ確認できるリファレンスとして活用してください。

この記事では、基本的な接続方法からデータ操作、テーブル管理、ユーザー管理まで、実際の開発や運用でよく使うコマンドを厳選して紹介します。

スポンサーリンク

MySQLへの接続とデータベース基本操作

MySQLサーバーに接続する

まずはMySQLサーバーに接続しましょう。

mysql -u ユーザー名 -p

実行すると、パスワードの入力が求められます。正しく入力すると、MySQLのプロンプトが表示されます。

接続例:

mysql -u root -p
Enter password: ****
mysql>

ホストを指定して接続する

リモートのMySQLサーバーに接続する場合:

mysql -h ホスト名 -u ユーザー名 -p

データベースの基本操作

コマンド説明
SHOW DATABASES;データベース一覧を表示利用可能なデータベースを確認
CREATE DATABASE データベース名;データベースを作成CREATE DATABASE myapp;
USE データベース名;使用するデータベースを選択USE myapp;
DROP DATABASE データベース名;データベースを削除DROP DATABASE myapp;
SELECT DATABASE();現在選択中のデータベースを確認作業中のデータベース名を表示

重要なポイント:

  • データベースを削除する前は、必ずバックアップを取りましょう
  • USEコマンドでデータベースを選択してから作業を始めます

テーブル操作のコマンド

テーブルの確認と作成

-- テーブル一覧を表示
SHOW TABLES;

-- テーブルの構造を確認
DESCRIBE テーブル名;
-- または
SHOW COLUMNS FROM テーブル名;

-- テーブルを作成
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

テーブルの変更と削除

コマンド説明
ALTER TABLE テーブル名 ADD カラム名 データ型;カラムを追加ALTER TABLE users ADD phone VARCHAR(20);
ALTER TABLE テーブル名 DROP カラム名;カラムを削除ALTER TABLE users DROP phone;
ALTER TABLE テーブル名 MODIFY カラム名 新データ型;カラムの型を変更ALTER TABLE users MODIFY name VARCHAR(150);
DROP TABLE テーブル名;テーブルを削除DROP TABLE users;
TRUNCATE TABLE テーブル名;テーブルのデータをすべて削除TRUNCATE TABLE users;

テーブル作成のベストプラクティス:

  • PRIMARY KEYは必ず設定する
  • NOT NULLやUNIQUE制約を適切に使う
  • 作成日時や更新日時のカラムを含める

データ操作(CRUD)の基本コマンド

データの登録(Create)

-- 1件のデータを挿入
INSERT INTO users (name, email) VALUES ('田中太郎', 'tanaka@example.com');

-- 複数件のデータを一度に挿入
INSERT INTO users (name, email) VALUES 
('佐藤花子', 'sato@example.com'),
('鈴木一郎', 'suzuki@example.com');

-- すべてのカラムに値を挿入(カラム名省略可能)
INSERT INTO users VALUES (NULL, '山田次郎', 'yamada@example.com', NOW());

データの取得(Read)

-- すべてのデータを取得
SELECT * FROM users;

-- 特定のカラムのみ取得
SELECT name, email FROM users;

-- 条件を指定してデータを取得
SELECT * FROM users WHERE name = '田中太郎';

-- 複数の条件で検索
SELECT * FROM users WHERE name LIKE '%田中%' AND email IS NOT NULL;

-- データを並べ替えて取得
SELECT * FROM users ORDER BY created_at DESC;

-- 件数を制限して取得
SELECT * FROM users LIMIT 10;

-- データの件数を取得
SELECT COUNT(*) FROM users;

データの更新(Update)

-- 特定の条件でデータを更新
UPDATE users SET email = 'new_email@example.com' WHERE id = 1;

-- 複数のカラムを同時に更新
UPDATE users SET name = '田中花子', email = 'hanako@example.com' WHERE id = 1;

データの削除(Delete)

-- 条件を指定してデータを削除
DELETE FROM users WHERE id = 1;

-- 特定の条件でまとめて削除
DELETE FROM users WHERE created_at < '2024-01-01';

⚠️ 重要な注意点:

  • UPDATEDELETEでは必ずWHERE句を使用する
  • WHERE句なしで実行すると全データが対象になってしまいます

システム情報の取得コマンド

MySQLの状態確認

-- MySQLのバージョンを確認
SELECT VERSION();

-- 現在の日時を取得
SELECT NOW();

-- 現在のユーザーを確認
SELECT USER();

-- 実行中のプロセス一覧
SHOW PROCESSLIST;

-- データベースのサイズを確認
SELECT 
    table_schema AS 'データベース名',
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'サイズ(MB)'
FROM information_schema.tables 
GROUP BY table_schema;

サーバーの設定と状態

コマンド説明用途
SHOW STATUS;サーバーの状態情報を表示パフォーマンス監視
SHOW VARIABLES;システム変数の設定値を表示設定確認
SHOW ENGINES;利用可能なストレージエンジンを表示エンジン確認
SHOW GRANTS FOR ユーザー名@ホスト;ユーザーの権限を確認権限監査

ユーザー管理と権限設定

ユーザーの作成と削除

-- 新しいユーザーを作成
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password123';

-- リモートアクセス可能なユーザーを作成
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password123';

-- ユーザーを削除
DROP USER 'username'@'localhost';

-- 既存ユーザーのパスワードを変更
ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';

権限の付与と削除

-- すべての権限を付与
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

-- 特定の権限のみ付与
GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'username'@'localhost';

-- 権限を削除
REVOKE INSERT, UPDATE ON database_name.* FROM 'username'@'localhost';

-- 権限設定を反映(重要!)
FLUSH PRIVILEGES;

よく使う権限の種類

権限説明用途
SELECTデータの参照読み取り専用ユーザー
INSERTデータの挿入アプリケーション用
UPDATEデータの更新アプリケーション用
DELETEデータの削除管理者用
CREATEテーブル・データベース作成開発者用
DROPテーブル・データベース削除管理者用
ALL PRIVILEGESすべての権限管理者用

便利なコマンドとショートカット

ファイル操作とバックアップ

-- SQLファイルを実行
SOURCE /path/to/file.sql;

-- テーブルのデータをCSVファイルに出力
SELECT * FROM users 
INTO OUTFILE '/tmp/users.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n';

-- CSVファイルからデータを読み込み
LOAD DATA INFILE '/tmp/users.csv' 
INTO TABLE users 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n';

MySQLプロンプトでの便利なコマンド

コマンド説明使用場面
EXIT; または QUIT;MySQLから終了作業完了時
\c実行中のクエリをキャンセル長時間実行の中断
\s接続状態の表示接続情報確認
\h または HELP;ヘルプの表示コマンド確認
\. ファイル名SQLファイルの実行バッチ処理

バックアップとリストア

# データベース全体をバックアップ
mysqldump -u username -p database_name > backup.sql

# 特定のテーブルのみバックアップ
mysqldump -u username -p database_name table_name > table_backup.sql

# バックアップからリストア
mysql -u username -p database_name < backup.sql

実用的なクエリ例

よく使う検索パターン

-- 部分一致検索
SELECT * FROM users WHERE name LIKE '%田中%';

-- 範囲検索
SELECT * FROM orders WHERE order_date BETWEEN '2025-01-01' AND '2025-12-31';

-- NULL値のチェック
SELECT * FROM users WHERE email IS NULL;
SELECT * FROM users WHERE email IS NOT NULL;

-- 複数の値に一致
SELECT * FROM users WHERE id IN (1, 3, 5, 7);

-- 重複を除いて取得
SELECT DISTINCT department FROM employees;

-- グループ化と集計
SELECT department, COUNT(*) FROM employees GROUP BY department;
SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 500000;

JOIN(結合)の基本

-- 内部結合
SELECT u.name, o.total 
FROM users u 
INNER JOIN orders o ON u.id = o.user_id;

-- 左外部結合
SELECT u.name, o.total 
FROM users u 
LEFT JOIN orders o ON u.id = o.user_id;

-- 複数テーブルの結合
SELECT u.name, o.total, p.product_name
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id;

エラー対策と確認方法

よくあるエラーと対処法

エラーメッセージ原因対処法
Access denied認証失敗ユーザー名・パスワードを確認
Unknown databaseデータベースが存在しないSHOW DATABASES;でデータベース名を確認
Table doesn't existテーブルが存在しないSHOW TABLES;でテーブル名を確認
Column not foundカラムが存在しないDESCRIBE テーブル名;でカラム名を確認
Duplicate entry重複データの挿入UNIQUE制約に違反していないか確認

トラブルシューティング

-- 接続中のユーザーと実行中のクエリを確認
SHOW PROCESSLIST;

-- ロックされているテーブルを確認
SHOW OPEN TABLES WHERE In_use > 0;

-- エラーログの確認(MySQLサーバー設定による)
SHOW VARIABLES LIKE 'log_error';

-- 最後に実行したクエリのエラー詳細
SHOW WARNINGS;

まとめ

MySQLを効率的に使うために、最もよく使うコマンドをまとめました。

初心者が最初に覚えるべきコマンド TOP 10

  1. mysql -u username -p – ログイン
  2. SHOW DATABASES; – データベース一覧
  3. USE database_name; – データベース選択
  4. SHOW TABLES; – テーブル一覧
  5. DESCRIBE table_name; – テーブル構造確認
  6. SELECT * FROM table_name; – データ確認
  7. INSERT INTO table_name VALUES (...); – データ挿入
  8. UPDATE table_name SET ... WHERE ...; – データ更新
  9. DELETE FROM table_name WHERE ...; – データ削除
  10. EXIT; – ログアウト

安全にMySQLを使うためのチェックポイント

  • 本番環境では必ずバックアップを取る
  • UPDATEDELETEでは必ずWHERE句を使う
  • 権限は必要最小限に設定する
  • 定期的にログやパフォーマンスを監視する

コメント

タイトルとURLをコピーしました