PostgreSQLを実際に使いながらできることの幅を広げてみる その1

とりあえずまとめから。

バックアップ
pg_dump db_name > outfile
ファイルからコマンド実行
\i FILE execute commands from file
インポート
COPY テーブル名 FROM 'CSVファイルの絶対パス' CSV;
エクスポート
COPY テーブル名 TO 'CSVファイルの絶対パス' CSV;

やったこと

PostgreSQLを業務で使っているんだけど、
select
insert
くらい知っとけば大丈夫だろみたいなノリではさすがにマズイので、
ちとPostgreSQLでできるけど知らなかったことを書いていく。

sqlの本を買って電車で地道に読み続けてるけど実際にやっぱ手動かさなきゃだめだよね。
っていう部分がかなり大きいので。

バックアップ

ずっと思ってたんだけどバックアップ。
できます。


pg_dump

というコマンドがあるので、それでできます。

コマンドラインから
pg_dump db_name > outfile
ってカンジでやるといいんだね!

これで実際にやってみると確かにdatabaseがイイカンジに出力された!
あとはこれを入れてみる(リストア)なんだけど、
最初にcreatedb -T template0 db_nameしておいてね!って書いてあるので
そのように作っておいて
psql db_name < inputfile
てなカンジでやるとちゃんとリストアできました。
もっと早く知っとけばよかった(´・ω・`)ショボーン

いきなり問題・・・データの挿入

買ってきた本の中では一番最初にCASE文の紹介があるんだけど
まず一番最初にこんなテーブル作らなきゃ話にならないわけですよ。

こんなテーブル(PopTbl)


pref_name | population

                                                  • -

徳島 | 100
香川 | 200
愛媛 | 150
高知 | 200
福岡 | 300
佐賀 | 100
長崎 | 200
東京 | 400
群馬 | 50

いやいや、create tableはしょうがないけれども
データをいちいちツッコムとか泣くしょ、俺とか思ったんですね。
まぁ入れるしかないんですけれども。

そこでpsqlした後に\?してみたわけです。すると


\i FILE execute commands from file

なんてのがあるじゃないっすか!

ってわけで早速inputってファイルを作ってその中に
手打ちで2行入れたんで少し少ないけど・・・(笑)

insert into poptbl values('愛媛', 150);
insert into poptbl values('高知', 200);
insert into poptbl values('福岡', 300);
insert into poptbl values('佐賀', 100);
insert into poptbl values('長崎', 200);
insert into poptbl values('東京', 400);
insert into poptbl values('群馬', 50);
ってカンジで
\i input
してやりました。

vimでファイル編集できるのでさほど時間がかからないわけですごくいい感じでした。

んで、最初はそれでOK、問題ないと思ったが・・・。

ちがう、ちがうよ、インポートだよ

そう、2問目にはさらに性別とかいうカラムが追加され、さらに行も列も増えていました。

いちいちinsertなんて書いていられません。
そんなときは「postgres インポート」でググればいいんですよ(笑)


tomimemo
さんより

COPY テーブル名 FROM 'CSVファイルの絶対パス' CSV;

でできます。
すごいですね、簡単ですね。

ポスグレのみならずいろいろ勉強しなきゃダメなんですが、
とりあえずsqlを勉強していきます。その2があるかは未定。

コメントアウトしてるのに起こるarray.pushのなぞの現象

<html>
<head>
<title>test</title>
<script language="Javascript">
<!--
alert('hoge');
//array.push('名前:',this.name || 'none', ',趣味:',this.hobby|| 'none');
-->
</script>
</head>
<body>
<textarea id="viarea" rows="20" cols="60" value="hoge">
hoge
</textarea >
</body>
</html>

amachangのブログみながらjavascirptの勉強してたら起こった現象。
なぜかこのときリロードするとhogeが2回表示される。

//array.push();
の行を消すと1回に戻る。

まったく意味がわからない。
だからといって//arrayの行を複数行にするとまた1回に戻る。

このソースで2回表示される意味がわからない。
謎すぎる。

しかもFirefox限定。

謎過ぎる…。

ギークなら知っておくべきキーボードの5つの法則

今はやりのホッテントリメーカーをはじめて使ってみたっ!!
なんていうか言いたいことは実はたった一つの、
それも法則といえるのか本当に微妙なんだけどっ!

それでもまだやってないギークには絶大な効果!?
いやそんな人いないかも・・・

表示までの待ち時間を右に振り切る

田キーを押してからCを押すとコンパネとか開いちゃう。
そこでキーボードを選択する。
ギークのみなさんはぜひ表示までの待ち時間のところを
タコメーターぶっ壊れるくらい一番右に振り切ってOKしてほしい。

期待される効果

vim使ってるときたいていは画面半スクロールのCtrl+D,Uを使ってる人は多いだろう!
だけど、じわじわ見ていきたいときなんかはやっぱりj,kで移動したくなる!
(viを極めた人はたぶんほとんどj,kで移動なんかしないんだろうけど!!)
んで、jやkでずっと上とか下とかに移動するときに待ち時間がすなわち、
j押しっぱなしにしてから動き出すまでの時間がめっちゃ早くなる!!!!

まるで自分をオーバークロック(笑)しているかのよう。
はっきりいってもっと早くやっときゃよかったっ!
実際これvimとかまったく関係ないけど、超オヌヌメ!!!
以上ッ!

bashで使えるか使えないかわかんないテクを発見した!

すんごい微妙なキーバインドを発見した!
Ctrl+a,e,u,k,yなどはまぁよく使ってるけど、コレは使えるかなぁ。


Ctrl+]+何かの文字 で文字を検索できる!!
set -o vi でviっぽくbashを使える!!

しかしviっぽく使いたくても残念ながらCtrl+jでESCの代わりにならんし、
実際面白いだけで終了してしまった。
bashで長いのかいてるときに、真ん中に一発で飛ぶキーバインドってないのかなぁ。

あー、とりあえずはてなTシャツ欲しい!!!!!!!!!!!!!!!!!!!!!!!
id:ssm-kataさんと着たい!!!!!!!!!!

puttyでWindowsのクリップボード経由でキレイにコピペする方法

puttyでログインして作業する場合、違う端末でコピペしたい場合とかが結構ある。
しかし、意外にインデントずれたりうまくコピペができなかったりする場合もおおい!

そんなときはコレ!今日ずっと考えてたけどいまのところこれがベスト!


:r! cat -
Shift+Insert
Ctrl+D

これでキレイにいけるwwwwwwwwwwwwwwwwwww
nmap ,vp :r! cat -~M
とか.vimrcにかいておくと幸せになれるかも。

プログラマになって3ヶ月の成果をまとめてみた

とりあえずプログラマになってからいろいろ変化があった。
一番変化があったのは、VIMを使えるようになったことだ。

大嫌いだったVIM

jとkを押したらjとkを入力できないエディタ、それがVI(M)。
実際使いかたがわからなかったらまったく無駄なものだ。Terapad最高。

研修で初めてVIMを使って
hjklを必死で覚えて
Ctrl+Cでエスケープできることを知って
.vimrcの存在を知って
今となっては手放せないものになった。
VIM
もちろん.txtも関連付け済み。

Java

まったくかけないと言っても過言ではなかったJavaをついにさわるようになった。
オブジェクト指向?なにそれ?ってカンジだったけど
たぶん入り口の方にはこれてると思う。
Javaがわかるようになってコンストラクタとかインターフェースとか
ポリモーフィズムとかいう言葉を理解できるようになってよかった。

正規表現

これはまだまだなんだけど
「覚えるのに要した苦労を何倍もの利益に返してくれる」
っぽいことをオライリーのVIのやつでも書いてたから
Perlも覚えてできるようになりたい。
それにしても4,800円は高すぎるだろう、オライリー

大学生のときに知らなくて導入したソフト

窓使いの憂鬱
とりあえずこれがないとやってられないレベルなほど必須、素敵なソフト。
Ctrl+;でAlt+Enterを実現している。信じられないくらいオススメ。
信じられないくらいオススメ。

・Vertual Demension
仮想デスクトップ。仕事では使ってるけど家PCには入れてない。
Ctrl+8,9でデスクトップ切り替えを実現してる。ヤバイ。かなりオススメ。

・Keyconfig+Hit A Hint(Firefoxのアドオン)
俄然マウス派だったんだけど俄然キーボードに依存するようになった。
j,kで移動できるのが気持ちい。vim依存症。
F押せばリンクにいけちゃうとか最高。

BlueWind
コマンド型ランチャー。キーボードに手があるときにすぐソフトを呼び出せる。
これも今はないとやってられない。

・nrLanch
マウスクリックで起動できるランチャー。マウスに手があるときにくるくるで呼び出せる。
だけどあんまりくるくるは使ってなくて、カチカチのほうが使ってる。
家ではOrchis2だけど。

最後に

ぜんぜんVIMとか知らなかったころに.vimrcを晒すのがはやってたらしいので
―まったく真相のほどは定かじゃないんだけど―
とりあえず.vimrcを晒すだけ晒しておく。


filetype on
autocmd FileType c,cpp,java,perl :set cindent
"自動インデント
set autoindent
""かっこが一致したときにこれだよ!って見せるか
set showmatch
">>の時の文字数
set shiftwidth=4
""tab押した時のスペース
set tabstop=4

"行番号表示
""set number

set scroll=10
"charseteuc-jp
"set enc=euc-jp
set enc=utf-8
"set fenc=euc-jp
set fenc=utf-8
set fencs=utf-8,euc-jp,iso-2022-jp,cp932
set fileformats=unix,dos,mac
set clipboard+=unnamed

"強化されたタブメニュー(GUI)
set wildmenu

set laststatus=2
set statusline=%<%f\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v\ %l/%L

set showcmd
set title

"""独自keymap設定
""ノーマルモード
""タブ移動はgt
nmap gt
nmap gT

""新規タブはCtrl+t
nmap :tabnew
nmap
nmap
nmap ,v
nmap ,vi :e ~/.vimrc
"
"nmap
""
inoremap ui
inoremap
"inoremap
""inoremap
"inoremap

syntax on

Ctrl+jでエスケープをゴリ押ししてる人がいてやってみたけど
俺もゴリ押ししたい。ゴリオススメ。
あとTabとShift+Tabでタブ移動が好き。
ちなみにCtrl+Nでタブ開いちゃう。割とナイス。
あと今日スクリーン縦分割を,vに設定してCtrl+hとCtrl+lで移動できるようにした。
まだどうなるかわかんないけど、いい感じ。

本当に最後

意外にVIMで使えるコマンドを少し。
mA,mBなどm+アルファベット大文字でファイル記憶。
なんかいっぱいタブとかに開いておいて次に開きたいときとかにオススメ。
'A,'Bなど'+アルファベットで開ける。結構便利。

今後の取得したい技術一覧

Java
正規表現
シェルスクリプト
ぽすぐれ
Perl
JavaScript
まぁすげぇいっぱいあるけどがんばろう!!!!!!!!

はじめてはてなハイクを使ってみて

Twitterのログでtwitter参加のきっかけとなったid:t_yanoさんが
はてなハイクのURLを発言していたので、
とりあえずいってみた。
おそるおそる発言してみると・・・
なにこのTwitterwwwwwwww
ってカンジになった。
でもしばらくすると画像が張られたり、CSRFっていうトラップを生で見れたり、
それを修理する中の人をリアルで目撃したりと、すごい光景を目の当たりにした。
ラクガキ機能がついてるのも特徴で、なんか、結構簡単に書けてイイ!!
初音ミクラクガキを即効で上げる人なんかもいて面白かった。

特徴

はてなスターが付けやすい
本当にはてなスターが付けやすい。こんなにスターを使ったのはおそらく初めて。

・キーワードがいっぱい
キーワードなのかお題なのかわからないけど、キーワードと内容を入れて
haiku!するのが原則ぽい。キーワードがまったく同じ発言がスレッドみたいになる。

総評

これはおもしろい!
なんというレベルの低い考察しかできないんだろう、俺はorz
とっ、とにかくはてハイ(略称がまだ怪しいけど)はしばらくマイブームになりそうだ。
Twitterやっててよかったなぁ。