ユーザ作成(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;
Last modified 2013-01-17 15:38:45