ガードブロッキング的ブログ

mysqlのメモ6

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でも抜けれる。

注意事項

モバイルバージョンを終了