ダミーデータの作り方 個人情報編(その2) 2015年11月10日

ネットスクエアの永田です。

前回の続きとして、
なんちゃって個人情報」で生成したCSVをデータベースに取り込む方法の紹介です。
前提として、データベースはPostgreSQL 9.4を使用することとします。

生成したCSVの項目がテーブルの列と一致していれば、
COPYコマンドを使ってそのまま取り込むことが出来ます。

ただ、値に何らかの加工が必要となるケースが多いので、
今回はExcelを使って値を加工してINSERT文を生成する方法を紹介します。

「なんちゃって個人情報」で生成される「名前」は、
姓と名を空白区切りで結合した1つの項目となっているのですが、
姓と名が別々の列となっているテーブルに取り込みたい、というケースを例に今回は説明します。

CSVとテーブルについては以下のものを使用します。

  • CSVは「なんちゃって個人情報」で「名前」と「性別」のみを選択して生成
  • テーブルのレイアウトは以下の通り
    create table users (
        user_id integer not null            -- ユーザーID
      , last_name character varying(30)     -- 姓
      , first_name character varying(30)    -- 名
      , gender character varying(1)         -- 性別
      , constraint users_pk primary key (user_id)
    );

まず、CSVをExcelで開きます。

先頭に1列追加し、ユーザーID用の連番を振ります。

姓と名のためのC列・D列の2列を追加し、空白区切りで名前を分割するようにそれぞれ
「=LEFT(B2,FIND(” “,B2)-1)」
「=MID(B2,FIND(” “,B2)+1,LEN(B2))」
といった式を埋めます。

あとはINSERT文を組み立てるため、
「=”INSERT INTO users VALUES (“&A2&”, ‘” & C2 & “‘, ‘” & D2 &”‘, ‘”&E2&”‘);”」
といった式をF列に埋めます。

これで出来上がったINSERT文をコピーして実行すれば、データベースへの取り込みが完了です。

色々とやり方はあると思いますが、
Excelの各種関数を使うとちょっと複雑な加工が必要となったときでも対応しやすいかなと個人的には思っています。

今回で個人情報編は終わりとし、次回は別のデータの作り方を紹介したいと思います。

Comments are closed.