SQLの概念用語とAS/400の概念用語対応図
コレクション |
*LIB・*JRN・*JRNRCV |
テーブル |
キーなしの物理ファイル |
行 (row) |
レコード |
列 (column) |
フィールド |
ビュー |
キーなし論理ファイル |
索引 |
キーつき論理ファイル |
認可識別(権限識別) |
*USRPRF |
SQLステートメント
データ定義
CREATE TABLE |
CRTPF |
ALTER TABLE |
CHGPF, ADD/RMVPFCST(CST=constraint:制約) |
DROP TABLE |
DLTF |
LABEL ON |
(DDS) COLHDG |
COMMENT ON |
Data Dictionaryコメント |
GRANT TABLE |
GRTOBJAUT |
REVOKE TABLE |
RVKOBJAUT |
データ操作
INSERT |
個別RPGプログラムと同様 |
DELETE |
個別RPGプログラムと同様 |
UPDATE |
個別RPGプログラムと同様 |
SELECT |
フィールド定義など |
CALL |
CALLと同様 |
LOCK TABLE |
ALCOBJと同様 |
COMMIT |
RPG COMMITと同様 |
ROLLBACK |
RPG ROLBKと同様 |
CONNECT |
遠隔DB接続 |
RELEASE |
遠隔DB解放 |
SQL命名規則
*SYS(Default) |
LIB名/FILE名, Collection名/Table名 (AS/400内) |
*SQL |
LIB名.FILE名, Collection名.Table名 (他システム用) |
SQLで使われるデータタイプ
|
指定形式 |
値の範囲 |
バイト数 |
省略時の桁数 |
ストリング |
文字 |
固定長 |
CHAR(n)
CHARACTER(n) |
n: 1 ~ 32766 |
1 から 32766 |
n |
CHARACTER(1) |
可変長 |
VARCHAR(n) |
n: 1 ~ 32740 |
1 から 32740 |
|
|
グラフィック |
固定長 |
GRAPHIC(n) |
n: 1 ~ 16383 |
1 から 16383 |
n * 2 |
GRAPHIC(1) |
可変長 |
VARGRAPHIC(n) |
n: 1 ~ 16370 |
1 から 16370 |
|
|
数値 |
10進数 |
パック10進数 |
DEC(n,d)
DECIMAL(n,d)
※ d=0のときは (n)のみでよい |
n: 1 ~ 31
d: 0 ~ 31 |
-1031+1 ~ +1031-1 |
n/2 + 1 |
DECIMAL(5,0) |
ゾーン10進数 |
NUMERIC(n,d)
※ d=0のときは (n)のみでよい |
n: 1 ~ 31
d: 0 ~ 31 |
-1031+1 ~ +1031-1 |
n |
NUMERIC(5,0) |
2進整数 |
短整数 |
SMALLINT |
-32768 ~ +32767 |
2 |
|
長整数 |
INT
INTEGER |
-2147486648 ~
+2147483647 |
4 |
|
浮動小数点 |
単精度 |
REAL |
約±1.17×10-38 ~
±3.40×1038 |
4 |
|
倍精度 |
DOUBLE
PRECISION |
約±2.20×10-308 ~
±17.79×10308 |
8 |
|
単精度 |
FLOAT(n) |
n: 1~24 |
|
4 |
FLOAT(53) |
倍精度 |
FLOAT(n) |
n: 25~53 |
|
8 |
|
日付・時刻 |
日付 |
DATE |
|
6/8/10 |
|
時刻 |
TIME |
|
8 |
|
タイムスタンプ |
TIMESTAMP |
|
26 |
|
SQL選択条件 WHERE/HAVINGとQRYSLT/GRPSLTの対応表
|
WHERE/HAVING文節 |
QRYSLT/GRPSLT式 |
比較演算子 |
>, <, =, >=(¬< ), <=(¬>),<>(¬=) |
*CAT,*GT, *LT, *EQ, *GE, *LE, *NE, *NG, *NL,
*CT
>, <, =, >=(¬< ), <=(¬>),¬= |
探索条件 |
[NOT] BETWEEN a AND b |
%RANGE(a b) |
[NOT] IN ('a','b','c') |
%VALUES('a' 'b' 'c') |
LIKE |
%WLDCRD |
※「¬」は記号論理学で、正式に否定を意味する記号ですが、残念ながら、コードページによっては、表示されない場合があります。したがってなるべくこの記号は使わないようにしましょう。
SQLとOPNQRYFの比較
SQL文節 |
OPNQRYFのキーワード |
SELECT |
FORMAT, MAPFLD |
FROM |
FILE |
WHERE |
QRYSLT |
WHERE = (JOIN) |
JFLD |
ORDER BY |
KEYFLD |
HAVING |
GRPSLT |
DISTINCT |
UNIQUEKEY |
UNION |
なし |
UPDATE, INSERT, DELETE |
OPNQRYF + RPGとなります |
関数(count, sum, avg, max, min,...) |
関数(%count, %sum, %avg, %max, %min...) |
備考
ANDとORの考え方(積と和)
a AND b = a * bの算術ルールと同じ
a OR b = a + bの算術ルールと同じ
a AND (b OR c) = a * (b + c) = a*b + a*c = (a AND b) OR (a
AND c)
a AND b OR c = a * b + c
2000-9-30 |