この節では、 コマンド行から SQL (構造化照会言語) ステートメントを使用する方法について説明します。 これらのステートメントは、 オペレーティング・システムのコマンド・プロンプトから直接実行できるもので、 コマンドをアプリケーション・プログラムに書き込む場合とほぼ同じようにして、 データベースの表や索引や視点に格納されている情報を定義したり実行したりするのに使用できます。 情報については追加や削除や更新ができます。レポートは表の内容から生成できます。
コマンド行プロセッサーによって実行できる SQL ステートメントはすべて、 表 8 の CLP 列にリストされています。 SQL ステートメントの構文は、コマンド行から実行できるものであれ、 ソース・プログラムに組み込まれているものであれ、 すべてが SQL 解説書 に記述されています。 多くの場合、組み込み SQL ステートメントと CLP SQL ステートメントの構文は同じです。 ただし、ホスト変数、パラメーター・マーカー、記述子名、 およびステートメント名は、組み込み SQL にのみ適用できます。 CLOSE、CONNECT、DECLARE CURSOR、FETCH、OPEN、 および SELECT の構文は、組み込み型のものと CLP によって実行されるものとでは違います。 これらのステートメントの CLP 構文を次に示します。
>>-CALL----+-SQLJ.INSTALL_JAR--(--jar-url, jar-id--)--+-------->< +-SQLJ.REPLACE_JAR--(--jar-url, jar-id--)--+ +-SQLJ.REMOVE_JAR--(--jar-id--)------------+ '-SQLJ.REFRESH_CLASSES--(--void--)---------'
>>-CLOSE--cursor-name------------------------------------------><
>>-CONNECT------------------------------------------------------> >-----+---------------------------------------------------------------+> +-TO--server-name--+-----------------+---+--------------------+-+ | '-| lock-block |--' '-| authorization |--' | +-RESET---------------------------------------------------------+ | (1) | '-| authorization |---------------------------------------------' >-------------------------------------------------------------->< authorization |---USER--authorization-name------------------------------------> >-----+--------------------------------------------------------+-| +-USING--password--+-----------------------------------+-+ | '-NEW--password--CONFIRM--password--' | '-CHANGE PASSWORD----------------------------------------' lock-block .-IN SHARE MODE--------------------------. |---+----------------------------------------+------------------| '-IN EXCLUSIVE MODE--+----------------+--' '-ON SINGLE NODE-'
注:
>>-DECLARE--cursor-name--CURSOR---+-----------+-----------------> '-WITH HOLD-' >----FOR--select-statement-------------------------------------><
>>-FETCH--+------+--cursor-name---------------------------------> '-FROM-' >-----+-------------------------------------------------------+->< +-FOR--+-ALL-+---+-ROW--+-------------------------------+ | '-n---' '-ROWS-' | '-LOB--+-COLUMN--+---ALL--INTO--filename--+-APPEND----+-' '-COLUMNS-' +-NEW-------+ '-OVERWRITE-'
>>-OPEN--cursor-name-------------------------------------------><
fullselect |--+-subselect---------+----------------------------------------> +-(fullselect)------+ '-| values-clause |-' .---------------------------------------------------. V | >--------+---------------------------------------------+--+-----| '--+-UNION---------+---+-subselect---------+--' +-UNION ALL-----+ +-(fullselect)------+ +-EXCEPT--------+ '-| values-clause |-' +-EXCEPT ALL----+ +-INTERSECT-----+ '-INTERSECT ALL-' subselect |---select-clause--from-clause----------------------------------> >----+--------------+--+-----------------+--+---------------+---| '-where-clause-' '-group-by-clause-' '-having-clause-' select-clause .-ALL------. |---SELECT----+----------+--------------------------------------> '-DISTINCT-' >-----+-*----------------------------------------------+--------| | .-,-----------------------------------------. | | V | | '----+-expression--+----------------------+-+--+-' | | .-AS-. | | | '-+----+--column-name--' | +-table-name.*-------------------------+ +-view-name.*--------------------------+ '-correlation-name.*-------------------' values-clause .-,---------------------. V | |---VALUES-------| row-expression |---+-------------------------| row-expression |---+--+-expression-+---------------+---------------------------| | '-NULL-------' | | .-,-----------------. | | V | | '-(------+-expression-+--+---)--' '-NULL-------'
注:
たとえば、次のようにします。
db2 call sqlj.install_jar ( "file:///C:/java/jarfiles/myprocs.zip", "myprocs" )
たとえば、表 t1 を次のように作成します。
create table t1 (i1 int , i2 int); insert into t1 values (1,1),(2,0),(3,null);
ステートメント select i1/i2 from t1 は、次の結果を生成します。
1 --- 1 + - 3 records selected |
CLP を介する SQL ステートメントを使用してデータベースを照会する場合、 CLP がデータを表示する仕方を変更することができます。 このことは、CLP バインド・ファイルを照会するデータベースに対して再バインドすることにより行います。 たとえば、日時を ISO 形式で表示したい場合、次のようにできます。
db2clpcs.bnd + db2clprr.bnd + db2clpur.bnd + db2clprs.bnd + db2clpns.bnd
db2 bind @clp.lst collection nullid datetime iso
コマンド行プロセッサーの詳細については、コマンド行プロセッサー (CLP)を参照してください。 SQL ステートメントの構文および SQL ステートメントの関数の詳細については、 SQL 解説書 を参照してください。 構文図の読み方については、付録 A, 構文図の読み方を参照してください。
表 8. SQL ステートメント (DB2 ユニバーサル・データベース)
SQL ステートメント | 動的1 | コマンド行プロセッサー (CLP) | コール・レベル・ インターフェース3 (CLI) | SQL プロシージャー | ||
---|---|---|---|---|---|---|
ALLOCATE CURSOR | X | |||||
割り当てステートメント | X | |||||
ASSOCIATE LOCATORS | X | |||||
ALTER { BUFFERPOOL, NICKNAME,10 NODEGROUP, SERVER,10 TABLE, TABLESPACE, USER MAPPING,10 TYPE, VIEW } | X | X | X | |||
BEGIN DECLARE SECTION2 | ||||||
CALL | X9 | X4 | X | |||
CASE ステートメント | X | |||||
CLOSE | X | SQLCloseCursor()、 SQLFreeStmt() | X | |||
COMMENT ON | X | X | X | X | ||
COMMIT | X | X | SQLEndTran、SQLTransact() | X | ||
複合 SQL (組み込み) | X4 | |||||
複合ステートメント | X | |||||
CONNECT (タイプ 1) | X | SQLBrowseConnect()、 SQLConnect()、 SQLDriverConnect() | ||||
CONNECT (タイプ 2) | X | SQLBrowseConnect()、 SQLConnect()、 SQLDriverConnect() | ||||
CREATE { ALIAS, BUFFERPOOL, DISTINCT TYPE, EVENT MONITOR, FUNCTION, FUNCTION MAPPING,10 INDEX, INDEX EXTENSION, METHOD, NICKNAME,10 NODEGROUP, PROCEDURE, SCHEMA, TABLE, TABLESPACE, TRANSFORM TYPE MAPPING,1 TRIGGER, USER MAPPING,10 TYPE, VIEW, WRAPPER10 } | X | X | X | X11 | ||
DECLARE CURSOR2 | X | SQLAllocStmt() | X | |||
DECLARE GLOBAL TEMPORARY TABLE | X | X | X | X | ||
DELETE | X | X | X | X | ||
DESCRIBE8 | X | SQLColAttributes()、 SQLDescribeCol()、 SQLDescribParam()6 | ||||
DISCONNECT | X | SQLDisconnect() | ||||
DROP | X | X | X | X11 | ||
END DECLARE SECTION2 | ||||||
EXECUTE | SQLExecute() | X | ||||
EXECUTE IMMEDIATE | SQLExecDirect() | X | ||||
EXPLAIN | X | X | X | X | ||
FETCH | X | SQLExtendedFetch()7、 SQLFetch()、SQLFetchScroll()7 | X | |||
FLUSH EVENT MONITOR | X | X | X | |||
FOR ステートメント | X | |||||
FREE LOCATOR | X4 | X | ||||
GET DIAGNOSTICS | X | |||||
GOTO ステートメント | X | |||||
GRANT | X | X | X | X | ||
IF ステートメント | X | |||||
INCLUDE2 | ||||||
INSERT | X | X | X | X | ||
ITERATE | X | |||||
LEAVE ステートメント | X | |||||
LOCK TABLE | X | X | X | X | ||
LOOP ステートメント | X | |||||
OPEN | X | SQLExecute()、SQLExecDirect() | X | |||
PREPARE | SQLPrepare() | X | ||||
REFRESH TABLE | X | X | X | |||
RELEASE | X | X | ||||
RELEASE SAVEPOINT | X | X | X | X | ||
RENAME TABLE | X | X | X | |||
RENAME TABLESPACE | X | X | X | |||
REPEAT ステートメント | X | |||||
RESIGNAL ステートメント | X | |||||
RETURN ステートメント | X | |||||
REVOKE | X | X | X | |||
ROLLBACK | X | X | SQLEndTran()、SQLTransact() | X | ||
SAVEPOINT | X | X | X | X | ||
select-statement | X | X | X | X | ||
SELECT INTO | X | |||||
SET CONNECTION | X | SQLSetConnection() | ||||
SET CURRENT DEFAULT TRANSFORM GROUP | X | X | X | X | ||
SET CURRENT DEGREE | X | X | X | X | ||
SET CURRENT EXPLAIN MODE | X | X | X、SQLSetConnectAttr() | X | ||
SET CURRENT EXPLAIN SNAPSHOT | X | X | X、SQLSetConnectAttr() | X | ||
SET CURRENT PACKAGESET | ||||||
SET CURRENT QUERY OPTIMIZATION | X | X | X | X | ||
SET CURRENT REFRESH AGE | X | X | X | X | ||
SET EVENT MONITOR STATE | X | X | X | X | ||
SET INTEGRITY | X | X | X | |||
SET PASSTHRU10 | X | X | X | X | ||
SET PATH | X | X | X | X | ||
SET SCHEMA | X | X | X | X | ||
SET SERVER OPTION10 | X | X | X | X | ||
SET transition-variable5 | X | X | X | X | ||
SIGNAL ステートメント | X | |||||
SIGNAL SQLSTATE5 | X | X | X | |||
UPDATE | X | X | X | X | ||
VALUES INTO | X | |||||
WHENEVER2 | ||||||
WHILE ステートメント | X | |||||
|