ひこぽんのーと

覚書と雑記です。

JavaEE 7をやってみよう。 SQLite/DBeaver その5

その4のつづき。
今更だけど、このシリーズ、JavaEE関係ないなぁとは思うけど、
横着できるツールを探して時短に活用するってのもテクニックなので、
無駄かもしらんけれど、こんな調査もたまには必要だよねっ。

ちなみに今回はSQLを書かずに、諸々の操作ができて、
データ出力とか検索とか使いやすい機能が揃っているか、
DBViewerと比べてどうかってのが調査の観点です。

気を取り直して、
DBeaverでのデータ入力、行ってみよう。

データ入力
目的のテーブルを開いて、データのタブを選ぶとデータ参照の表が表示される。
今は空なので、ツールからデータ入力をしてみる。
f:id:nagamitsu1976:20150902152319p:plain
ウィンドウ下部の「+」ボタンを押すと行が追加され、セルが編集可能となる。f:id:nagamitsu1976:20150902152407p:plain
適当に入力し、ウィンドウ下部の「レ」ボタンを押すと保存される。「×」は取り消し。
データの表示
目的のテーブルを開いて、データのタブを選ぶとデータが自動で抽出される。
f:id:nagamitsu1976:20150902153747p:plain
表示されるカラムだとか順序はフィルターボタンから開くダイアログで好きに変えることができる。f:id:nagamitsu1976:20150902154300p:plain
データの絞り込みはフィルター入力ボックスに条件を入力することで行える。
f:id:nagamitsu1976:20150902154502p:plain
表示形式もグリッド表示とテキスト表示で切り替えることができる。f:id:nagamitsu1976:20150902155144p:plain
また、通常はY方向(下方向)にデータが表示されるが、X方向(横方向)に表示することもできる。
ただし、1レコードづつだけれど。f:id:nagamitsu1976:20150902155416p:plain
SQL自動生成
表示データを選択した後、コンテキストメニューから「Generate SQL」を選ぶことで、「Select by Unique Key]、「Insert]、「Delete by Unique Key]の3種類のSQLを生成できる。
f:id:nagamitsu1976:20150902155611p:plain
データ削除
グリッドから対象行を選択して、コンテキストメニューから削除を選ぶか、Deleteを押すと削除マーカーがつく。
編集後、ウィンドウ下部の「レ」ボタンを押すと保存され、「×」で取り消しとなるのは入力と同じ。f:id:nagamitsu1976:20150902155909p:plain
データエクスポート
Database Navigatorからテーブルを選択し、コンテキストメニューから「データのエクスポート」を選ぶと出力形式を選択するダイアログが表示される。f:id:nagamitsu1976:20150902160126p:plain
出力形式は、XML, HTML, CSV, SQLとひと通りあり、なおかつ「データベース」なんてのもある。
テーブルからテーブルへ、select 〜, insertなんだろうけど、SQL書くのとどっちが早いのだろう。
ファイル出力に関しては、直接クリップボードにも出力できるので便利。

出力結果はこんな感じ。

<?xml version="1.0" ?>
<!DOCTYPE EMP [
  <!ELEMENT EMP (DATA_RECORD*)>
  <!ELEMENT DATA_RECORD (EMPNO?,ENAME?,JOB?,MGR?,HIREDATE?,SAL?,COMM?,DEPTNO?)+>
  <!ELEMENT EMPNO (#PCDATA)>
  <!ELEMENT ENAME (#PCDATA)>
  <!ELEMENT JOB (#PCDATA)>
  <!ELEMENT MGR (#PCDATA)>
  <!ELEMENT HIREDATE (#PCDATA)>
  <!ELEMENT SAL (#PCDATA)>
  <!ELEMENT COMM (#PCDATA)>
  <!ELEMENT DEPTNO (#PCDATA)>
]>
<EMP>
  <DATA_RECORD>
    <EMPNO>1</EMPNO>
    <ENAME>Prince Umayado</ENAME>
    <JOB>Regent</JOB>
    <MGR></MGR>
    <HIREDATE>1965/01/04</HIREDATE>
    <SAL>1,000</SAL>
    <COMM>1,000</COMM>
    <DEPTNO>1</DEPTNO>
  </DATA_RECORD>
  <DATA_RECORD>
    <EMPNO>2</EMPNO>
    <ENAME>Hirofumi Ito</ENAME>
    <JOB>Prime ministar</JOB>
    <MGR></MGR>
    <HIREDATE>1986/01/04</HIREDATE>
    <SAL>1,000</SAL>
    <COMM>1,000</COMM>
    <DEPTNO>1</DEPTNO>
  </DATA_RECORD>
  <DATA_RECORD>
    <EMPNO>3</EMPNO>
    <ENAME>Souseki Natsume</ENAME>
    <JOB>Novelist</JOB>
    <MGR></MGR>
    <HIREDATE>2007/04/02</HIREDATE>
    <SAL>1,000</SAL>
    <COMM>1,000</COMM>
    <DEPTNO>1</DEPTNO>
  </DATA_RECORD>
  <DATA_RECORD>
    <EMPNO>4</EMPNO>
    <ENAME>Hideyo Noguchi</ENAME>
    <JOB>Doctor</JOB>
    <MGR></MGR>
    <HIREDATE></HIREDATE>
    <SAL>1,000</SAL>
    <COMM>1,000</COMM>
    <DEPTNO>1</DEPTNO>
  </DATA_RECORD>
</EMP>
  • HTML

EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
1Prince UmayadoRegent 1965/01/041,0001,0001
2Hirofumi ItoPrime ministar 1986/01/041,0001,0001
3Souseki NatsumeNovelist 2007/04/021,0001,0001
4Hideyo NoguchiDoctor 1,0001,0001

"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
1,Prince Umayado,Regent,,"1965/01/04","1,000","1,000",1
2,Hirofumi Ito,Prime ministar,,"1986/01/04","1,000","1,000",1
3,Souseki Natsume,Novelist,,"2007/04/02","1,000","1,000",1
4,Hideyo Noguchi,Doctor,,,"1,000","1,000",1
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (
1,'Prince Umayado','Regent',NULL,'1965/01/04',1000.0,1000.0,1);
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (
2,'Hirofumi Ito','Prime ministar',NULL,'1986/01/04',1000.0,1000.0,1);
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (
3,'Souseki Natsume','Novelist',NULL,'2007/04/02',1000.0,1000.0,1);
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (
4,'Hideyo Noguchi','Doctor',NULL,'',1000.0,1000.0,1);
データのインポート
DataNavigatorからテーブルを選んでコンテキストメニューから「import Data」で実行できるが、
これは少しイケてない。
データベースからデータベースへのインポートしか備えていない。
これではデータをエクスポートする意味があまりない。

と、検索、追加、削除などをプラグインで操作してみたが、データのインポートだけが劣るぐらいでDBViewerと比べても機能の見劣りはさほどない。
多彩なRDBに対応しているし、ドライバもセットアップ時にダウンロードできる仕組みなので、
DBViewrの代替には十分成りうる。

もっともフリーのDBクライアントもいくつかあるので、これにこだわる必要があるか、というと、考えるところ。
結局は、自分の使いやすいツールを見つけて使うか、ってところに落ち着くのか。