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

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

前準備

以下,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】データベースの新規作成

ここでは C:\db\mydb.fdb を作る.

手順

  1. データベースファイル置き場のディレクトリを作る

    Windows キーを押し「cmd」と入力し,Enter キーを押す.コマンドプロンプトで次を実行する.

    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 に指定できる値は 4096,8192,16384,32768 である.既定値は 8192 で,省略してもよい.

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

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

  5. isql を終了する
    EXIT;
    
  6. 既存のデータベースに接続し直す

    Windows キーを押し「cmd」と入力し,Enter キーを押す.コマンドプロンプトで次を実行する.

    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -user SYSDBA -password <SYSDBAのパスワード> localhost:C:\db\mydb.fdb
    

    isql の「SQL>」のプロンプトから接続するときは次のようにする.

    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 で保存)
    SELECT * FROM shohin;
    
  2. コマンドプロンプトから一括実行する

    Windows キーを押し「cmd」と入力し,Enter キーを押す.コマンドプロンプトで次を実行する.

    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -user SYSDBA -password <SYSDBAのパスワード> localhost:C:\db\mydb.fdb -i C:\db\test.sql
    

    ※ 接続情報をコマンドラインで指定すれば,スクリプトファイルにパスワードを書かずにすむ.

  3. 結果をファイルに保存するときは -o を付ける
    "C:\Program Files\Firebird\Firebird_5_0\isql.exe" -user SYSDBA -password <SYSDBAのパスワード> localhost:C:\db\mydb.fdb -i C:\db\test.sql -o C:\db\result.txt
    

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

gsec は,Firebird 2.5 以前でユーザ管理(ユーザの追加・削除・パスワード変更)に使っていた専用コマンドである. Firebird 3 以降では非推奨(deprecated)である. gsec は複数のセキュリティデータベースを扱えず, firebird.conf の UserManager に並べたユーザ管理プラグインのうち先頭の 1 つだけを使う. Firebird 3 以降は,isql から SQL 文でユーザ管理を行う

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

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

考察ポイント(まとめ)

サイト内の関連ページ

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

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