mysql
設定ファイル
/etc/my.conf
DBのファイルシステム上での保存場所(設定によります)
/usr/local/var/msyql
DB作成
create database hoge;
DB作成確認
show databases;
DB削除
drop database hoge;
DB使用
use hoge; # Database changedと表示される.
テーブルの全データ削除
delete * from users where id=3;
delete from table_name;
truncate `db_name`.`table_name`;
データ追加
insert into table_name values( 1, 2, 3 );
insert into `db`.`table` (`a`, `b`, `created_at`, `updated_at`) values( 1, 2, '2012-02-02 09:09:09', '2012-02-02 09:09:09' );
データ表示
select * from users;
select * from users limit 2;
select * from users where id=3;
列名表示
show fields from users;
修正
update tb_name set col_name=99 where id=4; #id=4のデータをid=99に変更
update tb_name set name = hoge; # すべてのnameを hogeにする。
データ数カウント
select count(*) from tb_name; # tb_nameのデータ数カウント
select count(*) from tb_name where id=2; # id=2のデータ数カウント
コメント
# 行末までコメント
クエリ解決のための実行計画を調べる
explain select * from users;
http://www.infiniteloop.co.jp/blog/2011/03/mysql-index-explain/
縦表示
select * from users \G
否定
mysql> select * from users where win_flag is not null; # NULLでないカラムを選択
update tb_name set rate=1 where id<>2; # <>が!-
update tb_name set rate=1 where id=1 and uid<>3; # where は and で複数条件文指定
ダンプする
$ mysqldump -udbname -pdbname dbname > ~/hoge.sql
指定のテーブルのみダンプ
# mysqldump -usengoku -psengoku sengoku -t table_name -t table_name2 > ~/hoge.sql
csvから読み込み(mysqlログイン時に --local-infile=1 としないとこのバージョンでは無理というエラー )
mysql> load data local infile "path/to/import.csv" into table tb_name fields terminated by ',';
mysql> load data local infile "./hoge.csv" into table TABLE_NAME fields terminated by ',' ;
あとでやる
alter table drop, alter table add, modify
analyze table, index, use index, force index
ALTER TABLE Country DROP PRIMARY KEY, ADD PRIMARY KEY (Code, ContinentId);
マスター、スレーブにわける