mysqlのメモ6
外部ファイルにSQLを記述する
vi blog_app.sql
viでファイル編集。
ファイル名と拡張子を指定する。
less blog_app.sql
lessでテキストファイル内容を表示(のみ)。
ファイル編集時の基本的な操作一覧
i 挿入モード
Esc 挿入モードを解除してコマンドモードに
:wq ファイルに保存して終了
:w 保存だけ
:q! 保存を破棄して終了
:e! 編集内容を破棄し直前に保存した状態に戻す
コマンドモード
yyで一行コピー
pでペースト
今回のblog_app.sqlの編集内容
create table users( id int not null primary key auto_increment, name varchar(50), email varchar(255), password varchar(16), weight float, joined datetime );
以上を編集したらmysqlに戻り以下を実行。
mysql -u dbuser001 -p blog_app < blog_app.sql
dbuser001のパスワードを使ってblog_appにblog_app.sqlの内容を読み込む
しかしblog_appに内容がすでにあるのでエラーとなる。
sqlファイルに
drop table if exists users;
と先頭に追記するとbog_appのデータは消えて内容が読み込まれる。
外部ファイルからデータを取り込む
先ほどのファイルにinsert文を追記し取り込む。
insert into users(id,name,email,password,weight,joined) value (null,'tanaka','tanaka@foo.com','xxxxx','53.8','2011-05-11 19:00:22'); insert into users(id,name,email,password,weight,joined) value (null,'yoshida','yoshida@foo.com','xxxxx','52.3','2011-04-02 19:32:22'); insert into users(id,name,email,password,weight,joined) value (null,'kimura','kimura@foo.com','xxxxx','66.8','2011-03-15 20:00:22');
idがnullなのはauto_incermentを使ってるから。
取り込んだらselectなどで実際にデータが見れるか確かめてみる。
補足
mysqlなどから抜けるときexitでもいいが\qでも抜けれる。
注意事項
- 自分用の覚書です。
- 自分が後から読んで理解できる程度にはしょったりまとめたりしています。
- 後で誤りに気付いた時は随時訂正しています。
- 「ドットインストール」で勉強したのでそれらをなぞっています。