mysqlのメモ7

mysqlのメモ7

データのバックアップと復元

dump

バックアップする。

mysqldump -u dbuser001 -p blog_app > blog_app.dump.sql

復元は普通にsqlを読み込む(dump)の方

mysql -u dbuser001 -p blog_app < blog_app.dump.sql

複数のテーブルを準備する
さっきのblog_app.sqlのテーブルに追記

drop table if exists posts;
 create table posts(
 id int not null primary key auto_increment,
 user_id int not null,
 title varchar(255),
 body text,
 created datetime,
 modified datetime
 );
insert into posts(id,user_id,title,body,created,modified) value (null,1,'こんにちは!','今日からブログはじめました!よろしくです!','2011-05-01 10:55:00','2011-05-05 18:02:00');
insert into posts(id,user_id,title,body,created,modified) value (null,1,'ランチ','食べ過ぎちゃいましたよー','2011-05-04 10:02:00','2011-05-12 10:01:00');
insert into posts(id,user_id,title,body,created,modified) value (null,2,'ブログ','みんなもやっているからやってみる!','2011-03-01 10:05:00','2011-03-02 10:03:00');
insert into posts(id,user_id,title,body,created,modified) value (null,2,'Google','なんかプラスっやつがあるの?','2011-03-02 10:00:00','2011-04-02 10:08:00');
insert into posts(id,user_id,title,body,created,modified) value (null,3,'さてはて','どこから始めるべきですかね?','2011-04-21 15:00:00','2011-04-22 17:00:00');
insert into posts(id,user_id,title,body,created,modified) value (null,3,'今日は!','大変でしたよ。いろいろ。','2011-05-02 14:00:00','2011-05-10 15:00:00');
insert into posts(id,user_id,title,body,created,modified) value (null,3,'夜!','さーて、呑みにいくぜー。','2011-05-22 13:00:00','2011-05-22 13:00:00');

でusers(前回作成)とposts(今回作成)の二つのテーブルが読み込まれた。

複数のテーブルからselectする

select users.name, posts.title from users,posts where users.id = 1 and users.id = posts.user_id;

内訳

users.name, posts.title from users,post

usersテーブルのnameとpostsテーブルのtitleをusersとpostsテーブルから選べ

where users.id = 1 and users.id = posts.user_id

条件
usersのidが1でusersのidとpostsのuser_idが同じ

ということ。
条件を指定しないと無駄なレコードが表示されまくる。

条件を組み合わせてselectする

select posts.title,users.name,posts.created from posts,users where users.id = posts.user_id order by posts.created desc;

表示したいもの

title,name,created

条件

idとuser_idが同じものを降順に。

group by

select users.name,count(posts.id) from users,posts where users.id = posts.user_id group by users.id;

表示したいもの

nameとposts.idの数え
count(posts.id)はposts.idをcountした数字

条件

idとuser_idが同じものをidごとにまとめたもの。
この場合idとnameは対になっているのでnameでも同様の結果になる。

ドットインストール終わり

mysqlの文はphpmyadmin等でも使えるので是非覚えておきたい。

注意事項

  • 自分用の覚書です。
  • 自分が後から読んで理解できる程度にはしょったりまとめたりしています。
  • 後で誤りに気付いた時は随時訂正しています。
  • 「ドットインストール」で勉強したのでそれらをなぞっています。

WordPress › エラー

このサイトで重大なエラーが発生しました。

WordPress のトラブルシューティングについてはこちらをご覧ください。