Firebird 5.0 のインストール,データベース作成,テーブル定義とレコード挿入(Ubuntu 上)
【目次】
【関連する外部ページ】
- Firebird の公式ページ: https://firebirdsql.org/
- Firebird 5.0 のダウンロードページ: https://firebirdsql.org/en/firebird-5-0/
- Firebird 5 Quick Start Guide: https://firebirdsql.org/file/documentation/html/en/firebirddocs/qsg5/firebird-5-quickstartguide.html
- Firebird のドキュメント: https://firebirdsql.org/en/documentation/
利用条件は,公式ページで確認すること.Firebird は IPL および IDPL のもとで配布され,商用利用も可能である.
Firebird のインストール(Ubuntu 上)
ダウンロード
- Firebird の Web ページを開く https://firebirdsql.org/
- ダウンロードページへジャンプ
「DOWNLOADS」をクリック
- 「Firebird 5.0」をクリック
- ファイルの選択
64 ビット版の Ubuntu を使用しているときは, 「Linux x64」の tar.gz ファイル(Firebird-5.0.4.1812-0-linux-x64.tar.gz)を選択する.
インストール
- 前提ソフトウエアのインストール
Firebird のサーバは libtommath,ISQL は libncurses を使用する.
sudo apt update sudo apt -y install libtommath-dev libtommath1 libncurses-dev - ディレクトリを作る
sudo mkdir -p /usr/local/firebird sudo chown $USER /usr/local/firebird - ダウンロードしたファイルを /usr/local/firebird にコピーする
- ダウンロードしたファイルを展開し,install.sh を実行する.
cd /usr/local/firebird tar -xvzf Firebird-5.0.4.1812-0-linux-x64.tar.gz cd Firebird-5.0.4.1812-0-linux-x64 sudo bash install.sh
- 続行するので,Enter キー
- データベース管理者(SYSDBA)のパスワードの設定
HOGE$#34hoge5 のような英大文字・小文字・数字・記号を含む文字列を設定する.
パスワードは,必ず独自に設定すること.設定したパスワードは /opt/firebird/SYSDBA.password に記録される.認証プラグイン Srp の仕様により,パスワードの有効長は約 20 バイトである.
- インストール終了の確認
Firebird は /opt/firebird にインストールされ,firebird ユーザの権限でサービスとして動作する.
sudo systemctl status firebird-superserver
ISQL の起動と終了
ISQL は Firebird に付属する対話型の SQL 実行ツールである.
- まず,/opt/firebird/bin にパスを通す.
export PATH=/opt/firebird/bin:${PATH} echo 'export PATH=/opt/firebird/bin:${PATH}' >> ${HOME}/.bashrc - ISQL の起動
データベース管理者の権限で起動する.データベースファイルは firebird ユーザの所有であるため,sudo を付け,フルパスで実行する.
sudo /opt/firebird/bin/isql -u sysdba
- ISQL の終了
ISQL の終了は 「exit;」.
exit;
データベースの作成
データベースを作成するために,SQL の create database コマンドを使用する.
- ISQL の起動
データベース管理者の権限で起動する.
cd /var/lib/firebird sudo /opt/firebird/bin/isql -u sysdba
- データベース生成
データベースファイル名を相対パスで指定した場合,ISQL を起動したディレクトリにファイルが作成される.
utf8 の場合
create database 'testdb' default character set utf8;
シフト JIS の場合.Firebird での文字セット名は SJIS_0208 である.
create database 'testdb' default character set SJIS_0208; - 「show database;」で,データベースが生成されたことを確認
show database;
- 「exit;」で終了.
exit;
テーブル定義とレコード挿入
- ISQL の起動
データベースファイルのあるディレクトリで,データベース管理者の権限で起動する.
cd /var/lib/firebird sudo /opt/firebird/bin/isql -u sysdba
- 「connect 'testdb';」で,データベースを開く.
connect 'testdb';
- SQL を用いたテーブル定義
CHECK 制約により,値の範囲を制限している.
create table order_records ( id integer primary key not null, yy integer not null CHECK ( yy > 2008 ), mm integer not null CHECK ( mm >= 1 AND mm <= 12 ), dd integer not null CHECK ( dd >= 1 AND dd <= 31 ), customer_name varchar(32) not null, product_name varchar(32) not null, unit_price numeric(10,2) not null check ( unit_price > 0 ), qty integer not null check ( qty > 0 ), created_at timestamp not null, updated_at timestamp, check ( ( unit_price * qty ) < 200000 ) );
- SQL を用いたレコード挿入
insert into order_records values( 1, 2020, 7, 26, 'kaneko', 'orange A', 1.2, 10, current_timestamp, NULL ); insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 2, 2020, 7, 26, 'miyamoto', 'Apple M', 2.5, 2, current_timestamp ); insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 3, 2020, 7, 27, 'kaneko', 'orange B', 1.2, 8, current_timestamp ); insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 4, 2020, 7, 28, 'miyamoto', 'Apple L', 3, 1, current_timestamp );
- 確認表示
select * from order_records;
- 更新し確認表示
update order_records set unit_price = 11.2 where id = 1; select * from order_records;
- コミット
ISQL では既定でトランザクションが使用される.変更を確定するために commit を実行する.
commit; - テーブル一覧の表示
show tables;
- 「exit;」で終了.
exit;