{{outline}} !!ユーザ作成(GRANT以外の権限) GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY 'password'; *この場合、localhostからしかアクセス出来ない。 *最後に"WITH GRANT OPTION"を付けると管理者権限と同等になる。 !!プロセスの強制終了 mysql> SHOW PROCESSLIST; でIdを確認し、 mysql> KILL ; でプロセスを強制終了する。 !!情報確認 *データベース一覧 SHOW DATABASES; *テーブル一覧 SHOW TABLES FROM db; SHOW TABLES; //現在使用しているDBのテーブル一覧 *カラム情報 SHOW COLUMNS FROM table; SHOW COLUMNS FROM table LIKE 'f%'; //条件式 //同義語 SHOW FIELDS FROM table; //ショートカット DESCRIBE table; DESC table; //省略形 !!SELECT *UNIX timeのデータをdatetime型で取り出す SELECT FROM_UNIXTIME(unixtime) AS datetime FROM table; *datetime型のデータをUNIX timeで取り出す SELECT UNIX_TIMESTAMP(datetime) AS unixtime FROM table; !!CSVファイルの流し込み *通常 LOAD DATA INFILE "hoge.csv" INTO TABLE table; *カラム指定 LOAD DATA INFILE "hoge.csv" INTO TABLE table (id,name,birthday); *区切りや改行コードの変更 LOAD DATA INFILE "hoge.csv" INTO TABLE table FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; *注意事項など **NULLにしたい場合はCSV側の値を\Nにする !!レコード追加 *通常 INSERT INTO table (name,memo) VALUES ('hoge hogeo','ほげほげ'); *追加もしくは更新 **id=123が存在しなければnum=0で初期化、存在していればnumを+1する INSERT INTO table (id,num) VALUES (123,0) ON DUPLICATE KEY UPDATE num=num+1; **id=123が存在しなければnum=5で初期化、存在していればnumを+5する INSERT INTO table (id,num) VALUES (123,5) ON DUPLICATE KEY UPDATE num=num+VALUES(num); !!レコード修正 *通常 UPDATE table SET name='hoge', flag=1; UPDATE table SET name='hoge' WHERE flag=1; *CASEによる条件式 **flag=0ならname=NULL、flag!=0ならname='unknown' UPDATE table SET name= CASE WHEN flag=0 THEN NULL ELSE 'unknown' END; **name=NULLならflag=0、name!=NULLならflag=1 UPDATE table SET flag= CASE WHEN IS NULL name THEN 0 ELSE 1 END; !!レコード削除 DELETE FROM table WHERE flag=0; !!テーブル修正 *カラム追加 ALTER TABLE table ADD column TEXT; ALTER TABLE table ADD column TEXT AFTER hoge; ALTER TABLE table ADD column TEXT FIRST; *カラム変更(名前変更あり) ALTER TABLE table CHANGE column new_column INT; *カラム変更(名前変更なし) ALTER TABLE table MODIFY column INT;