Firebird isql によるデータベース作成と SQL 体験(gsec の解説を含む)

このページでは,Firebird(2026年4月時点の最新安定版は Firebird 5.0.4)に付属する 対話型コマンドラインツール isql を使い, データベースの新規作成,テーブル定義,データの挿入・検索・更新・削除(いわゆる CRUD), トランザクションを体験する. あわせて,旧来のユーザ管理コマンド gsec の位置づけ(Firebird 3 以降は非推奨)を説明する.

前準備

以下,Firebird 5.0 の既定のインストール先「C:\Program Files\Firebird\Firebird_5_0」を前提に説明する (Firebird 4.0 の場合は「Firebird_4_0」に読み替える). 毎回フルパスを打つのが面倒な場合は,このディレクトリを Windows の環境変数 PATH に追加しておくとよい.

【体験1】isql の起動と終了

手順

  1. コマンドプロンプトを開く

    Windows キーを押し「cmd」と入力し,Enter キーを押す.

  2. isql を起動する(データベースに接続しない状態で起動できる)
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe"
    

    次のように表示される.

    Use CONNECT or CREATE DATABASE to specify a database
    SQL>
    
  3. ヘルプの表示
    HELP;
    
  4. 終了
    QUIT;
    

    ※ QUIT; は変更をロールバックして終了,EXIT; は変更をコミットして終了である(この違いは重要).

【体験2】データベースの新規作成

Firebird では,1つのデータベースは1つのファイル(拡張子 .fdb)である. ここでは C:\db\mydb.fdb を作る.

手順

  1. データベースファイル置き場のディレクトリを作る(コマンドプロンプトで)
    mkdir C:\db
    
  2. isql を起動する
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe"
    
  3. データベースを新規作成する
    CREATE DATABASE 'localhost:C:\db\mydb.fdb'
      USER 'SYSDBA' PASSWORD '<SYSDBAのパスワード>'
      PAGE_SIZE 8192
      DEFAULT CHARACTER SET UTF8;
    

    ※ 文字コードは UTF8 を指定する(日本語を扱うため).

    ※ PAGE_SIZE 8192 は既定値であり省略してもよい(Firebird 5 では最大 32768 まで指定できる).

  4. 接続状態の確認
    SHOW DATABASE;
    

    Database,Owner,Page size,Default character set などが表示される.

  5. いったん終了する
    EXIT;
    
  6. 既存のデータベースに接続し直す
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -user SYSDBA -password <SYSDBAのパスワード> localhost:C:\db\mydb.fdb
    

    isql の中から接続するときは次のようにする.

    CONNECT 'localhost:C:\db\mydb.fdb' USER 'SYSDBA' PASSWORD '<SYSDBAのパスワード>';
    
ヒント

【体験3】テーブル定義とデータの挿入・検索・更新・削除

商品テーブル shohin を例に,SQL の基本操作を一通り体験する. mydb.fdb に接続した状態(SQL> プロンプト)で行う.

手順

  1. テーブル定義(CREATE TABLE)
    CREATE TABLE shohin (
      id      INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
      name    VARCHAR(40) NOT NULL,
      price   DECIMAL(10, 0) NOT NULL,
      stock   INTEGER DEFAULT 0 NOT NULL,
      created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    COMMIT;
    

    ※ IDENTITY 列(自動採番)は Firebird 3 以降で使える標準 SQL の機能である.

  2. テーブルの確認
    SHOW TABLES;
    SHOW TABLE shohin;
    
  3. データの挿入(INSERT)
    INSERT INTO shohin (name, price, stock) VALUES ('りんご', 120, 50);
    INSERT INTO shohin (name, price, stock) VALUES ('みかん', 80, 100);
    INSERT INTO shohin (name, price, stock) VALUES ('メロン', 1500, 5);
    COMMIT;
    
  4. 検索(SELECT)
    SELECT * FROM shohin;
    SELECT name, price FROM shohin WHERE price >= 100 ORDER BY price DESC;
    SELECT COUNT(*), AVG(price) FROM shohin;
    

    先頭の数件だけ表示したいときは,Firebird 独自の FIRST か,標準 SQL の FETCH を使う.

    SELECT FIRST 2 * FROM shohin ORDER BY price DESC;
    SELECT * FROM shohin ORDER BY price DESC FETCH FIRST 2 ROWS ONLY;
    
  5. 更新(UPDATE)
    UPDATE shohin SET price = 130 WHERE name = 'りんご';
    COMMIT;
    SELECT * FROM shohin;
    
  6. 削除(DELETE)
    DELETE FROM shohin WHERE name = 'みかん';
    COMMIT;
    SELECT * FROM shohin;
    
ヒント

【体験4】トランザクション(COMMIT と ROLLBACK)

Firebird は多版型同時実行制御(MVCC)を採用したトランザクション処理システムである. isql では,データを変更する SQL 文は自動的にトランザクションの中で実行され, COMMIT するまで確定しない.

手順

  1. わざと全行削除してみる(COMMIT はしない)
    DELETE FROM shohin;
    SELECT COUNT(*) FROM shohin;
    

    件数が 0 になったことを確認する.

  2. 取り消す(ROLLBACK)
    ROLLBACK;
    SELECT COUNT(*) FROM shohin;
    

    件数が元に戻ったことを確認する.

考察ポイント

【体験5】SQL スクリプトファイルの実行と結果の保存

手順

  1. メモ帳などで,次の内容のファイル C:\db\test.sql を作る(文字コードは UTF-8 で保存)
    CONNECT 'localhost:C:\db\mydb.fdb' USER 'SYSDBA' PASSWORD '<SYSDBAのパスワード>';
    SELECT * FROM shohin;
    EXIT;
    
  2. コマンドプロンプトから一括実行する
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -i C:\db\test.sql
    
  3. 結果をファイルに保存したいときは -o を付ける
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -i C:\db\test.sql -o C:\db\result.txt
    

【解説】gsec について(Firebird 3 以降は非推奨)

gsec は,Firebird 2.5 以前で使われていたユーザ管理(ユーザの追加・削除・パスワード変更)の専用コマンドである. Firebird 3 以降では非推奨(deprecated)であり, 既定の認証方式 Srp(Secure Remote Password)で作られたユーザは gsec では正しく扱えない場合がある. 現在は,isql から SQL 文でユーザ管理を行うのが標準である.

詳しい手順と体験は, Firebird のパスワード管理のページ » にまとめている.

【参考】isql と一緒によく使う付属コマンド

考察ポイント(まとめ)

サイト内の関連ページ

Firebird のインストールは,別ページ »にまとめ

Firebird のパスワード管理は,別ページ »にまとめ