MySQLコマンドのチートシート
最終更新日:2024年3月30日
MySQLコマンドを用途別に「新規作成」「追加」「取得」「変更」「削除」「確認」に分けて整理して一覧にしました。
目次
新規作成・追加
データベース作成
CREATE DATABASE <データベース名>;
使用するデータベースの指定
USE <データベース名>;
テーブル新規作成
CREATE TABLE <テーブル名>(id INT, name VARCHAR(40));
テーブルのコピー(カラム名と型のみ、レコード無し)
CREATE TABLE <新しいテーブル名> LIKE <テーブル名>;
レコードを追加
INSERT INTO <テーブル名> (<カラム名>,...) VALUES(<値>,...);
他のテーブルからレコードを追加
INSERT INTO <テーブル名> (<カラム名>,...) SELECT <カラム名>, <カラム名>,...; FROM <別のテーブル名> WHERE ...;
カラム追加[あるコラムの後,レコードの先頭]
ALTER TABLE <テーブル名> ADD <新しいカラム名> <定義> [AFTER, FIRST] <カラム名>;
新規ユーザー作成
CREATE USER <ユーザー名>@localhost IDENTIFIED BY '<パスワード>';FLUSH PRIVILEGES;
すべての権限を付与
GRANT ALL ON *.* TO <ユーザー名>@localhost;FLUSH PRIVILEGES;
特定のDBだけすべての権限を付与
GRANT ALL ON `<データベース名>`.* TO `<ユーザー名>`@`localhost`;
取得
カラムを指定してデータを取得
SELECT <カラム名>,... FROM <テーブル名>;
重複したデータを除外して取得
SELECT DISTINCT <カラム名>,... FROM <テーブル名>;
取得の時だけ違うカラム名で取得
SELECT <カラム名> AS <別のカラム名> FROM <テーブル名>;
変更
フィールドの値を変更
UPDATE <テーブル名> SET <カラム名> = "<新しい値>" WHERE ...;
フィールドのすべての値を変更
※ WHEREを省くと<カラム名>のすべての値が同じに書き換えられるから注意。
UPDATE <テーブル名> SET <カラム名> = "<新しい値>";
カラム名を変更
ALTER TABLE <テーブル名> RENAME COLUMN <カラム名> TO <新しいカラム名>;
カラムの定義を変更
ALTER TABLE <テーブル名> CHANGE <カラム名> <定義>;
カラム名・定義を変更
ALTER TABLE <テーブル名> CHANGE <カラム名> <新しいカラム名> <定義>;
テーブル名を変更
※ データベース名を変更する公式のコマンドは無い。自力でデータを移動するらしい。
ALTER TABLE <テーブル名> RENAME <新しいテーブル名>;
削除
レコードを削除
# idが1のレコードを削除
DELETE FROM <テーブル名> WHERE id = 1;
すべてのレコードを削除
AUTO_INCREMENTが付与する番号は継続される。
DELETE FROM <テーブル名>;
すべてのレコードを削除
AUTO_INCREMENTが付与する番号は1からにリセットされる。
TRUNCATE TABLE <テーブル名>;
カラムを削除
ALTER TABLE <テーブル名> DROP <カラム名>;
テーブルを削除
DROP TABLE <テーブル名>;
データベースを削除
DROP DATABASE <データベース名>;
ユーザーを削除
DROP USER <ユーザー名>@localhost;
確認
useされているデータベースの確認
SELECT DATABASE();
テーブルの各カラムのデータ型の確認
SHOW COLUMNS FROM <テーブル名>;
テーブル作成時に実行された内部コマンドを確認
SHOW CREATE TABLE <テーブル名>\G;
テーブルの行数やサイズの確認(不正確らしい)
SHOW TABLE STATUS WHERE name="<テーブル名>"\G;
ユーザー一覧
SELECT USER FROM mysql.user;
ユーザーの権限を確認
SHOW GRANTS FOR <ユーザー名>@localhost;
MySQLの設定値の確認
※ <変数名>はlocal_infileとか。
SHOW VARIABLES LIKE "<変数名>";