DerbyのサポートするSQL-92の機能 SQL-92features supported by Derbyfeatures not supported by Derby

SQL-92のサポートには4つのレベルがあります。

  • SQL92E

    初歩的

  • SQL92T

    過渡的 FIPS 127-2という発行物にてNISTが定義

  • SQL92I

    中級

  • SQL92F

    完全

基本データ型

次の表ではDerbyにて利用可能なSQL-92の基本データ型を示します。 利用可能なSQL-92の機能: 基本データ型 機能 定義する仕様 SMALLINT SQL92E Yes INTEGER SQL92E Yes DECIMAL(p,s) SQL92E Yes NUMERIC(p,s) SQL92E Yes REAL SQL92E Yes FLOAT(p) SQL92E Yes DOUBLE PRECISION SQL92E Yes CHAR(n) SQL92E Yes

基本算術演算 SQL-92の機能のサポート:基本的な算術演算 機能 定義する仕様 +, *, -, /, unary +, unary - SQL92E Yes
基本的な比較SQL-92の機能のサポート:基本的な比較 機能 定義する仕様 <, >, <= ,>=, <>, = SQL92E Yes
基本的な述語SQL-92の機能のサポート:基本的な述語 機能 定義する仕様 BETWEEN, LIKE, NULL SQL92E Yes
定量的な述語SQL-92の機能のサポート:定量的な述語 機能 定義する仕様 IN, ALL/SOME, EXISTS SQL92E Yes
スキーマの定義SQL-92の機能のサポート:スキーマの定義 機能 定義する仕様 SQL92E Yes ビュー SQL92E Yes 権限 SQL92E Yes
列の属性SQL-92の機能のサポート:列の属性 機能 定義する仕様 既定値 SQL92E Yes 空値をとれるかの定義 SQL92E Yes
制約(延期できない)SQL-92の機能のサポート: 制約(延期できない) 機能 定義する仕様 NOT NULL SQL92E Yes (SYSCONSTRAINTSには記録されない) UNIQUE/PRIMARY KEY SQL92E Yes FOREIGN KEY SQL92E Yes CHECK SQL92E Yes View WITH CHECK OPTION SQL92E No ビューの更新はできない
カーソルSQL-92の機能のサポート:カーソル 機能 定義する仕様 DECLARE, OPEN, FETCH, CLOSE SQL92E Yes JDBCのメソッド呼び出しが該当 UPDATE, DELETE CURRENT SQL92E Yes
動的なSQL1SQL-92の機能のサポート: 動的なSQL1 機能 定義する仕様 ALLOCATE / DEALLOCATE / GET / SET DESCRIPTOR SQL92T Yes JDBCのメソッド呼び出しにより実現 PREPARE / EXECUTE / EXECUTE IMMEDIATE SQL92T Yes JDBCのメソッド呼び出しにより実現 DECLARE, OPEN, FETCH, CLOSE, UPDATE, DELETE dynamic cursor SQL92T Yes JDBCのメソッド呼び出しにより実現 DESCRIBE output SQL92T JDBCにより実現
基本的な情報スキーマSQL-92の機能のサポート 基本的な情報スキーマ 機能 定義する仕様 TABLES SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS VIEWS SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS COLUMNS SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS
基本的なスキーマへの操作SQL-92の機能のサポート: 基本的なスキーマへの操作 機能 定義する仕様 CREATE / DROP TABLE SQL92T Yes CREATE / DROP VIEW SQL92T Yes GRANT / REVOKE SQL92T Yes ALTER TABLE ADD COLUMN SQL92T Yes ALTER TABLE DROP COLUMN SQL92T Yes
表の結合SQL-92の機能のサポート: 表の結合 機能 定義する仕様 INNER JOIN SQL92T Yes natural join SQL92T No LEFT, RIGHT OUTER JOIN SQL92T Yes join condition SQL92T Yes named columns join SQL92T Yes
日時のデータ型SQL-92の機能のサポート: 日時のデータ型 機能 定義する仕様 単純なDATE, TIME, TIMESTAMP, INTERVAL SQL92T Yes ただしINTERVALは無い。 日時の定数 SQL92T Yes 日時の演算 SQL92T Yes Javaのメソッドにて可能 日時の比較 SQL92T Yes 述語: OVERLAPS SQL92T Yes Javaのメソッドにて可能
VARCHAR データ型SQL-92の機能のサポート: VARCHAR 機能 定義する仕様 LENGTH SQL92T Yes 連結 (||) SQL92T Yes
トランザクションの分離SQL-92の機能のサポート: トランザクションの分離 機能 定義する仕様 READ WRITE / READ ONLY SQL92T JDBCの利用、データベースの属性、記録媒体による RU, RC, RR, SER SQL92T Yes
ユーザ毎に複数スキーマを持つSQL-92の機能のサポート: ユーザ毎に複数スキーマを持つ 機能 定義する仕様 SCHEMATA ビュー SQL92T SYS.SYSSCHEMAS
権限表SQL-92の機能のサポート: 権限表 機能 定義する仕様 TABLE_PRIVILEGES SQL92T No COLUMNS_PRIVILEGES SQL92T No USAGE_PRIVILEGES SQL92T No
表への操作SQL-92の機能のサポート: 表への操作 機能 定義する仕様 UNION relaxation SQL92I Yes EXCEPT SQL92I Yes INTERSECT SQL92I Yes CORRESPONDING SQL92I No
スキーマの定義文SQL-92の機能のサポート: スキーマの定義文 機能 定義する仕様 CREATE SCHEMA SQL92I 部分的に実現
ユーザ認証SQL-92の機能のサポート: ユーザ認証 機能 定義する仕様 SET SESSION AUTHORIZATION SQL92I SET SCHEMAを使う CURRENT_USER SQL92I Yes SESSION_USER SQL92I Yes SYSTEM_USER SQL92I No
表の制約SQL-92の機能のサポート:表の制約 機能 定義する仕様 TABLE CONSTRAINTS SQL92I SYS.SYSCONSTRAINTS REFERENTIAL CONSTRAINTS SQL92I SYS.SYSFOREIGNKEYS CHECK CONSTRAINTS SQL92I SYS.SYSCHECKS
スキーマ情報の提供SQL-92の機能のサポート: スキーマ情報の提供 機能 定義する仕様 SQL_FEATURES SQL92I/FIPS 127-2 JDBCのDatabaseMetaDataを利用 SQL_SIZING SQL92I/FIPS 127-2 JDBCのDatabaseMetaDataを利用
日時の全機能SQL-92の機能のサポート: 日時の全機能 機能 定義する仕様 TIMEやTIMESTAMPの精度 SQL92F Yes
全ての文字列処理SQL-92の機能のサポート: 全ての文字列処理 機能 定義する仕様 POSITION式 SQL92F JavaのメソッドあるいはLOCATEを利用 UPPER/LOWER 関数 SQL92F Yes
様々SQL-92の機能のサポート: 様々 機能 定義する仕様 デリミトされた識別子 SQL92E Yes 相互に関連した副問合せ SQL92E Yes 挿入・更新・削除文 SQL92E Yes 結合 SQL92E Yes Whereによる限定 SQL92E Yes Group by SQL92E Yes Having SQL92E Yes 集約関数 SQL92E Yes Order by SQL92E Yes 選択式 SQL92E Yes Select * SQL92E Yes SQLCODE SQL92E No SQL-92では推奨されない。 SQLSTATE SQL92E Yes ビューでのUNION、INTERSECTおよびEXCEPT SQL92T Yes 暗黙の数値型変換 SQL92T Yes 暗黙の文字列型変換 SQL92T Yes 診断情報の取得 SQL92T JDBCのSQLExceptionsを利用 グループへの処理 SQL92T Yes selectの選択項目一覧における限定された* SQL92T Yes 小文字の識別子 SQL92T Yes 空値とすることのできる主キー SQL92T No 複数のモジュールサポート SQL92T No (JDBCの一部ではなく、必要ではない。) 参照性の削除処理 SQL92T CASCADE、SET NULL、RESTRICTやNO ACTION CAST関数 SQL92T Yes INSERT式 SQL92T Yes 明示的な既定値 SQL92T Yes キーワードの緩和 SQL92T Yes Domainの定義 SQL92I No CASE式 SQL92I 部分的にサポート 合成された文字列の定数 SQL92I 連結が利用できる LIKEの機能強化 SQL92I Yes UNIQUEの述語 SQL92I No 表の利用情報 SQL92I SYS.SYSDEPENDS 中間的な情報スキーマ SQL92I JDBCのDatabaseMetaDataおよびのシステム表が利用可 副プログラムのサポート SQL92I より機能が豊富なJDBCでは関係が無い。 中間的なSQLへのフラグ付け SQL92I No スキーマの操作 SQL92I Yes 長い識別子 SQL92I Yes 両側への外部結合 SQL92I No タイムゾーンの指定 SQL92I No スクロール可能なカーソル SQL92I 部分的 (JDBC2.0ではスクロール可能なinsensitiveなカーソル。) 中間的な集合関数のサポート SQL92I 部分的に実現 文字セットの定義 SQL92I Javaのロケールをサポート 文字セットへの名前付け SQL92I Javaのロケールをサポート スカラー副問合せの値 SQL92I Yes 拡張されたnull述部 SQL92I Yes 制約の管理 SQL92I Yes (ADD/DROP CONSTRAINT) FOR BIT DATA 型 SQL92F Yes Assertion 制約 SQL92F No 一時表 SQL92F DECLARE GLOBAL TEMPORARY TABLEで、部分的に実現。 完全な動的SQL SQL92F No 完全なvalues式 SQL92F Yes 真の値判定 SQL92F Yes 導出表をFROMにおける SQL92F Yes アンダースコアを後につけることができる SQL92F Yes Indicatorデータ型 SQL92F JDBCとは関連しない。 参照する名前の順番 SQL92F No 完全なSQLのフラグ付け SQL92F No 行および表の構築子 SQL92F Yes カタログ名の限定子 SQL92F No 単純表 SQL92F No CHECK制約での副問合せ SQL92F No ただしJavaのメソッドで同等のことができる。 Union join SQL92F No Collationやtranslation SQL92F Javaのロケールが利用可能 参照性の更新処理 SQL92F RESTRICTおよびNO ACTION。 トリガによりその他も可能。 ALTER domain SQL92F No INSERT 列権限 SQL92F No 参照性のMATCH型 SQL92F No ビューのCHECK制約の機能強化 SQL92F No、ビューは更新できない。 Session管理 SQL92F JDBCを利用 接続管理 SQL92F JDBCを利用 自己参照的な操作 SQL92F Yes insensitiveなカーソル SQL92F Yes JDBC 2.0を通して可能 完全な集合関数 SQL92F 部分的な実現 カタログへのフラグ付け SQL92F No 局所的な表への参照 SQL92F No カーソル全体の更新 SQL92F No