MySQLコマンドのチートシート
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 "<変数名>";