MySQL

Mysqlコマンド

More than 3 years have passed since last update.
mysql -u (ユーザー名) = 起動
mysql -u (ユーザー名) -p = パスワードを入力して起動
use (データベース名) = データベースを切り替えるコマンド
set password for root@localhost=password('設定したいパスワード');

データの中身の確認

select * from (テーブル名)

データベースを作る

create database (データベース名);

grant all on (データベース名).* to dbuser@localhost identified by '設定したいパスワード';作業ユーザーを作る
テーブルを作る(例文)

create table users (
id int not null auto_increment primary key,
name varchar(255),
email varchar(255) unique,
password char(32),
score double,
sex enum('male', 'female') default 'male',
memo text,
created datetime,
key score (score)
);

データベースの中身の確認

show databases;

データベースの中にあるテーブルの確認

show tables;

show indexes from (テーブル名)特定のテーブルにどういった索引が設定されているか
drop table users;
desc users=テーブルの構造を見る事ができる
insert into users =values ();レコードの挿入(挿入するレコード一覧)
select (フィールド名) from (テーブル名);テーブル内のデータの確認
select (フィールド名) from (テーブル名) \G テーブル内のデータを縦に表示にする
select (フィールド名) from (テーブル名)where(フィールド名)(条件)
whereに指定する条件の種類=
否定= !=,<>
曖昧な検索の時はlikeを使う
like
'%~'=無制限の任意の文字
_の場合は任意の一文字
between () and () でその間の条件を指定する
in('値','値');でその2つの条件を指定する
and = 共通の条件を指定する
or = またはの条件を指定する
select * from (テーブル名) order by (フィールド名);小さい順に
select * from (テーブル名) order by (フィールド名) desc;大きい順に
select * from (テーブル名) limit (数字);件数の制限
select * from (テーブル名) limit (数),(数);数字は添字、開始位置の指定
select count(*) from(テーブル名) ;レコードの総件数を調べる場合
select distinct (フィールド名) from (テーブル名) ;
select max(フィールド名) from (テーブル名) ;最大値,最小値,平均,合計(max,min,avg,sum)
select sum(フィールド名) from (テーブル名) group by (フィールド名);チームごとに集計する場合
select rand();乱数を表示させる 組み合わせselect * from (テーブル名) order by rand() limit 1;
select (フィールド名),length(フィールド名)from(テーブル名) ;文字数の長さを調べる
select concat(フィールド名, '(', フィールド名, ')') from users;文字数を連結させる
select concat(フィールド名, '(', フィールド名, ')') as (ラベル名) from users;ラベルをつける
select now();現在時刻を表示する
レコードの更新
update (テーブル名) set = 'kimura@dotinstall.jp' where id = (数字);
delete from (テーブル名) where (フィールド名) <= 3.0;レコードの削除
alter table (テーブル名) add (追加するフィールド名) varchar(255) ;テーブルの構造を変更させたい場合,フィールドを足す、どのフィールドの下にのせるかを付ける場合はafter (フィールド名)を指定する
alter table (テーブル名) change (フィールド名)(フィールド名) varchar(100);フィールドの数値を変更する
alter table (テーブル名) add index email (email);index(索引)を追加する
alter table (テーブル名) drop index email;index(索引)を消去する
alter table (テーブル名) rename (変更するテーブル名);table名を変える
select users.name, posts.title from users, posts where users.id = posts.user_id;
複数のtableにまたがって指定していく場合は(table).(field)
select users.name, posts.title from users, posts where users.id = posts.user_id order by posts.created #####desc;
order byを組み合わせをした場合
mysql -u (ユーザー) -p (データベース名) < ファイル名;=外部のテキストファイルにコマンドを保存して#####使う方法
例 mysql -u dbuser -p blog_app < commands.sql;
mysqldump -(ユーザー名) -p (データベース名) >データベース名.dump.sql=バックアップをとる
例 mysqldump -u dbuser -p blog_app > blog_app.dump.sql
mysql -(ユーザー名) -p (データベース名) <データベース名.dump.sql=復元
例 mysql -u dbuser -p blog_app < blog_app.dump.sql