- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
{{outline}}
!!ユーザ作成(GRANT以外の権限)
GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY 'password';
*この場合、localhostからしかアクセス出来ない。
*最後に"WITH GRANT OPTION"を付けると管理者権限と同等になる。
!!プロセスの強制終了
mysql> SHOW PROCESSLIST;
でIdを確認し、
mysql> KILL <Id>;
でプロセスを強制終了する。
!!情報確認
*データベース一覧
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;