-[[リファレンスガイド]]へ~
&br;
----
*Firebird SQLリファレンス [#ef33a0ec]
 Firebird で使用できる SQL のリファレンス(日本語訳)です。現在での対応バージョンは1.5.1となっています。~
 公開されている、[[InterBase6 SQL Statement and Function Reference:http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_60_sqlref]]
の翻訳をベースに、リリースノートを参考に各バージョンで追加された機能に関して
修正・追加を行ってる場合もあります。~
 内容に疑問がある場合や、未訳の構文に関しては、基となった資料を参照して下さい。
&br;
 Firebird の SQL は、発行方法などにより以下のような種類があります。
|種類|説明|h
|SQL|埋め込みSQL向け。プログラムソースに直接埋め込むためのもので、専用のプリプロセッサ(gpre)によりコンパイラ向けの変換を行います。|
|DSQL|動的SQLです。プログラムにより動的に生成するSQL文で使用できます。|
|PSQL|ストアドプロシージャやトリガの記述で使用するSQLです。仕様・詳細に関しては[[CREATE PROCEDUREのプロシージャ・トリガ記述言語>CREATE PROCEDURE#psql]]を参照して下さい。|
|isql|isqlで取り扱えるSQLです。|
&br;
 随時追加予定です。また、このページは自由に追加、修正が可能ですので、有志による
内容の充実もどうぞお願いします。~
&br;
*データ型、キャラクタセット [#hd956c42]
 Firebirdで使用できるデータ型などに関する情報は、[[キャラクタセット・データ型・権限]]を参照して下さい。

*SQL文:目的別インデックス [#f4431595]
-データベース作成・削除
--[[ALTER DATABASE>CREATE DATABASE#alter_database]] : 既存データベースに二次ファイルを追加
--[[CREATE DATABASE>CREATE DATABASE#create_database]] : 新規データベースの作成
--[[DROP DATABASE>CREATE DATABASE#drop_database]] : データベースの削除

-既存データベース接続関係
--[[CONNECT>CONNECT#connect]] : データベースに接続
--[[DISCONNECT>CONNECT#disconnect]] : データベースから切断(埋め込みSQL向け)
--[[SET DATABASE>CONNECT#set_database]] : データベースハンドルの宣言(埋め込みSQL向け)
--[[SET NAMES>CONNECT#set_names]] : 接続時のキャラクタセット設定

-特権関係
--[[CREATE ROLE>GRANT#create_role]] : ロールを作成
--[[DROP ROLE>GRANT#drop_role]] : ロールを削除
--[[GRANT>GRANT#grant]] : 特権の付与、ロールにユーザーを追加
--[[REVOKE>GRANT#revoke]] : 特権の削除、ロールからユーザーを削除

-トランザクション関係
--[[COMMIT>SET TRANSACTION#commit]] : 変更を反映してトランザクションを終了
--[[RELEASE SAVEPOINT>SET TRANSACTION#release_savepoint]] : 指定セーブポイントの削除
--[[ROLLBACK>SET TRANSACTION#rollback]] : 変更を取り消してトランザクションを終了
--[[SAVEPOINT>SET TRANSACTION#savepoint]] : セーブポイントの作成
--[[SET TRANSACTION>SET TRANSACTION#set_transaction]] : トランザクションの開始


-テーブル(表)操作関係
--[[ALTER TABLE>ALTER TABLE#alter_table]] : テーブル定義の変更
--[[CREATE TABLE>CREATE TABLE#create_table]] : テーブルの作成
--[[DECLARE TABLE>CREATE TABLE#declare_table]] : テーブル作成の準備
--[[DROP TABLE>CREATE TABLE#drop_table]] : テーブルの削除
--[[RECREATE TABLE>CREATE TABLE#recreate_table]] : テーブルの再作成

-行の操作関係
--[[DELETE>INSERT#delete]] : 行の削除
--[[INSERT]] : 行の追加
--[[SELECT]] : 行の参照
--[[UPDATE>INSERT#update]] : 行の更新

-インデックス関係
--[[ALTER INDEX>CREATE INDEX#alter_index]] : インデックスの活性・不活性化
--[[CREATE INDEX>CREATE INDEX#create_index]] : インデックスの作成
--[[DROP INDEX>CREATE INDEX#drop_index]] : インデックスの削除
--[[SET STATISTICS>CREATE INDEX#set_statistics]] : インデックスの集計

-ドメイン関係
--[[ALTER DOMAIN>ALTER TABLE#alter_domain]] : ドメイン定義の変更
--[[CREATE DOMAIN>ALTER TABLE#create_domain]] : ドメインの作成
--[[DROP DOMAIN>ALTER TABLE#drop_domain]] : ドメインの削除

-ビュー関係
--[[CREATE VIEW>CREATE VIEW#create_view]] : ビューの作成
--[[DROP VIEW>CREATE VIEW#drop_view]] : ビューの削除
--[[RECREATE VIEW>CREATE VIEW#recreate_view]] : ビューの再作成

-ストアドプロシージャ関係
--[[ALTER PROCEDURE>CREATE PROCEDURE#alter_procedure]] : ストアドプロシージャの変更
--[[CREATE PROCEDURE>CREATE PROCEDURE#create_procedure]] : ストアドプロシージャの作成
--[[DROP PROCEDURE>CREATE PROCEDURE#drop_procedure]] : ストアドプロシージャの削除
--[[EXECUTE PROCEDURE>CREATE PROCEDURE#execute_procedure]] : ストアドプロシージャの実行
--[[RECREATE PROCEDURE>CREATE PROCEDURE#recreate_procedure]] : ストアドプロシージャの再作成

-トリガ関係
--[[ALTER TRIGGER>CREATE TRIGGER#alter_trigger]] : トリガの変更
--[[CREATE TRIGGER>CREATE TRIGGER#create_trigger]] : トリガの作成
--[[DROP TRIGGER>CREATE TRIGGER#drop_trigger]] : トリガの削除

-ユーザー定義例外関係
--[[ALTER EXCEPTION>CREATE EXCEPTION#alter_exception]] : 例外の変更
--[[CREATE EXCEPTION>CREATE EXCEPTION#create_exception]] : 例外の作成
--[[DROP EXCEPTION>CREATE EXCEPTION#drop_exception]] : 例外の削除
--ユーザー定義例外は、ストアドプロシージャやトリガで発生させます。
トリガで発生させることにより、独自に複雑な制約を作成することも出来ます。

-データベースシャドウ関係
--[[CREATE SHADOW>CREATE VIEW#create_shadow]] : データベースのシャドウを作成
--[[DROP SHADOW>CREATE VIEW#drop_shadow]] : データベースのシャドウを削除
--障害発生時のデータベースシャドウへの切り替えは、gfixコマンドで行います。
詳細に関しては[[CREATE SHADOW>CREATE VIEW#create_shadow]]に補足してありますので
そちらを参照して下さい。

-ジェネレータ関係
--[[CREATE GENERATOR>CREATE VIEW#create_generator]] : ジェネレータの作成
--[[DROP GENERATOR>CREATE VIEW#drop_generator]] : ジェネレータの削除
--[[SET GENERETOR>CREATE VIEW#set_generator]] : ジェネレータへの値の設定

-イベントアラータ関係
--[[EVENT INIT>CREATE EXCEPTION#event_init]] : イベント処理の初期化
--[[EVENT WAIT>CREATE EXCEPTION#event_wait]] : イベント発生の待ち合わせ
--イベントのポストは、ストアドプロシージャまたはトリガで行います。

-カーソル関係
--[[CLOSE>OPEN#close]] : カーソルのクローズ
--[[CLOSE (BLOB)>OPEN#close_blob]] : BLOBカーソルのクローズ
--[[DECLARE CURSOR>OPEN#declare_cursor]] : カーソルの宣言
--[[DECLARE CURSOR (BLOB)>OPEN#declare_cursor_blob]] : BLOBカーソルのクローズ
--[[FETCH>OPEN#fetch]] : カーソルからの1行取得
--[[FETCH (BLOB)>OPEN#fetch_blob]] : BLOBカーソルからのデータ取得
--[[OPEN>OPEN#open]] : カーソルのオープン
--[[OPEN (BLOB)>OPEN#open_blob]] : BLOBカーソルのオープン

-動的SQL(DSQL)関係
--[[DECLARE STATEMENT>DECLARE STATEMENT#declare_statement]] : 動的SQLの宣言
--[[DESCRIBE>DECLARE STATEMENT#describe]] : データ受け渡しの指定
--[[EXECUTE>DECLARE STATEMENT#execute]] : 準備された動的SQLの実行
--[[EXECUTE IMMEDIATE>DECLARE STATEMENT#execute_immediate]] : 動的SQLの直接実行
--[[PREPARE>DECLARE STATEMENT#prepare]] : 動的SQL実行のための準備

-ホスト言語変数宣言関係
--[[BASED ON>OPEN#based_on]] : 列定義をベースとしたホスト言語変数宣言
--[[BEGIN DECLARE SECTION>OPEN#begin_declare_section]] : 宣言セクションの開始
--[[END DECLARE SECTION>OPEN#end_declare_section]] : 宣言セクションの終了

-エラー処理関係
--[[WHENEVER>DECLARE STATEMENT#whenever]] : エラー・警告のトラップ指定

-ユーザー定義関数(UDF)およびBLOBフィルタ関係
--[[DECLARE EXTERNAL FUNCTION>DECLARE EXTERNAL FUNCTION#declaer_external_function]] : UDFの宣言
--[[DECLARE FILTER>DECLARE EXTERNAL FUNCTION#declare_filter]] : BLOBフィルタの宣言
--[[DROP EXTERNAL FUNCTION>DECLARE EXTERNAL FUNCTION#drop_external_function]] : UDFの削除
--[[DROP FILTER>DECLARE EXTERNAL FUNCTION#drop_filter]] : BLOBフィルタの削除


-その他
--[[SET SQL DIALECT>CONNECT#set_sql_dialect]] : SQL Dialect の設定
--[[SHOW SQL DIALECT>CONNECT#set_sql_dialect]] : 現在の SQL Dialect 設定/値の取得

*組込み関数 [#h3f23c92]
 Firebirdは、リソース節約のためか、高度な機能は標準UDFやユーザーのUDFでやりましょうという設計思想のようで、標準の組込み関数は少なめです。また、ほとんどが標準SQL準拠となっています。
-[[組込み関数一覧]]
--[[集計関数>組込み関数一覧#f_syukei]] : AVG(),COUNT(),MAX(),MIN(),SUM()など
--[[文字列関数>組込み関数一覧#f_string]] : SUBSTRING(), UPPER()など
--[[型変換関数>組込み関数一覧#f_cast]] : CAST()
--[[時間関数>組込み関数一覧#f_time]] : CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMPなど
--[[数値関数>組込み関数一覧#f_numeric]] : GEN_ID(),EXTRACT()など
--[[その他>組込み関数一覧#f_etc]] : CURRENT_USER,CURRENT_ROLLなど

*演算子と標準UDF [#a5953916]
-[[演算子>演算子とUDF#operator]] : 式で使用できる演算子の一覧
-[[標準UDF>演算子とUDF#udf]] : 標準で準備されているUDFの一覧(ユーザー定義関数)

*SQLなどのエラーについて [#vc305c38]
 SQLやデータベースエンジンのエラーに関しては、Language
Reference の Error Codes and Messages を参照して下さい。~
 ダウンロードは[[こちら(のInterBase6.0 Language References):http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download_documentation]]です。