トップ 一覧 Farm 検索 ヘルプ RSS ログイン

MySQLの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{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;