Mais conteúdo relacionado Semelhante a BASEでデータ処理の幅を広げよう (11) Mais de koutarou watanabe (10) BASEでデータ処理の幅を広げよう3. 講師紹介 ~ Lecturer Profiles ~
渡 浩太郎(邊 Koutarou Watanabe )
福岡市出身
某団体 2011 年 LibreOffice 導入時の
メイン担当&マニュアル作成 + 苦情処理係
(現在はシステム担当ではありません)
LibreOffice 日本語チーム( 2018/11 ~)
質問や悩み事等は直接本人まで!
今日もプライベート参加です
このプレゼンは渡辺の個人的見解であり、所属団体の見解ではございません
5. 本セミナーの対象バージョン
本セミナーは
LibreOffice : Ver 6 . 1 . 3
OS : Windows10 ー 64 ビット
で動作確認できた内容についてお話ししています。
他のバージョンや OS では、セミナー内容とは違う場
合がありますのでご了承ください。
ちなみに Ver6.1.3 の BASE ではレポートフッターにページや日付を挿入
しようとすると LibreOffice がクラッシュします!
7. LibreOffice-BASE のデータベース?
1.BASE では埋込データベースを選択可能
・埋込 (Embedded)DataBase(DB) って?
・ HSQLDB と Firebird とは?
・ HyperSQL-DataBase ( Java100 %)
・ Firebird- 旧 Borland の InterBASE が土台
2.BASE で埋込 DB を選ぶなら?
・ Firebird を選択すべき理由
・ LibreOffice5.4 から Firebird が Ver 3に!
市販されていた DB なので
動作が非常に安定している
安定している・対応 SQL が多い・
ANSI SQL 標準に準拠・ネット上に情報が多い
LOVer 4.2から Firebird を選択可能になったが FB2.5 だった
8. 1.何か分からない BASE の起動画面
・ Writer や Calc との違いとは?
2.データベースソフト (BASE) とは?
3.代表的なオブジェクトは4つだけ!
・テーブル ・・・ データ保管
・クエリー ・・・ 仮想表(多様な切り口)
・フォーム ・・・ 画面(インターフェース)
・レポート ・・・ 帳票(多様な見せ方)
LibreOffice-BASE を起動してみる
データを整理して蓄積し、さまざまな組み合わせで取り出せるソフト
表計算:数値データの集計・分析に使用するソフト
ここではビューとかストアドプロシージャは意識しないってことで
12. BASE ( Firebird )のデータ型を知ろう ~ 多いと感じますが ~
分類 データ型名 範囲
文字列 CHAR(m)
VARCHAR(m)
半角英数( ASCII ) 1 ~ 32767 文字
全角( SJIS_0208 ) 1 ~ 16383 文字
CHAR(m) は m 文字の固定長
VARCHAR(m) は最大 m 文字の可変長
整数 SMALLINT
INTEGER
-32,768 ~ 32,767
-2,147,483,648 ~ 2,147,483,647
長整数 BIGINT 符号付 64 ビット整数 Dialect3/FB1.5 以降で使用可能
実数 FLOAT
DOUBLE
PRECISION
3.4×10 の -38 乗~ 3.4×10 の 38 乗 有効桁数 7 桁
1.7×10 の -308 乗~ 1.7×10 の 308 乗 有効桁数 15 桁
固定小数点 NUMERIC ( m,n )
DECIMAL ( m,n )
有効桁数 m = 1 ~ 15
小数点以下の桁数 n=1 ~ 15 ( m >= n )
最高 m 桁の有効数字を格納
有効桁数 m = 1 ~ 15
小数点以下の桁数 n=1 ~ 15 ( m >= n )
最低 m 桁の有効数字を格納
日付 DATE
TIME
TIMESTAMP
西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日
00:00:00 ~ 23:59:59 までの時分秒
西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日と時分秒
その他 BLOB グラフィック,文字などの大量データに使用 : 可変長
論理型 BOOLEAN 真理値の「真 = true 」と「偽 = false 」
13. BASE のデータ型を知ろう ~ 普段使うのは赤枠内くらい ~
分類 データ型名 範囲
文字列 CHAR(m)
VARCHAR(m)
半角英数( ASCII ) 1 ~ 32767 文字
全角( SJIS_0208 ) 1 ~ 16383 文字
CHAR(m) は m 文字の固定長
VARCHAR(m) は最大 m 文字の可変長
整数 SMALLINT
INTEGER
-32,768 ~ 32,767
-2,147,483,648 ~ 2,147,483,647
長整数 BIGINT 符号付 64 ビット整数 Dialect3/FB1.5 以降で使用可能
実数 FLOAT
DOUBLE
PRECISION
3.4×10 の -38 乗~ 3.4×10 の 38 乗 有効桁数 7 桁
1.7×10 の -308 乗~ 1.7×10 の 308 乗 有効桁数 15 桁
固定小数点 NUMERIC ( m,n )
DECIMAL ( m,n )
有効桁数 m = 1 ~ 15
小数点以下の桁数 n=1 ~ 15 ( m >= n )
最高 m 桁の有効数字を格納
有効桁数 m = 1 ~ 15
小数点以下の桁数 n=1 ~ 15 ( m >= n )
最低 m 桁の有効数字を格納
日付 DATE
TIME
TIMESTAMP
西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日
00:00:00 ~ 23:59:59 までの時分秒
西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日と時分秒
その他 BLOB グラフィック,文字などの大量データに使用 : 可変長
論理型 BOOLEAN 真理値の「真 = true 」と「偽 = false 」
16. BASE へのデータ移動 ~ データインポート ~
1.BASE へデータを移すには?
・テーブルにデータを移すには?
・ Calc を中継するパターンが簡単便利
➢範囲選択+コピー & ペースト(コピペ)で完了
➢連結用コードは Calc で生成しておこう!
2.データ型を意識しよう
・意識すべきデータ型は3つだけ!
・主キー(プライマリキー)は自動付与で!
※ 自動付与しない場合はデータ登録後でも付与可能
日付?
数値?
文字列?
17. BASE Calc で事前に型指定してしまう!
●Calc のセルの書式設定でデータ型を決める
・日付型で保存したいとき
➢Calc : 1999-12-31 形式で指定しておく
➢BASE :取込時に日付 DATE 型で指定
・数値型で保存したいとき
➢Calc :数で指定しておく
➢BASE :取込時に数値 BIGINT/INT 型で指定
・文字列型で保存したいとき
➢Calc :テキストで指定しておく
➢BASE :特に指定しなくても OK
データ
インポート作業
20. BASE 連結コードは Calc で生成しておこう
●2 つのデータを連結する連結コードは Calc で項目
連結して作成しよう
データ
インポート作業
•データ照合には両データ共通の連結コードが必須。
•実際は、ほぼ連結用のコードを作成する必要がある。
•名簿であれば、「カナ氏名」と「生年月日」を連結しコー
ドを生成する方法がある。
•セル式に =trim( として余計なスペースを削除すれ
ば、かなり識別度の高いコードを生成できる。
•データ照合は「目」チェックが重要ですが、検証とし
て、連結コードによる「機械照合」もあれば、事務負担
が軽減されるのではないかと思う。
21. BASE 連結コードとリレーション
●2 つのデータを連結する連結コード同士をリレー
ション(関係付け)する(クエリー作成時で OK )
●
2つのデータにある識別用コードをリレーションする
●
連結コード同士の連結でデータ照合が可能となる
●
リレーションには4つの種類がある
➔
内部結合・・・ 両方に共通存在するデータ
➔
右結合 ・・・ 右側の全データ+左側で合致するデータ
➔
左結合 ・・・ 左側の全データ+右側で合致するデータ
➔
クロス結合・・・ 全データを全ての組み合わせで結合
データ処理の場合、処理の内容に応じてリレーションを使い分ける必要があるの
で、実際にクエリーを作成する段階でリレーションを張れば良い
不一致データを探す場合は、右結合か左結合を利用する
23. BASE でのデータ処理事例
●具体的なデータ処理例 ~クエリー&レポート~
・ 2 つのデータを照合する
①データ A にもデータ B にも存在する(内部結合)
②データ A にあってデータ B には無い(左結合)
③データ B にあってデータ A には無い(右結合)
・グループ単位で集計する(複数指定可)
・指定範囲内にあるデータを抽出する
・処理と結果データを保存し出力可能とする
・見映え良い印刷物として出力する
24. SQL (クエリー)の実行ボタンは2つある
●クエリーの実行とは?
・ SQL は SELECT 文だけに対応
・ LibreOffice-BASE が処理を実行する(らしい)
SELECT 文・ SQL ステートメントのシンタックスエラー・システム
テーブル (RDB$) へのアプローチ
●SQL コマンドを直接実行とは?
・ほとんどの SQL を実行可能
・利用している DataBase が処理を実行
(動作はデータベースに依存)
Select 文以外の SQL を流す場合は「SQL コマンドを直接実行」を有効にする必要
がある、複雑なSelect 文でエラーが出る場合、直接実行で解決する時もある
SQL コマンドを直接実行ボタンを有効にした後、クエリーの実行ボタンを押します
25. BASE からデータ出力 ~ データエクスポート ~
●データ出力時の留意点
・コピー&ペースト(コピペ)だと文字化けします
・文字化けしない方法
①Calc の新規シートを開きます
②BASE のオブジェクト一覧を開きます
③出力したいオブジェクトを選択
④そのまま①の Calc 画面上へ Drag&Drop
⑤Calc シート上にデータ展開される
BUG ですね
27. BASE でマクロを使う
●OpenBasic がメイン言語
・ Calc データのインポート / エクスポート
・テキストファイルのインポート / エクスポート
・出力するデータの文字コード指定
・フォームやレポートの動作制御(コントロール)
・フォームの入力値を条件に持つクエリー実行
などを自動化できます
●クエリー上で Function 関数が使えない
Access との大きな違い!ユーザー関数を気軽に利用できない
BASE マクロにはインポート・エクスポートコマンドはないが、処理マクロで実装
可能、Access のフォーム的な運用の実装もマクロで実現できます。
Access のようにクエリーにフォームの値を直接パラメーターとして読ませることはでき
ないので、マクロでSQL を直接書き換え、その後クエリー実行という流れになる。
28. There is no time like the present!
今が最適時です!
さあ!これで
あなたも BASE 使い!
~データベース?
使ってみたことあるよ と言おう~