u16suzuの blog

日々学んだことのメモブログです。

mysql

Version 確認

$ mysql --version

  • >mysql Ver 14.14 Distrib 5.5.20, for osx10.7 (i386) using readline 5.1

mysql> select version();

設定ファイル

/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

復元する

$ mysql -udbname -pdbname dbname < ~/hoge.sql

指定のテーブルのみダンプ

# mysqldump -usengoku -psengoku sengoku -t table_name -t table_name2 > ~/hoge.sql

csvに書き出し

mysql> select * from tb_name into outfile "path/to/export.csv" fields terminated by ',';

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 ',' ;

参考: http://blogs.yahoo.co.jp/airmikan/22712779.html

あとでやる

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);
マスター、スレーブにわける