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 |