MySQL

Mysqlコマンド

More than 5 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