Upload
lyhanh
View
280
Download
1
Embed Size (px)
Citation preview
IBM
DB2
SQL
7
SC88-8540-01
(SC09-2974-01)
IBM
DB2
SQL
7
SC88-8540-01
(SC09-2974-01)
! 1571S.
IBM
URL
http://www.ibm.com/jp/manuals/main/mail.html
IBM
http://www.ibm.com/jp/manuals/
(URL )
SC09-2974-01IBM DB2 Universal Database
SQL Reference
Version 7
1 2001.8
W3W9W3W5W7(*)()
* W3W9W3W5W7
Copyright International Business Machines Corporation 1993, 2001. All rights reserved.
Translation: Copyright IBM Japan 2001
1 . . . . . . . . . . . . 1 . . . . . . . . . . . 1 . . . . . . . . . . . . 1 . . . . . . . . . . . . 1
. . . . . . . . . . . . 3 . . . . . . . . . . . 5 . . . . . . . . . . . . 5 . . . . . . . . . . 5
. . . . . . . . . . . . . 5
2 . . . . . . . . . . . . 9 . . . . 9 (SQL) . . . . . . . . . 9 . . . . . . . . . . . . 10 . . . . . . . . . . . . . 12. . . . . . . . 12
. . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . 14. . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . 15 . . . . . . . . . . . . 16 . . . . . . . . . . . . 16 . . . . . . . . . . . . 16 . . . . . . . . . . . 16
. . . . . . . . . . . . . . . 16 . . . . . . . . . . . . 17 . . . . . . . . . . . . 17 . . . . . . . . . . . 20
. . . . . . . . . . . . 21 (RR) . . . . . . . 22 (RS) . . . . . . . . . 22 (CS) . . . . . . . . . 23 (UR) . . . . . . 23 . . . . . . . . . 24
. . . . . . . . . . . . . . . 24. . . . . . . . . . . . . . . 24 . . . . . . . . . . . . 24
. . . . . . . . . . . . 24 SQL . . . . . . . . . . . . 27
SQL . . . . . . . . . . . 27 SQL . . . . . . . . . . . . 27 SQL . . . . . . . . . . . . 28
DB2 (CLI) Open Database Connectivity (ODBC) . 28JDBC (Java Database Connectivity) JavaEmbedded SQL (SQLJ) . . . . 29 . . . . . . . . . . . . 29. . . . . . . . . . . . 30 . . . . . . . . . . . . . 30 . . . . . 31 . . . . . . . . 32
. . . . . . . . . 33 . . . . . . . . . . . . . 34 . . . 35 . . . . 37. . . . . . . . . . . 38 . . . . . . . . . . . . 38
. . . . 39 . . . . . 40CONNECT ( 1) CONNECT ( 2) . . . . . . . . . . . . . 41 . . . . . . . . . 41 . . 46 . . . . 51
DB2 . . . . . . . . . . 51 . . . . . . . . . . 51DB2 . . 52 . . 54 . . 54. . . . . . . . . . . . . . 57 . . . . . 58. . . . . 58 . . . . . 59 . . . . . . . . . . . . 60 . . . . . . . . . . . . 61. . . . . . . . . . . . . . 62 . . . . . . . . . . . 62
Copyright IBM Corp. 1993, 2001 iii
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 . . . . . . . . 65. . . . . . . . . . . . . . . 65
MBCS . . . . . . 66 . . . . . . . . . . . . . 66
MBCS . . . . . . 67ID . . . . . . . . . . . . . . . 67
SQL ID . . . . . . . . . . . . 67 ID . . . . . . . . . . . . 68
68. . . . . . . . . . . . . . . 73 ID . . . . . . . . . . 74 SQL . . . . 75 ID . . . . 77
. . . . . . . . . . . 77 . . . . . . . . . . . . . 78 (LOB) . . . . . 78 . . . . . . . . . . 80 . . . . . . . . . . 822 . . . . . . . . . . 83. . . . . . . . . . . . . . 83 / . . . . . . . . . . 84DATALINK . . . . . . . . . . 87 . . . . . . . . 89
. . . . . 92 . . . . . . 93 . . . . . . . . . . . 96 . . . . . . . . . . 97 . . . . . . . . 98 / . . . . . . . 101DATALINK . . . . . . . 101 . . . . 103 . . . . . . . 104 . . . . . . . . . . . 104 . . . . . . . . . 104 / . . . . . . . . 108 . . . . . . 108 . . . . . . . . . 109
. . . . . . . 110 . . . . . . . . . 110 . . . . . . . . . 1112 (BLOB) . . . 111 . . . . . . . . . . . . . 112DATE () . . . . . . . . . . 112TIME () . . . . . . . . . . 112TIMESTAMP () . . . 113DATALINK () . . . . . 113
. . . . . . . . 113 . . . . . . . . 113
. . . . . . . . 114 . . . . . . . . . . . 116 . . . . . . . . . . . . . . 117 . . . . . . . . . . . . 118 . . . . . . . . . 11810 . . . . . . . . . . . 118 . . . . . . . . 11816 . . . . . . . . . . . 119 . . . . . . . . 119 . . 120
. . . . . . . . . . 120CLIENT ACCTNG. . . . . . . . . 120CLIENT APPLNAME. . . . . . . . 121CLIENT USERID . . . . . . . . . 121CLIENT WRKSTNNAME . . . . . . 122CURRENT DATE . . . . . . . . . 122CURRENT DEFAULT TRANSFORMGROUP . . . . . . . . . . . . 123CURRENT DEGREE . . . . . . . . 123CURRENT EXPLAIN MODE . . . . . 124CURRENT EXPLAIN SNAPSHOT . . . 125CURRENT NODE . . . . . . . . . 126CURRENT PATH . . . . . . . . . 127CURRENT QUERY OPTIMIZATION . . 128CURRENT REFRESH AGE. . . . . . 128CURRENT SCHEMA . . . . . . . . 129CURRENT SERVER . . . . . . . . 129CURRENT TIME . . . . . . . . . 129CURRENT TIMESTAMP . . . . . . 130CURRENT TIMEZONE . . . . . . . 130USER . . . . . . . . . . . . . 131
. . . . . . . . . . . . . . 131 . . . . . . . . . 132 . . . . . . . . . . . . 132 . . 134 . . . . . 136
. . . . . . . . . . 138 SQL . . . . 138BLOBCLOB DBCLOB . . . . . . . . . . 141 . . . . . . . 141BLOBCLOB DBCLOB . . . . . . . . . 142 . . . . 145
iv SQL
||||||||
. . . . . . . . . . . . . . 146SQL . . . . . . . . . . . . . 146 . . . . . . . . . . . . 147 . . . . . . . . . 147SQL . . . . . . . . . . . 148 . . . . . . . . . . . . 148 . . . . . . . . . 152
. . . . . . . . . . . . . 153 SQL 154 . . . . . . 154 . . . . . . . . 155 . . . . . . . . . . 155 . . . . . 157 . . . . . . . . . 157 . . . . . . . . 158
. . . . 159 . . . . . . . . . . . . . . . 161 . . . . . . . 162 . . . . . . . . . . . 162 . . . . . . 1652 . . . . . . . 166 10 . . . . . . 1662 10 . . . . . . 166SQL 10 . . . . . . . 167 . . . . . . . 167 167 . . . . . . . . . 168 / . . . . . . . 168SQL / . . 169 . . . . . . . . . 174CASE . . . . . . . . . . . . 174CAST . . . . . . . . . . . 176 . . . . . . . . . . 179OLAP . . . . . . . . . . . 181 . . . . . . . . 187 . . . . . . . . . 188 . . . . . . . . . 189
. . . . . . . . . . . . . . 194 . . . . . . . . . . . . 195 . . . . . . . . . . . . 196BETWEEN . . . . . . . . . 199EXISTS . . . . . . . . . . 201IN . . . . . . . . . . . . 202LIKE . . . . . . . . . . . 205
NULL . . . . . . . . . . . 210TYPE . . . . . . . . . . . 211
. . . . . . . . . . . . . 213 . . . . . . . . . . . . . . 215
4 . . . . . . . . . . . . 217 . . . . . . . . . . . . . 234
AVG . . . . . . . . . . . . . 235CORRELATION . . . . . . . . . 237COUNT . . . . . . . . . . . . 238COUNT_BIG . . . . . . . . . . 240COVARIANCE . . . . . . . . . . 242GROUPING . . . . . . . . . . . 243MAX . . . . . . . . . . . . . 245MIN . . . . . . . . . . . . . 247REGRESSION . . . . . . . . 249STDDEV . . . . . . . . . . . . 252SUM . . . . . . . . . . . . . 253VARIANCE . . . . . . . . . . . 254
. . . . . . . . . . . 255ABS ABSVAL . . . . . . . 256ACOS . . . . . . . . . . . . . 257ASCII . . . . . . . . . . . . . 258ASIN . . . . . . . . . . . . . 259ATAN. . . . . . . . . . . . . 260ATAN2 . . . . . . . . . . . . 261BIGINT . . . . . . . . . . . . 262BLOB . . . . . . . . . . . . . 263CEILING CEIL . . . . . . . 264CHAR. . . . . . . . . . . . . 265CHR . . . . . . . . . . . . . 270CLOB . . . . . . . . . . . . . 271COALESCE . . . . . . . . . . . 272CONCAT. . . . . . . . . . . . 273COS . . . . . . . . . . . . . 274COT . . . . . . . . . . . . . 275DATE . . . . . . . . . . . . . 276DAY . . . . . . . . . . . . . 277DAYNAME . . . . . . . . . . . 278DAYOFWEEK . . . . . . . . . . 279DAYOFWEEK_ISO . . . . . . . . 280DAYOFYEAR . . . . . . . . . . 281DAYS . . . . . . . . . . . . . 282DBCLOB . . . . . . . . . . . . 283DECIMAL . . . . . . . . . . . 284DECRYPT_BIN DECRYPT_CHAR 287
v
||
||
||
DEGREES . . . . . . . . . . . 289DEREF . . . . . . . . . . . . 290DIFFERENCE . . . . . . . . . . 291DIGITS . . . . . . . . . . . . 292DLCOMMENT . . . . . . . . . . 293DLLINKTYPE . . . . . . . . . . 294DLURLCOMPLETE . . . . . . . . 295DLURLPATH . . . . . . . . . . 296DLURLPATHONLY . . . . . . . . 297DLURLSCHEME . . . . . . . . . 298DLURLSERVER . . . . . . . . . 299DLVALUE . . . . . . . . . . . 300DOUBLE . . . . . . . . . . . . 302ENCRYPT . . . . . . . . . . . 304EVENT_MON_STATE . . . . . . . 307EXP . . . . . . . . . . . . . 308FLOAT . . . . . . . . . . . . 309FLOOR . . . . . . . . . . . . 310GETHINT . . . . . . . . . . . 311GENERATE_UNIQUE . . . . . . . 312GRAPHIC . . . . . . . . . . . 314HEX . . . . . . . . . . . . . 315HOUR. . . . . . . . . . . . . 317IDENTITY_VAL_LOCAL . . . . . . 318INSERT . . . . . . . . . . . . 323INTEGER . . . . . . . . . . . 325JULIAN_DAY . . . . . . . . . . 326LCASE LOWER . . . . . . . 327LCASE (SYSFUN ) . . . . . 328LEFT . . . . . . . . . . . . . 329LENGTH . . . . . . . . . . . . 330LN . . . . . . . . . . . . . . 332LOCATE . . . . . . . . . . . . 333LOG . . . . . . . . . . . . . 334LOG10 . . . . . . . . . . . . 335LONG_VARCHAR. . . . . . . . . 336LONG_VARGRAPHIC . . . . . . . 337LTRIM . . . . . . . . . . . . 338LTRIM (SYSFUN ) . . . . . 339MICROSECOND . . . . . . . . . 340MIDNIGHT_SECONDS . . . . . . . 341MINUTE . . . . . . . . . . . . 342MOD . . . . . . . . . . . . . 343MONTH . . . . . . . . . . . . 344MONTHNAME . . . . . . . . . . 345MQPUBLISH . . . . . . . . . . 346
MQREAD . . . . . . . . . . . 349MQRECEIVE . . . . . . . . . . 351MQSEND . . . . . . . . . . . 353MQSUBSCRIBE . . . . . . . . . 355MQUNSUBSCRIBE . . . . . . . . 357MULTIPLY_ALT . . . . . . . . . 359NODENUMBER . . . . . . . . . 361NULLIF . . . . . . . . . . . . 363PARTITION . . . . . . . . . . . 364POSSTR . . . . . . . . . . . . 366POWER . . . . . . . . . . . . 368QUARTER . . . . . . . . . . . 369RADIANS . . . . . . . . . . . 370RAISE_ERROR . . . . . . . . . . 371RAND. . . . . . . . . . . . . 373REAL . . . . . . . . . . . . . 374REC2XML . . . . . . . . . . . 375REPEAT . . . . . . . . . . . . 380REPLACE . . . . . . . . . . . 381RIGHT . . . . . . . . . . . . 382ROUND . . . . . . . . . . . . 383RTRIM . . . . . . . . . . . . 385RTRIM (SYSFUN ) . . . . . 386SECOND . . . . . . . . . . . . 387SIGN . . . . . . . . . . . . . 388SIN . . . . . . . . . . . . . 389SMALLINT . . . . . . . . . . . 390SOUNDEX . . . . . . . . . . . 391SPACE . . . . . . . . . . . . 392SQRT . . . . . . . . . . . . . 393SUBSTR . . . . . . . . . . . . 394TABLE_NAME . . . . . . . . . . 398TABLE_SCHEMA . . . . . . . . . 400TAN . . . . . . . . . . . . . 402TIME . . . . . . . . . . . . . 403TIMESTAMP . . . . . . . . . . 404TIMESTAMP_ISO . . . . . . . . . 406TIMESTAMPDIFF . . . . . . . . . 407TRANSLATE . . . . . . . . . . 409TRUNCATE TRUNC . . . . . 412TYPE_ID . . . . . . . . . . . . 413TYPE_NAME . . . . . . . . . . 414TYPE_SCHEMA . . . . . . . . . 415UCASE UPPER . . . . . . . 416VALUE . . . . . . . . . . . . 417VARCHAR . . . . . . . . . . . 418
vi SQL
||
||
||
||
||||||||||||
||
||
VARGRAPHIC . . . . . . . . . . 420WEEK . . . . . . . . . . . . 422WEEK_ISO . . . . . . . . . . . 423YEAR . . . . . . . . . . . . . 424
. . . . . . . . . . . . . 425MQREADALL . . . . . . . . . . 426MQRECEIVEALL . . . . . . . . . 428SQLCACHE_SNAPSHOT . . . . . . 431
. . . . . . . . . . 432GET_ROUTINE_SAR . . . . . . . . 433PUT_ROUTINE_SAR . . . . . . . . 434
. . . . . . . . . . 436
5 . . . . . . . . . . . . 439 . . . . . . . . . . . . . 440
SELECT . . . . . . . . . . 441FROM . . . . . . . . . . . 445 . . . . . . . . . . . . 446 . . . . . . . . . . . . 450WHERE . . . . . . . . . . 452GROUP BY . . . . . . . . . 453HAVING . . . . . . . . . . 460
. . . . . . . . . . . . 461 . . . . . . . . . . . . . 464CUBE ROLLUP . . . . . . . . . . . . . . 468 . . . . . . . . . . . . . 477 . . . . . . . . . . . 480
. . . . . . . . . 482 . . . . . . . . . . . . 483ORDER BY . . . . . . . . . 486UPDATE . . . . . . . . . . 489READ ONLY . . . . . . . . 490FETCH FIRST . . . . . . . . 491OPTIMIZE FOR . . . . . . . 492 . . . . . . 493
6 SQL . . . . . . 495SQL . . . 499 . . . . . . . . 500 . . . . . . . . . 501 . . . 502 . . . 502 . . . . . . . . . 503 SQL 503
SQL . . . . . . . . . . 504SQLCODE . . . . . . . . . . . 504SQLSTATE . . . . . . . . . . . 505
SQL . . . . . . . . . . . 506ALTER BUFFERPOOL . . . . . . . . 507ALTER NICKNAME . . . . . . . . . 509ALTER NODEGROUP . . . . . . . . 513ALTER SEQUENCE . . . . . . . . . 517ALTER SERVER . . . . . . . . . . 521ALTER TABLE . . . . . . . . . . 525ALTER TABLESPACE . . . . . . . . 554ALTER TYPE () . . . . . . . . 560ALTER USER MAPPING . . . . . . . 567ALTER VIEW . . . . . . . . . . . 570BEGIN DECLARE SECTION . . . . . . 572CALL . . . . . . . . . . . . . . 575CLOSE . . . . . . . . . . . . . 583COMMENT . . . . . . . . . . . . 585COMMIT. . . . . . . . . . . . . 596 SQL () . . . . . . . . . . 598 SQL () . . . . . . . . 604CONNECT ( 1) . . . . . . . . 609CONNECT ( 2) . . . . . . . . 618CREATE ALIAS . . . . . . . . . . 626CREATE BUFFERPOOL. . . . . . . . 629CREATE DISTINCT TYPE . . . . . . . 632CREATE EVENT MONITOR . . . . . . 639CREATE FUNCTION. . . . . . . . . 649CREATE FUNCTION () . . . 650CREATE FUNCTION () . . . . . 675CREATE FUNCTION (OLE DB ) . . 691CREATE FUNCTION () . . . . . . . . . . . . . . 699CREATE FUNCTION (SQL ) . . . . . . . . . . . . 709CREATE FUNCTION MAPPING . . . . . 716CREATE INDEX . . . . . . . . . . 721CREATE INDEX EXTENSION . . . . . 728CREATE METHOD . . . . . . . . . 735CREATE NICKNAME . . . . . . . . 740CREATE NODEGROUP . . . . . . . . 746CREATE PROCEDURE . . . . . . . . 749CREATE SCHEMA . . . . . . . . . 766CREATE SEQUENCE . . . . . . . . 770CREATE SERVER . . . . . . . . . 775CREATE TABLE . . . . . . . . . . 779
vii
||||
||||
||
||
||
||
CREATE TABLESPACE . . . . . . . . 830CREATE TRANSFORM . . . . . . . . 840CREATE TRIGGER . . . . . . . . . 846CREATE TYPE () . . . . . . . 858CREATE TYPE MAPPING . . . . . . . 883CREATE USER MAPPING . . . . . . . 888CREATE VIEW . . . . . . . . . . 890CREATE WRAPPER . . . . . . . . . 906DECLARE CURSOR . . . . . . . . . 908DECLARE GLOBAL TEMPORARY TABLE 914DELETE . . . . . . . . . . . . . 923DESCRIBE . . . . . . . . . . . . 929DISCONNECT . . . . . . . . . . . 934DROP . . . . . . . . . . . . . . 937END DECLARE SECTION . . . . . . . 964EXECUTE . . . . . . . . . . . . 966EXECUTE IMMEDIATE. . . . . . . . 971EXPLAIN . . . . . . . . . . . . 974FETCH . . . . . . . . . . . . . 979FLUSH EVENT MONITOR. . . . . . . 982FREE LOCATOR . . . . . . . . . . 983GRANT () . . . . . . 984GRANT () . . . . . . . . . 987GRANT () . . . . . . . 989GRANT () . . . . . . . . 992GRANT () . . . . . . . 995GRANT () . . . . . . . . 996GRANT () . . . . . . . . . . . . . . . 998GRANT (). . . . . . . 1006INCLUDE . . . . . . . . . . . . 1008INSERT . . . . . . . . . . . . . 1010LOCK TABLE . . . . . . . . . . 1019OPEN . . . . . . . . . . . . . 1021PREPARE . . . . . . . . . . . . 1026REFRESH TABLE . . . . . . . . . 1037RELEASE () . . . . . . . . . . 1038RELEASE SAVEPOINT . . . . . . . 1040RENAME TABLE . . . . . . . . . 1041RENAME TABLESPACE . . . . . . . 1043REVOKE () . . . . . 1045REVOKE () . . . . . . . . 1049REVOKE () . . . . . . 1051REVOKE () . . . . . . . 1054REVOKE () . . . . . . . 1056
REVOKE () . . . . . . . . . . . . . . 1058REVOKE () . . . . . . 1064ROLLBACK . . . . . . . . . . . 1066SAVEPOINT . . . . . . . . . . . 1069SELECT. . . . . . . . . . . . . 1071SELECT INTO . . . . . . . . . . 1072SET CONNECTION . . . . . . . . . 1074SET CURRENT DEFAULT TRANSFORMGROUP . . . . . . . . . . . . . 1076SET CURRENT DEGREE . . . . . . . 1078SET CURRENT EXPLAIN MODE . . . . 1080SET CURRENT EXPLAIN SNAPSHOT . . 1083SET CURRENT PACKAGESET . . . . . 1085SET CURRENT QUERY OPTIMIZATION 1087SET CURRENT REFRESH AGE . . . . 1090SET ENCRYPTION PASSWORD . . . . 1092SET EVENT MONITOR STATE. . . . . 1094SET INTEGRITY. . . . . . . . . . 1096SET PASSTHRU . . . . . . . . . . 1106SET PATH . . . . . . . . . . . . 1108SET SCHEMA . . . . . . . . . . 1111SET SERVER OPTION. . . . . . . . 1113SET . . . . . . . . . . . . 1115UPDATE . . . . . . . . . . . . 1120VALUES . . . . . . . . . . . . 1130VALUES INTO . . . . . . . . . . 1131WHENEVER . . . . . . . . . . . 1133
7 SQL . . . . 1135SQL . . 1136ALLOCATE CURSOR . . 1138 . . . . . . . 1140ASSOCIATE LOCATORS 1142CASE . . . . . . . . 1144FOR . . . . . . . . 1147GET DIAGNOSTICS . . . 1149GOTO . . . . . . . . 1151IF . . . . . . . . . 1153ITERATE . . . . . . . 1155LEAVE . . . . . . . 1156LOOP . . . . . . . . 1158 () . . 1160REPEAT . . . . . . . 1166RESIGNAL . . . . . . 1168RETURN . . . . . . . 1171
viii SQL
||
||
||
||
||
||
SIGNAL . . . . . . . 1173WHILE . . . . . . . 1176
A. SQL . . . . . . . 1179
B. SQL (SQLCA). . . . . . 1187SQLCA . . . . . . . . 1187SQLCA . . . . . . 1187 . . . . . . . . . 1191DB2 SQLCA . . . . . . . . . 1192
C. SQL (SQLDA) . . . . 1193 . . . . . . . . . 1194
SQLDA . . . . 1195 SQLVAR . . . . . . . . . . . . . . 1196 SQLVAR . . . . . . . . . . . . . . 1198
SQLDA DESCRIBE . . . 1201SQLTYPE SQLLEN . . . . . . . . 1203 SQLTYPE . . 1204 10 . . . . . . . . . 120510 SQLLEN . . . . 1206
D. . . . . . . . . 1207 . . . . . . . 1208 . . . . 1208 . . . . . . . . . . . . . . 1210SYSIBM.SYSDUMMY1. . . . . . . . 1212SYSCAT.ATTRIBUTES . . . . . . . . 1213SYSCAT.BUFFERPOOLNODES . . . . . 1215SYSCAT.BUFFERPOOLS . . . . . . . 1216SYSCAT.CASTFUNCTIONS . . . . . . 1217SYSCAT.CHECKS . . . . . . . . . 1218SYSCAT.COLAUTH . . . . . . . . . 1219SYSCAT.COLCHECKS . . . . . . . . 1220SYSCAT.COLDIST . . . . . . . . . 1221SYSCAT.COLOPTIONS. . . . . . . . 1222SYSCAT.COLUMNS. . . . . . . . . 1223SYSCAT.CONSTDEP . . . . . . . . 1228SYSCAT.DATATYPES . . . . . . . . 1229SYSCAT.DBAUTH . . . . . . . . . 1231SYSCAT.EVENTMONITORS . . . . . . 1233SYSCAT.EVENTS . . . . . . . . . 1235SYSCAT.FULLHIERARCHIES . . . . . 1236
SYSCAT.FUNCDEP . . . . . . . . . 1237SYSCAT.FUNCMAPOPTIONS . . . . . 1238SYSCAT.FUNCMAPPARMOPTIONS . . . 1239SYSCAT.FUNCMAPPINGS . . . . . . 1240SYSCAT.FUNCPARMS . . . . . . . . 1241SYSCAT.FUNCTIONS . . . . . . . . 1243SYSCAT.HIERARCHIES . . . . . . . 1248SYSCAT.INDEXAUTH . . . . . . . . 1249SYSCAT.INDEXCOLUSE . . . . . . . 1250SYSCAT.INDEXDEP . . . . . . . . 1251SYSCAT.INDEXES . . . . . . . . . 1252SYSCAT.INDEXOPTIONS . . . . . . . 1255SYSCAT.KEYCOLUSE . . . . . . . . 1256SYSCAT.NAMEMAPPINGS . . . . . . 1257SYSCAT.NODEGROUPDEF . . . . . . 1258SYSCAT.NODEGROUPS . . . . . . . 1259SYSCAT.PACKAGEAUTH. . . . . . . 1260SYSCAT.PACKAGEDEP . . . . . . . 1261SYSCAT.PACKAGES . . . . . . . . 1262SYSCAT.PARTITIONMAPS . . . . . . 1266SYSCAT.PASSTHRUAUTH . . . . . . 1267SYSCAT.PROCEDURES . . . . . . . 1268SYSCAT.PROCOPTIONS . . . . . . . 1271SYSCAT.PROCPARMOPTIONS . . . . . 1272SYSCAT.PROCPARMS . . . . . . . . 1273SYSCAT.REFERENCES. . . . . . . . 1275SYSCAT.REVTYPEMAPPINGS . . . . . 1276SYSCAT.SCHEMAAUTH . . . . . . . 1278SYSCAT.SCHEMATA . . . . . . . . 1279SYSCAT.SEQUENCES . . . . . . . . 1280SYSCAT.SERVEROPTIONS . . . . . . 1282SYSCAT.SERVERS . . . . . . . . . 1283SYSCAT.STATEMENTS . . . . . . . 1284SYSCAT.TABAUTH . . . . . . . . . 1285SYSCAT.TABCONST . . . . . . . . 1287SYSCAT.TABLES . . . . . . . . . 1288SYSCAT.TABLESPACES . . . . . . . 1292SYSCAT.TABOPTIONS. . . . . . . . 1294SYSCAT.TBSPACEAUTH . . . . . . . 1295SYSCAT.TRIGDEP . . . . . . . . . 1296SYSCAT.TRIGGERS. . . . . . . . . 1297SYSCAT.TYPEMAPPINGS. . . . . . . 1298SYSCAT.USEROPTIONS . . . . . . . 1300SYSCAT.VIEWDEP . . . . . . . . . 1301SYSCAT.VIEWS . . . . . . . . . . 1302SYSCAT.WRAPOPTIONS . . . . . . . 1303
ix
||
SYSCAT.WRAPPERS . . . . . . . . 1304SYSSTAT.COLDIST . . . . . . . . . 1305SYSSTAT.COLUMNS . . . . . . . . 1306SYSSTAT.FUNCTIONS . . . . . . . . 1308SYSSTAT.INDEXES . . . . . . . . . 1310SYSSTAT.TABLES . . . . . . . . . 1313
E. 1315 . . . . 1316OBJCAT.INDEXES . . . . . . . . . 1318OBJCAT.INDEXEXPLOITRULES . . . . 1321OBJCAT.INDEXEXTENSIONDEP . . . . 1322OBJCAT.INDEXEXTENSIONMETHODS 1323OBJCAT.INDEXEXTENSIONPARMS . . . 1324OBJCAT.INDEXEXTENSIONS . . . . . 1325OBJCAT.PREDICATESPECS . . . . . . 1326OBJCAT.TRANSFORMS . . . . . . . 1327
F. . . . . . . . . 1329 . . . . . . . . . 1329 SQL . . . 1330 . . . . . . . . . . 1331. . . . . 1332 . . . . . . . 1333 . . . . . . . 1339
1340DB2 DB2 (OS/390 ) ( DB2 (MVS/ESA)) . . . . . . . . 1340DB2 DB2 (AS/400 ) ( DB2 (AS/400)) . . . . . . . . 1340DB2 Oracle . . . . 1341DB2 DB2 (VM VSE ) ( SQL/DS) . . . . 1341
. . . . . . . . 1341 SQL . . . . . . . . . . . . . 1342. . . . . . . . 1342
G. . . . 1345 . . . . . . . 1346
. . . . 1346 . . . . 1347CL_SCHED . . . . . . . . . 1347DEPARTMENT . . . . . . . . 1347EMPLOYEE . . . . . . . . . 1347EMP_ACT . . . . . . . . . . 1350EMP_PHOTO . . . . . . . . . 1352EMP_RESUME . . . . . . . . 1352IN_TRAY . . . . . . . . . . 1353ORG . . . . . . . . . . . . 1353PROJECT . . . . . . . . . . 1353SALES . . . . . . . . . . . 1354STAFF . . . . . . . . . . . 1355STAFFG . . . . . . . . . . 1356
BLOB CLOB . . . . . . . . . 1357
Quintana . . . . . . . . . 1357Quintana . . . . . . . . 1358Nicholls . . . . . . . . . 1359Nicholls . . . . . . . . 1359Adamson . . . . . . . . . 1360Adamson . . . . . . . . 1361Walker . . . . . . . . . 1362Walker . . . . . . . . . 1362
H. . . . . 1365 . . . . . . . . . . . 1365 . . . . . . . . . . . . . 1365IBM SQL . . . . . . . . . 1366ISO/ANS SQL92 . . . . . . 1368
I. . . . . . . . 1369
J. . . . . 1371
K. Explain . . . . . . 1375EXPLAIN_ARGUMENT . . . . . . 1376EXPLAIN_INSTANCE . . . . . . . 1379EXPLAIN_OBJECT . . . . . . . . 1382EXPLAIN_OPERATOR . . . . . . . 1384EXPLAIN_PREDICATE . . . . . . 1386EXPLAIN_STATEMENT . . . . . . 1388EXPLAIN_STREAM . . . . . . . . 1390ADVISE_INDEX . . . . . . . . . 1392ADVISE_WORKLOAD . . . . . . . 1394Explain . . . . . . . . . . 1395
EXPLAIN_ARGUMENT . . . 1396
x SQL
EXPLAIN_INSTANCE . . . . 1397EXPLAIN_OBJECT . . . . . 1398EXPLAIN_OPERATOR . . . 1399EXPLAIN_PREDICATE . . . 1400EXPLAIN_STATEMENT . . . 1401EXPLAIN_STREAM . . . . 1402ADVISE_INDEX . . . . . 1403ADVISE_WORKLOAD . . . 1405
L. Explain . . . . 1407
M. : . . . . . 1411 1: . . . . . . . 1411 2: . . . . . . . . . 1413 3: . . . . . . . . . 1414
N. . . . . . . . . . . 1417 . . . . . . . . . 1417 . . . . . . . . . 1419 . . . . . . . . . . . 1420
O. EUC . . . . . . . . 1423 . . . . . . . . . . 1423 . . . . . . . . . . . . . 1423 . . . . . . . . . . . 1423ID . . . . . . . . . . . . . 1424 . . . . . . . . . 1424 . . . . . . . . . 1424 . . . . . 1425 . . . . . . . 1425 . . . . . . . . . . . . . 1426 . . . . . . . . . . . . . 1426. . . . . . . . . . . . . . 1427
. . . . . . . . . . . . . 1427 . . . . . . . . . . . . . . 1428
LENGTH . . . . . . . . . . . 1428SUBSTR . . . . . . . . . . . 1428TRANSLATE . . . . . . . . . . 1428VARGRAPHIC . . . . . . . . . 1429
. . . . . . . . . . 1429CONNECT . . . . . . . . . . . 1429PREPARE . . . . . . . . . . . 1429
P. DATALINK BNF . . . 1431
Q. . . . . . . . . . . 1435
R. DB2 . . . 1549DB2 PDF . . . . . . . . . . . . . . . 1549
DB2 . . . . . . . . . . . 1549PDF . . . . . . . . . 1561. . . . . . . . 1561
DB2 . . . . . . . . 1561 . . . 1561 . . . . . . . 1564DB2 . . . . . . 1566. . . . . 1568 . . . . . . . 1569
S. . . . . . . . . . 1571 . . . . . . . . . . . . . . 1574
. . . . . . . . . . . . . . 1577
IBM . . . . . . . . . 1615 . . . . . . . . . . . . 1615
xi
xii SQL
1
v v v v v
(SQL)
DB2 7 SQL SQL
v 1 v 92 SQL
v 653 SQL SQL
v 2174 SQL
v 4395
Copyright IBM Corp. 1993, 2001 1
v 4956 SQL SQL
v 11357 SQL SQL
v 1179A. SQL SQL v 1187B. SQL (SQLCA)SQLCA v 1193C. SQL (SQLDA)SQLDA v 1207D.
v 1315E.
v 1329F.
v 1345G.
v 1365H. IBM SQL ISO/ANSSQL92
v 1369I.
v 1371J.
v 1375K. Explain Explain
v 1407L. Explain CURRENT EXPLAIN MODE CURRENT EXPLAIN SNAPSHOT PREP BIND
v 1411M. : v 1417N. SET INTEGRITY
v 1423O. EUC EUC
v 1431P. DATALINK BNF DATALINK BNF
2 SQL
() STATEMENT
STATEMENT
STATEMENT
()
1 1 STATEMENT 1
2
STATEMENT
1 2
1 3
1
STATEMENT
1
STATEMENT
STATEMENT
,
1
(: FROM) (: column-name)
1 parameter-block parameter-block STATEMENT parameter-block
parameter-block: 1 2 3
4
4 SQL
(*) STATEMENT 1 * 2 * 3 * 4
2 3
STATEMENT item1 item2 item3 item4STATEMENT item1 item3 item2 item4
SQLSTATE SQL (SQLSTATE 42723)
(Italic)
v ()v v v
v v
v v v
v
1 5
/
v SQL API
v DB2 Universal Database for iSeries SQL Reference iSeries (AS/400) DB2 Query Manager SQL Development Kit (SQL) DB2 iSeries (AS/400) SQL
v DB2 (OS/390 z/OS ) SQL DB2 (z/OS ) (OS/390) (SQL)
DB2 z/OS (OS/390) SQL SQL DB2 SQLCASQLDA SQL
v DB2 (GIS) GIS
v IBM SQL IBM
SQL IBM (SQL92EXPG4-SQLIBM-SQL IBM ) SQL
v American National Standard X3.135-1992, Database Language SQL SQL ANSI
v ISO/IEC 9075:1992, Database Language SQL SQL 1992 ISO
v ISO/IEC 9075-2:1999, Database Language SQL Part 2: Foundation(SQL/Foundation)
SQL 1999 ISO
v ISO/IEC 9075-4:1999, Database Language SQL Part 4: Persistent Stored Modules(SQL/PSM)
6 SQL
|
||||||
|
||||
SQL 1999 ISO
v ISO/IEC 9075-5:1999, Database Language SQL Part 4: Host Language Bindings(SQL/Bindings)
SQL 1999 ISO
1 7
8 SQL
2
(SQL)
() SQL DDL 1 (CREATE NODEGROUP)
() 1 SQL 51DB2
(SQL)SQL 1
SQL 1 2
1. (DDL) SQL
Copyright IBM Corp. 1993, 2001 9
|||
||
|||||
|||||
|||||
||
||||
||||
SQL SQL SQL SQL
(GRANTEETYPE U) (GRANTEETYPE G)
2
v SYSADM -
1.
10 SQL
|
|||
||||
||
||||
||||||||
||||
|
|
v DBADM -
2
v SYSCTRL - v SYSMAINT -
SYSADM SYSADM DBADMSYSCTRL SYSMAINT DBADM
DBADM SQL DBADM CONTROL
SYSCTRL
SYSMAINT 2 SYSMAINT
SYSADM DBADM GRANT
2 11
|
|
|
|
||||
|||||
|||||
||||||
||||
||||||||
CONTROL (GRANT) (REVOKE) CONTROL DBADM
GRANT WITHGRANT OPTION
CREATE SCHEMA IMPLICIT_SCHEMA
2
DBADM A C
CREATE SCHEMA C AUTHORIZATION A
A C X
CREATE TABLE C.X (COL1 INT)
IMPLICIT_SCHEMA
12 SQL
||||
||||
||
|||
||||
||||
||
||
||
||
|
||||
IMPLICIT_SCHEMA PUBLIC CREATESCHEMA IMPLICIT_SCHEMA ( DBADM ) PUBLIC IMPLICIT_SCHEMA
DBADM SYSADM ()
() 1 1 n n
CREATE TABLE 1
CURRENT REFRESH AGE CURRENT QUERY OPTIMIZATION
()
2 13
|||
||||||
|||||||||
||
||||||
|||
||||||
|||
1 T T 1 T T
DECLARE GLOBAL TEMPORARY TABLE 1
1 1
SQL SELECT CREATE VIEW 890CREATEVIEW
INSERT UPDATE DELETE UPDATE DELETE UPDATE
() 1 V V
() SQL
14 SQL
||||||||
|||
||
||
|||||||
|||||
|||||||
||
()
73 626CREATE ALIAS
1 1
v
v
2
2 15
||
||||
|||||
|||
||
||
||||
|
||
||
||
||
|||
||
2 NULL ( INSERT UPDATE ) UNIQUE 17
17
3
v 1 ID ID 2
v 1 1
16 SQL
|||
|
|||||||
|
||
|
||
|
|||||
||
|
|
||||
|||
ID ID
v $20,000
/ /1096SET INTEGRITY
PRIMARY KEY UNIQUE CREATE TABLE ALTER TABLE NOT NULL
1
CREATE TABLE
ALTER TABLE
1
v
2 17
||
|||
|||
|
||||||
|||
|
|||
||||
|||
|
||||
|
v
CREATE TABLE ALTERTABLE INSERTUPDATEDELETEALTER TABLEADDCONSTRAINT SET INTEGRITY
RESTRICT NO ACTION RESTRICT SQL
1371J.
1
1
T T T
1
r r r
18 SQL
|
||
|||||
||||
|||
|
||
||
||||
||||
|||
||
|||
||
||
NO ACTION RESTRICT
v RESTRICT
v () NO ACTION
NO ACTION NOACTION
NOACTIONRESTRICTCASCADE SET NULL SET NULL
() P D p
v RESTRICT NO ACTION
v CASCADE D p v SET NULL D p
2 19
|||
|||||
||||
|
||
||
|||
||
||||
|||||
||
|
||
RESTRICT NO ACTION RESTRICT NO ACTION
P
v D P RESTRICT NO ACTION D
v D P SET NULL D D
v D P CASCADE D D
D P D D D
P P P P P
1 SQL CREATE TABLE ALTER TABLE 1 T T
ALTER TABLE ALTER TABLE ALTER TABLE
20 SQL
|||||
||
||
||
||
|||
||||
|
|||||
||
|||
||||
SET INTEGRITY SET CONSTRAINT
v
v
3
(23 (UR) )
2 21
|||
||
||||
||
||
||||||||
||
|||
||||
|||||
||||
DB2 4 1
(RR)
v 2 3
v
()
RR
(RS)
v 4 5
v
RS
2. OPEN 908DECLARE CURSORWITH HOLD
3. CLOSE WITH RELEASE
4. OPEN 908DECLARE CURSORWITH HOLD
5. CLOSE WITH RELEASE
22 SQL
||||||
|
|
||
||
||
||||
|
||
||
||
||
1. P1 n
2. P2 1
3. P1 P2
RS
(CS)
CS
(UR)SELECT INTO FETCHINSERT UPDATE
v
v
CS
2 23
||||
|
||
||
||
||
|
|||
||||
||
|
|||
||
||
|
4 1369I.
() SQL
4395
15
1 1 (BOM) 1411M. : BOM
SQL 1
2
24 SQL
|
||
||
||
|
||
||||
|
||||
||||
||
||||||
||||
23 (UR) (UR)
DB2 CLI SQL 1
() () (21)
2 25
||||||||
||||||
|||||||
|||||||
|||||
|||||
2
2
2.
3.
26 SQL
|
|||
|
|||
|||
|||
|
||||
1
:
SQL SQL (CLP) CommandCenter SQL SELECT DECLARE CURSORPREPAREDESCRIBE OPENFETCH CLOSE
CLP
SQL SQL C Java SQL SQL SQL 2
SQL SQL COBOL
SQL SQL SQL SQL
2 27
|||
|||||
||
|||||
||
||
|||||
|
||||
|||||
SQL SQL
SQL SQL SQL SQL SQL SQL PREPARE EXECUTE EXECUTE IMMEDIATE SELECT
SQL
DB2 (CLI) Open Database Connectivity(ODBC)
DB2 SQL CLI Microsoft Open Database Connectivity (ODBC) ODBC SQL SQL
DB2 CLI SQL
v CLI DB2
v CLI 1
1
1
28 SQL
||||
|
||||||
||
||
|
|||||||||||
||
||||
|
|
|
|
1
v CLI
API
JDBC (Java Database Connectivity) Java Embedded SQL (SQLJ)
DB2 JDBC (Java Database Connectivity) JavaEmbedded SQL (SQLJ) 2 Java API DB2 Java
JDBC Java DB2 CLI JDBC DB2 CLI DB2 DB2 JDBC SQL
SQLJ SQL JDBC SQLJ SQL SQLJ SQLJ Java
JDBC SQLJ
SQL 1 SQL SQL SQL
2 29
|
|
||
||
||
|
||||
|||
|||||
||
||
|||||||
||
SQL (1208 )
1207D.
SQL 2
v
v
30 SQL
||
||||
||||||
|||
|
||
||||
|||||
||
||
||
|||
v AZ 26 ()v az 26 ()v 09 v . , : ; ? ( ) ' " / - _ & + % * = < >
850 ASCII "A" X'41' "B" X'42' 1 1 1
v 1 ASCIIv 1 EBCDICv 2 ASCIIv 1 / 2 ASCII
2
2 31
|
|||
|
|
|
|
|||||||||
||
|||
|
|
|
|
|
|||
1 1 (SBCS) 1 2 (FOR BIT DATA BLOB 2 )
4.
32 SQL
|
||||||||||
|
|||
( )
0FOR BIT DATA BLOB
v 0 (FOR BIT DATA BLOB )
v (USER CURRENT SERVER ) SQL
v
99
114
ID
2 33
||||
|||||
|||
||
||
|||
|
||||
|
||
||
||
||||
1 (SETEVENT MONITOR STATE) () EVENT_MON_STATE
SQL
( 10% )
CREATE TRIGGER
v v SQL
v
1 1
SQL SQL
34 SQL
||||
||
|||
||||
||||
|||||
|
||
|
||
||
||||
||
SQLstate SQLstate
() () SET 1 1
1
1 SQL 1
LONG 2
(DMS)
(SMS)
1
2 35
|||||
|||||||||
|||
||||||||
||
||||
||
||
|||
830CREATETABLESPACE
629CREATEBUFFERPOOL
1 1 37746CREATE NODEGROUP
DATALINK DATALINK
DB2 () DB2
v DB2
v DATALINK SQL
v
DB2
DB2
36 SQL
||
|||||
||||||||||
||||
||
||
||
|
|
|||
||||
DB2
DB2 () () 1
db2nodes.cfg
CREATE TABLE ( ALTER TABLE ) LONG LOB LONG LOB 1
1. ()
2.
3.
DB2 ()
2 37
|
||
||||||||||
|||
|||
||||||||
|
||
||
||
|||
4 096
5 (c1c2c3) 2 2 p5
REDISTRIBUTE NODEGROUP sqludrdt (API) API
DB2 DB2
5.
38 SQL
|
|||
|
|||
|||
||||||
|
|||||
v (6)
v v (116 )
v
SQL
/ 1 406
6.
2 39
||
|
||
||
|
||
|||||||
||||||||||||
(DRDA)
SQL CONNECT DB2 CLI SQL 1 CONNECT
CONNECT
SQL
6.
40 SQL
|
||||||
|
||||||||||
||||||
||||
|||
54
CONNECT ( 1) CONNECT ( 2)CONNECT 2
v CONNECT ( 1) () 1 609CONNECT ( 1)
v CONNECT ( 2) () 618CONNECT ( 2)
SQL A B 1 B SQL B C
SQL
v SQL
v SQL
: 4
v / v / v / v ()
2 41
||
|||
|
|
|||
|||
|
|||||||
||
||
||
||
||
|
|
|
|
(447 ) (458 )
CONNECT
v CONNECT TO CONNECT
v CONNECT RESETDISCONNECTSET CONNECTION RELEASE
v CONNECT TO
v COMMIT ROLLBACK
CONNECT TO CONNECT TOCONNECT CONNECT RESET DISCONNECT SET CONNECTION RELEASECOMMIT ROLLBACK SQL
SQL CONNECT TO (SQLSTATE 08003)
42 SQL
||||
|||
|
||
|
|||
||||
||
||
||
|
||||||
|
|||
v CONNECT TO
v CONNECT RESET DISCONNECT
CONNECT RESET COMMIT ROLLBACK DISCONNECT
2 43
|
|||||
|
||
|
|||||
||
7.
44 SQL
|
||||
v CONNECT CONNECT
v CONNECT RESET v CONNECT TOCONNECT RESET CONNECT SET
CONNECTIONRELEASECOMMITROLLBACK SQL CONNECT TO CONNECT TO CONNECTRESETDISCONNECT (COMMIT ROLLBACK )COMMIT ROLLBACK
8.
2 45
|
||||
|||
|
||||||
SQL A CONNECT SETCONNECTION B B SQL SQL
2 2
2
v v v
1
v v v v
: 2
46 SQL
|
|||||||||||
||||
||
|
|
|
||
|
|
|
|
|
||
|
||
: CONNECT 2 1 618CONNECT ( 2) CONNECT
v 1 2 DB2
v SET CONNECTION
9.
2 47
|
||||||||
||||
|||
v CONNECT SQLRULES(STD) SQLRULES 50
CURRENT SERVER SQL
CONNECT SET CONNECTIONSQL DB2DBDFT
SQL CONNECTDISCONNECTALL DISCONNECT SET CONNECTION RELEASECOMMIT ROLLBACK
SQL DISCONNECT
DISCONNECT AUTOMATIC CONDITIONAL WITH HOLD
: CONNECT
v v v
48 SQL
|||||
|||||
||||
||||
||||||
||||
||||
|
|
|
SQLRULES(STD) (SQLSTATE 08002)
v : RELEASE () RELEASE ROLLBACK
DISCONNECT
v : SQL
SQL COMMIT ROLLBACK DISCONNECT RELEASE DISCONNECT RELEASE ALL () SETCONNECTION CONNECT 1
: RELEASE
2 49
|||
|||||||||
|||
||||
|||||||||
|||||
||
||
2 API
v CONNECT (1 | 2)CONNECT 1 2
v SQLRULES (DB2 | STD) 2 CONNECT CONNECT DB2 SQL92 (STD)
v DISCONNECT (EXPLICIT | CONDITIONAL | AUTOMATIC)
SQL RELEASE (EXPLICIT)
WITHHOLD (CONDITIONAL) 7
(AUTOMATIC)
v SYNCPOINT (ONEPHASE | TWOPHASE | NONE)
ONEPHASE 1 (SQLSTATE 25000)
TWOPHASE (TM) 2
NONE 2 TM COMMIT ROLLBACK COMMIT ROLLBACK 1
7. CONDITIONAL 2 WITH HOLD
50 SQL
|||||
|
||
|
|||
|
||
||
||
|
|
||
|||||
||||
|||||
(SQLSTATE 58005) 1 (SQLSTATE 40003)
SET CLIENT (API) QUERY CLIENT API SQL API API
DRDA IBM (CDRA) Character Data Representation Architecture: Reference & Registry(SC09-2190-00)
DB2 DB2
DB2 DB2
v DB2 DB2 DB2
v RDBMS 1 1 DB2 Oracle DB2
2 51
|||
||||||
|
||||||||||
||
|||
|
||
|
||
|
||||
Oracle Oracle Oracle DB2 () Oracle
DB2 SQL DB2 DB2 () DB2
() SQL
DB2 ( )
DBA
DB2
1. DB2 DBA
2. DBA
a. DBA
52 SQL
|||||
|||||||||
||||
|
||||
||||||
|
||
|
|
b. DBA 1 54
c. DBA 54
d. ID ID DBA 2 ID 57
e. DB2 DBA 2 (1 1 ) 58
f. DB2 DBA 2 (1 1 ) 58
g. DBA ID 59
h. : DBA DBA DBA DB2 60
3.
v DB2 SQL 61
2 53
||||
|||
|||||
|||||||
||||||
||||
||||||
||
||||
DB2 SQL SQL 62
v DB2 SQL SQL DML 8 DDL 9 62
3
v DRDA DB2
v SQLNET Oracle SQL*Net Oracle
v NET8 Oracle Net8 Oracle
CREATE WRAPPER 906CREATE WRAPPER
DBA DBA
v 3
8. (DML) SQL
9. (DDL) SQL
54 SQL
||||
|||||
||
|
|||||
|
||
|||
||
||
|
|||
|
v DBA v SQL
3 SQL DB2
DB2 39 2
v
v DRDA DB2 Oracle SQLNET net8
DBA RDBMS RDBMS RDBMS DB2 Oracle 1 Oracle
DBA
v NODE
2 55
|
||
||||
|||||||
||
||||
|||||||||||
|||
||
DB2 DBNAME
v SQL CREATE SERVER SQL ALTER SERVER
SQL CREATE SERVERALTER SERVER SET SERVER OPTION
CREATE SERVER ALTER SERVER DBA CREATE SERVER Oracle DBA DBA CREATE SERVER COLLATING_SEQUENCE Y () Y Oracle
Oracle DBA ALTER SERVER Oracle DBA COLLATING_SEQUENCE N ()
SET SERVER OPTION
PLAN_HINTS DB2 Oracle Oracle
ORACLE1 ORACLE2 PLAN_HINTS N () ORACLE1 ORACLE2
56 SQL
|||
||
|||
||||||||||||
|||||
|||
||||||
||||
SET SERVER OPTION N Y () Y
775CREATE SERVER 521ALTERSERVER 1113SET SERVER OPTION 1333
v ID
v 2
CREATE USER MAPPING ALTER USER MAPPING 2 ID CREATE USER MAPPING REMOTE_PASSWORD
888CREATE USER MAPPING567ALTERUSER MAPPING 1339
2 57
||||||
||||
|
||
||||
||||||
||||||||||
||||
DB2 Oracle FLOAT DB2 DOUBLE DB2 (OS/390 ) DATE DB2 DATE DB2 LONG VARCHARLONG VARGRAPHIC DATALINK (LOB)
1340
DB2 FLOAT Oracle Oracle FLOAT DB2 DOUBLE () FLOAT DOUBLE
DB2 Oracle DATE DB2 TIMESTAMP Oracle DATEOracle DATE DB2 TIME
CREATE TYPE MAPPING 1 ALTER NICKNAME
883CREATE TYPE MAPPING 509ALTERNICKNAME
DB2 DB2
58 SQL
|
||||||||||
||
|||||||
||||||||
||||
||
|
||
DB2 ()
v
v ()
CREATE FUNCTION MAPPING
699CREATE FUNCTION ()716CREATE FUNCTION MAPPING1332
2 59
||||||
||||
||
|||||
|||||||
||||||
|
|||||||
CREATE NICKNAME 740CREATE NICKNAME
DB2
NUMERIC_STRING Y
ALTER NICKNAME 509ALTER NICKNAME 1331
CREATE INDEX
NICK1 NICK2 2 CREATE INDEX
60 SQL
||||
|||||
|||||||||||
||||
|
|||||||
||||||
1 NICK1 NICK1 1 NICK2 NICK2
CREATE INDEX 721CREATE INDEX :
DB2 (OS/390 ) DB2 (AS/400 ) Oracle UDB390_EMPLOYEESAS400_EMPLOYEESORA_EMPLOYEES Oracle 2 ORA_COUNTRIES
AS400_EMPLOYEES ORA_COUNTRIES SELECT WHERE AS400_EMPLOYEES
SELECT NAME, TELEPHONEFROM DJADMIN.AS400_EMPLOYEESWHERE COUNTRY_CODE IN(SELECT COUNTRY_CODE
FROM DJADMIN.ORA_COUNTRIESWHERE COUNTRY_NAME = 'CHINA')
2 61
||||
|||||
|
||
||||||||||
|||||||||
|||||||
2
SELECT T1.NAME, T2.COUNTRY_NAMEFROM DJADMIN.UDB390_EMPLOYEES T1, DJADMIN.ORA_COUNTRIES T2WHERE T1.COUNTRY_CODE = T2.COUNTRY_CODE
SQL SQL RDBMS (DB2 (AS/400 )DB2 (OS/390 )Oracle ) SQL RDBMS SQL RDBMS SQL SQL SQL DB2 SQL
1: DB2 SQL FROM Oracle SQL Oracle
2: 1 CURSOR WITHHOLD
DB2 SQL DB2 RDBMS
SQL
62 SQL
||
|||
|||
|||
|
|||||||||
||||
|||||
|||
|
||
DML DDL DB2 1342 SQL
SQL
SET PASSTHRU
GRANT () ID PUBLIC
REVOKE ()
1342
2 63
||||
||
||
||||
||
||||
64 SQL
3
SQL SQL
65
66
ID 67
68
73
ID 74
77
92
93
96
110
117
120
131
138
146
153
159
161
194
213
SQL IBM 1
Copyright IBM Corp. 1993, 2001 65
26 (AZ) 26 (az) 3 ($# @) ( 850 $ X'24'# X'23' @ X'40' ) (u )
0 9
- "
.
% / & : ' ()
;
( < ()) = * > ()+ ? , _ | | !
MBCS 2
1 ID ()
v ID ID
66 SQL
1 .1 +2 SELECT E 3
v ID 1026PREPARE
, 'string' "fld1" = .
: 1 ID
: SQL SQL EXEC SQL SQL 2 (--) 506SQL
: ID C
select * from EMPLOYEE where lastname = 'Smith';
SELECT * FROM EMPLOYEE WHERE LASTNAME = 'Smith';
MBCS a z 1
ID
ID SQL ID SQLID ID
SQL IDSQL ID ID ID 2
3 67
v ID ID ID (1365H. )
v ID 1 () ID ID 1 2 ID
ID ID
WKLYSAL WKLY_SAL "WKLY_SAL" "WKLY SAL" "UNION" "wkly_sal"
2 ID ID ID ( 1423O. EUC )
ID ID ID ID 255 SQL DB2
1 ID 2 ID
SQL CURRENT SCHEMA ID 1111SET SCHEMA SQL DYNAMICRULES BIND CURRENT SCHEMA DYNAMICRULES BIND SQL
ID
68 SQL
SQL QUALIFIER / ID
SQL ID
v condition-namev labelv parameter-namev procedure-namev SQL-variable-namev statement-name
ID 1179A. SQL
alias-name
attribute-name ID
authorization-name ID
v AZaz09#@ $ _
v 'SYS''IBM' 'SQL'
v ADMINSGUESTSLOCALPUBLIC USERS
v ID
bufferpool-name ID
column-name
condition-name SQL ID
constraint-name ID
3 69
|||
|
|
|
|
|
|
correlation-name ID
cursor-name SQL ID
data-source-name ID ID 3 1
descriptor-name SQL (SQLDA) ID ID 138
distinct-type-name SQL
event-monitor-name ID
function-mapping-name ID
function-name SQL
group-name ID
host-variable 138 1 ID
index-name
label SQL ID
method-name ID()
nickname
70 SQL
nodegroup-name ID
package-name
parameter-name ID
procedure-name SQL
remote-authorization-name ID
remote-function-name
remote-object-name 3 3
remote-schema-name 3 2
remote-table-name 3 3
remote-type-name (CHARACTER CHAR )
savepoint-name ID
schema-name SQL ID
v CURRENT SCHEMA v QUALIFIER /
3 71
v CURRENT PATH
v SQL
SESSION (SESSION)
server-name ID
specific-name SQL
SQL-variable-name SQL SQL SQL SQL
statement-name SQL ID
supertype-name SQL
table-name
tablespace-name ID
trigger-name
type-mapping-name ID
type-name SQL
72 SQL
typed-table-name
typed-view-name
view-name
wrapper-name ID
SQL
()CREATE TABLE CREATE VIEW PERSONNEL CREATE TABLE PERSONNEL...
SQL
SQL SQL PBIRD.SALES DSPN014.DIST4_SALES_148
SELECT * FROM PBIRD.SALES
SELECT * FROM DSPN014.DIST4_SALES_148
SQL
3 73
CREATE ALIAS DROP ALIAS ALIAS SYNONYM
626CREATE ALIAS
ID ID
ID
v SQL v QUALIFIER / CURRENT SCHEMA ID CURRENT PATH FUNCPATH /
ID SQL SQL ID ID SQL ID SQL DYNAMICRULES DYNAMICRULES RUN ID ID DYNAMICRULES BIND ID ID ID
SQL ID SQL ID CREATE SCHEMA GRANT REVOKE X ID X X
:
74 SQL
v ID SMITH ID SMITH
GRANT SELECT ON TDEPT TO KEENE
SMITH ID SQL CURRENT SCHEMA SQL QUALIFIER / SMITH SMITH SMITH 68 table-name
KEENE KEENE SMITH.TDEPT SELECT
v SMITH SET SCHEMA SQL ID
DROP TABLE TDEPT
SMITH.TDEPT
DROP TABLE SMITH.TDEPT
SMITH.TDEPT
DROP TABLE KEENE.TDEPT
KEENE.TDEPT KEENE.TDEPT SMITH.TDEPT
CREATE SCHEMA PAYROLL AUTHORIZATION KEENE
KEENE PAYROLL KEENE PAYROLL CREATEINALTERIN DROPIN
SQL BIND PRECOMPILE OWNER ID
BIND PRECOMPILE QUALIFIER
BIND PRECOMPILE DYNAMICRULES SQL DYNAMICRULES RUN DYNAMICRULES BIND
ID
3 75
ID SQL DYNAMICRULES
1. OWNER QUALIFIER SQL
OWNER
QUALIFIER
QUALIFIER OWNER
ID BIND OWNER ID
ID
BIND OWNER ID
BIND OWNER ID
BIND QUALIFIER ID
BIND QUALIFIER ID
2. DYNAMICRULESOWNER QUALIFIER SQL
RUN BIND
ID ID
ID
CURRENT SCHEMA
ID
DYNAMICRULES
v DYNAMICRULES BIND SQL CURRENT SCHEMA CURRENT SCHEMA SET CURRENT SCHEMA
v DYNAMICRULES BIND SQL GRANT REVOKE ALTER CREATE DROP COMMENTON RENAMESET INTEGRITY SET EVENT MONITOR STATE
v 1 SQL BIND
SQL
76 SQL
v DYNAMICRULES BIND ID
ID BIND VALIDATE BIND SQLERROR NOPACKAGE SQLERROR CONTINUE
VALIDATE RUN BIND ID
779CREATE TABLE
SQL ()
v v v v v v
DB2 89
7810
SQL
3 77
() NOT NULL
(LOB) LOB BLOBCLOBDBCLOB LOB 81 LONG VARCHAR
10.
78 SQL
LOB 254
(CLOB) (CLOB) 2 (2 147 483 647 ) CLOB SBCS (SBCS MBCS) ( SBCS ) CLOB
2 (DBCLOB) 2 (DBCLOB) 1 073 741 823 2 DBCLOB DBCS (DBCLOB DBCS CCSID ) DBCLOB
2 (BLOB)2 (BLOB) 2 (2 147 483 647 ) BLOB FOR BIT DATA BLOB
(LOB) LOB LOB LOB () (LOB ) 1 LOB
LOB LOB LOB LOB
1 LOB LOB ( LOB ) LOB LOB
3 79
LOB LOB ( SUBSTR CONCAT VALUE LENGTH LIKE POSSTR LOB LOB UDF ) LOB
LOB LOB LOB
SUBSTR( CONCAT CONCAT , , )
-1 LOB LOB LOB
LOB 1 LOB LOB () LOB
LOB LOB LOB LOB LOB FETCHOPEN EXECUTE SQLDA LOB SQLTYPE
80 SQL
1 254
VARCHARLONG VARCHAR CLOB 3
v VARCHAR 32 672 v LONG VARCHAR 32 700 v CLOB 2
: 255
v DISTINCT SELECT v GROUP BY v ORDER BY v DISTINCT v UNION ALL
LONG VARCHARCLOB v BETWEEN IN v v VARGRAPHICTRANSLATE / v LIKE POSSTR
v /
VARCHAR SYSFUN 4 000 VARCHAR CLOB(1M) 4 000 VARCHAR CLOB VARCHAR
NULL C NULL NULL C
3 81
SBCS 1
1 (SBCS) (MBCS)
SBCS MBCS : SBCS SBCS DBCS
2 2
2 10 2
1 127
VARGRAPHICLONG VARGRAPHIC DBCLOB 3
v VARGRAPHIC 16 336 2
v LONG VARGRAPHIC 16 350 2
v DBCLOB 1 073 741 823 2
10. WCHARTYPE CONVERT C C++
82 SQL
127 81
NULL C NULL NULL C
2 2 2 2 BLOB 2 () 2 2 ( 81)
(SMALLINT) 5 2 -32 768 32 767
(INTEGER) 10 4 -2 147 483 648 +2 147 483 647
(BIGINT) 19 8 -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
(REAL) 32 -3.402E+38 -1.175E-37 1.175E-37 3.402E+38
3 83
(DOUBLE FLOAT) 64 -1.79769E+308 -2.225E-307 2.225E-307 1.79769E+308
10 (DECIMAL NUMERIC)10 10 31 10 1205 10
10 10 10 -n +n ( n 10 ) -10**31+1 10**31-1
/ / /
(date) 3 0001 9999 1 12 1 x (x )
4 2 10 2 3
DATE SQLDA 10
(time) 3 24 0 24 0 59 24
3 2 10 2
TIME SQLDA 8
84 SQL
(timestamp) 7 ()
10 2 10 4 3 3
SQLDA TIMESTAMP 26
/ DATETIME TIMESTAMP SQL DATETIMETIMESTAMP SQL / CHAR / DATETIME /
LONG VARCHAR / (SQLSTATE 42884)
/ / /
8
3
3.
:
ISO yyyy-mm-dd 1991-10-27
3 85
3. ()
:
IBM USA mm/dd/yyyy 10/27/1991
IBM EUR dd.mm.yyyy 27.10.1991
JIS yyyy-mm-dd 1991-10-27
( )
LOC
4 0 13:30 13:30:00
4
4.
:
2 ISO hh.mm.ss 13.30.05
IBM USA hh:mm AM PM
1:30 PM
IBM EUR hh.mm.ss 13.30.05
JIS hh:mm:ss 13:30:05
( )
LOC
:
1. ISOEUR JIS .ss ( :ss)
2. () JIS
3. USA 00 1 PM 1:00 PM
4. USA 13 00:00 AM 0 AM PM 1 24 JIS USA 24
86 SQL
||||||
||||
||||||
||||
12:01 AM 12:59 AM 00:01:00 00:59:00
01:00 AM 11:59 AM 01:00:00 11:59:00
12:00 PM () 11:59 PM 12:00:00 23:59:00
12:00 AM () 24:00:00 00:00 AM () 00:00:00
16 yyyy-mm-dd-hh.mm.ss.nnnnnn 0 1991-3-2-8.30.00 1991-03-02-08.30.00.000000
SQL ODBC ODBC yyyy-mm-dd hh:mm:ss.nnnnnn ODBC
MBCS 1
DATALINK DATALINK
'URL'
DB2 URL URL
v HTTPv FILEv UNCv DFS
URL
v HTTPFILE UNC v DFS
3 87
|
|
|
||
|||||||
v
DATALINK BNF () 1431P. DATALINK BNF
254 ()
URL ('http''file''unc' 'dfs') DATALINK URL DATALINK 293DLCOMMENT DATALINK
DATALINK DATALINK 200
DATALINK DRDA
DATALINK 141BLOBCLOBDBCLOB LOB
v DATALINK
v
DATALINK (DLVALUE) DATALINK (DLCOMMENT DLLINKTYPE DLURLCOMPLETE DLURLPATHDLURLPATHONLY DLURLSCHEME DLURLSERVER)
88 SQL
( ) BLOB
AUDIO
CREATE DISTINCT TYPE AUDIO AS BLOB (1M)
AUDIO BLOB BLOB AUDIO ()
ID CREATE DISTINCTTYPEDROP DISTINCT TYPE COMMENT ON DISTINCT TYPE SQL SQL 127CURRENT PATH
(AUDIO LENGTH )
LONG VARCHARLONG VARGRAPHICLOB DATALINK
( 108) LONG VARCHARLONGVARGRAPHICBLOBCLOB DBCLOB DATALINK
3 89
()
:
1 T T T T T
v : 1 A B
1. A B
2. B A A
v : A B
1. A B
2. A C C B
90 SQL
REF ()
95529
81 CLOB
(REF) 1
( ) ( ) ( )
3 91
()CHAR VARCHAR INTEGER DOUBLE-PRECISION CLOB VARCHAR
v (148v (93)
v (103)
5
5.
()
CHAR CHARVARCHARLONG VARCHARCLOB
VARCHAR VARCHARLONG VARCHARCLOB
LONG
VARCHAR
LONG VARCHARCLOB
GRAPHIC GRAPHICVARGRAPHICLONG VARGRAPHICDBCLOB
VARGRAPHIC VARGRAPHICLONG VARGRAPHICDBCLOB
LONG
VARGRAPHIC
LONG VARGRAPHICDBCLOB
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
SMALLINT SMALLINTINTEGERBIGINTdecimalrealdouble
INTEGER INTEGERBIGINTdecimalrealdouble
BIGINT BIGINTdecimalrealdouble
92 SQL
5. ()
()
decimal decimalrealdouble
real realdouble
double double
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
DATALINK DATALINK
udt udt () udt
REF(T) REF(S) (S T )
:
decimal= DECIMAL(p,s) NUMERIC(p,s)
real = REAL FLOAT(n)n 24
double = DOUBLEDOUBLE-PRECISIONFLOAT FLOAT(n)n 25
udt =
(92) 1
CAST (176CAST ) (103)
3 93
(649CREATE FUNCTION)
956
v DT S v DT S DT v DT DT v A DT A
DT S (92)
v INTEGER SMALLINT DT
v DOUBLE REAL DT
v VARCHAR CHAR DT
v VARGRAPHIC GRAPHIC DT
FOR BIT DATA
ST ST ST ST ST 1 188
SQL SQL 127CURRENTPATH
v RT S v RT S RT
94 SQL
||
v T RT S RS (S T )
v A RT ( A RT S ) (92)
SQL SQL 127CURRENT PATH
6.
SMALLINT
INTEGER
BIGINT
DECIMAL
REAL
DOUBLE
CHAR
VARCHAR
LONGVARCHAR
CLOB
GRAPHIC
VARGRAPHIC
LONGVARG
DBCLOB
DATE
TIME
TIMESTAMP
BLOB
SMALLINT Y Y Y Y Y Y Y - - - - - - - - - - -
INTEGER Y Y Y Y Y Y Y - - - - - - - - - - -
BIGINT Y Y Y Y Y Y Y - - - - - - - - - - -
DECIMAL Y Y Y Y Y Y Y - - - - - - - - - - -
REAL Y Y Y Y Y Y - - - - - - - - - - - -
DOUBLE Y Y Y Y Y Y - - - - - - - - - - - -
CHAR Y Y Y Y - - Y Y Y Y - Y - - Y Y Y Y
VARCHAR Y Y Y Y - - Y Y Y Y - Y - - Y Y Y Y
LONG VARCHAR - - - - - - Y Y Y Y - - - - - - - Y
CLOB - - - - - - Y Y Y Y - - - - - - - Y
GRAPHIC - - - - - - - - - - Y Y Y Y - - - Y
VARGRAPHIC - - - - - - - - - - Y Y Y Y - - - Y
LONG VARG - - - - - - - - - - Y Y Y Y - - - Y
DBCLOB - - - - - - - - - - Y Y Y Y - - - Y
DATE - - - - - - Y Y - - - - - - Y - - -
TIME - - - - - - Y Y - - - - - - - Y - -
TIMESTAMP - - - - - - Y Y - - - - - - Y Y Y -
BLOB - - - - - - - - - - - - - - - - - Y
v
v DATALINK DATALINK
v
3 95
SQL INSERT UPDATEFETCH SELECT INTO VALUES INTO SET MAX MIN DISTINCT GROUP BY ORDER BY
(110)
7.
2
10
2
UDT
2 Yes Yes Yes No No No No No No 2
10 Yes Yes Yes No No No No No No 2
Yes Yes Yes No No No No No No 2
No No No Yes No 1 1 1 No 3 2
No No No No Yes No No No No 2
No No No 1 No Yes No No No 2
No No No 1 No No Yes No No 2
No No No 1 No No No Yes No 2
2
No No No No 3 No No No No Yes 2
UDT 2 2 2 2 2 2 2 2 2 Yes
96 SQL
7. ()
2
10
2
UDT
:
1 / v / 101 /
v v v
2 (UDDT) UDDT 103
3 FOR BIT DATA 2
4 DATALINK DATALINK NO LINK CONTROL DATALINK
5 104109
(138)
10 10
10 10
3 97
10 10
10 10 10 10
10 10 10 10 5,0 11,0 19,0
10 10 31 10 31 10 () 0.5*10-31 0
2
v v
v (
v (SQLSTATE 22001)
()
98 SQL
FOR BIT DATA
() (SQLSTATE 01004) SQLCA SQLWARN1 W
LOB
FOR BIT DATA
C NUL PREP BIND C C++
v v v 0 (FOR BIT DATA) 11
MBCS 1 FOR BITDATA
v 1 (X'20')
11. DRDA FOR BIT DATA SQLDA FOR BIT DATA
3 99
v 1 (X'20') 2
v MBCS MBCS MBCS 1 (X'20')SQLWARN1 W MBCS FOR BIT DATA
DBCS /
() () 2
2 ( 2 ) SQLCA SQLWARN1 W (2 ) DBCLOB
C NUL (wchar_t ) PREP BIND C C++
100 SQL
/ / DATETIME TIMESTAMP (DATE TIME TIMESTAMP ) LONG VARCHARBLOB CLOB
/ /
v DATE : 10 v TIME : USA 8 5
ISO JIS 8 2 SQLCA SQLWARN1
v TIMESTAMP : 19 19 26 SQLCA SQLWARN1
/ 84 /
DATALINK DATALINK NO LINK CONTROL
2
v
3 101
v (DRNP)
DATALINK
v DLVALUE DATALINK URL
v CLI SQLBuildDataLink CLI DATALINK URL
DATALINK SQLSTATE 428D1
v (URL) ( 21)v ( 22)v ( 23)v URL ( 27)
URL DATALINK URL DATALINK () URL
v (SQLSTATE 57050)v (SQLSTATE 428D1 24)v ( 26)
v (SQLSTATE 428D125)
v (SQLSTATE 57050)
102 SQL
|||||||
v (SQLSTATE 58004)
DATALINK
v DATALINK (DLLINKTYPE DLURLPATH )
12
DATALINK (SQLSTATE 55022)DATALINK (SQLSTATE 01627)
:
v
93
:
12. DATALINK (SQLSTATE 57050)
3 103
T S (S T )
v
-2 +1
10 10
10
10
10
FOR BIT DATA
104 SQL
1 FOR BIT DATA
(FOR BIT DATA ) ( ) 2 1 2
2
(==) LOB LIKE POSSTR 205LIKE 366POSSTR
LOB 4 000 SUBSTR VARCHAR
MY_SHORT_CLOB CLOB(300)MY_LONG_VAR LONG VARCHAR
WHERE VARCHAR(MY_SHORT_CLOB) > VARCHAR(SUBSTR(MY_LONG_VAR,1,300))
:
Aa X41XC1 X61 XE1
Aa 136139135138
a < A < <
D1D2D3 D4 4 DBCS 0xC1410xC1610xE141 0xE161 DBCS CHAR
3 105
2 138 139 D3 D4 D2 D1 2 135 136
D4 < D3 < D2 < D1
FOR BIT DATA DBCS GRAPHIC
A < a < <
DBCS
D1 < D2 < D3 < D4
Aa 747574 75 () ( 1 ) a A ( 2 )
A < a < <
CHAR DBCS ( 1 ) ( 2 ) 2 (0xC1 0xE1) D1 D2 D3 D4 2
D1 < D2 < D3 < D4
FOR BIT DATA DBCS GRAPHIC
D1 < D2 < D3 < D4
2 114
104
106 SQL
MBCS SBCS/MBCS (SYSTEM) 1 ASCII 2 IDENTITY 2 1 ASCII COMPATIBILITY 2 ASCII DB2 2
:
ABa b 2 X'8260'X'8261'X'8281' X'8282'
X'8260'X'8261'X'8281' X'8282' 9665193 194
'B' < 'A' < 'a' < 'b'
'AB' < 'AA' < 'Aa' < 'Ab' < 'aB' < 'aA' < 'aa' < 'ab'
LONG VARGRAPHIC LONG VARGRAPHIC DBCLOB
(2 )
'A' < 'B' < 'a' < 'b'
3 107
'AA' < 'AB' < 'Aa' < 'Ab' < 'aA' < 'aB' < 'aa' < 'ab'
2
2 2 2
MBCS DBCS EUC
/ DATETIME TIMESTAMP 0001 1 1
TIME
TIMESTAMP
:
TIMESTAMP('1990-02-23-00.00.00') > '1990-02-22-24.00.00'
WITH COMPARISONS
:
YOUTH CAMP_DB2_ROSTER
108 SQL
CREATE DISTINCT TYPE YOUTH AS INTEGER WITH COMPARISONS
CREATE TABLE CAMP_DB2_ROSTER( NAME VARCHAR(20),
ATTENDEE_NUMBER INTEGER NOT NULL,AGE YOUTH,HIGH_SCHOOL_LEVEL YOUTH)
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > HIGH_SCHOOL_LEVEL
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > ATTENDEE_NUMBER
CAST AGE ATTENDEE_NUMBER
SELECT * FROM CAMP_DB2_ROSTERWHERE INTEGER(AGE) > ATTENDEE_NUMBER
SELECT * FROM CAMP_DB2_ROSTERWHERE CAST( AGE AS INTEGER) > ATTENDEE_NUMBER
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > YOUTH(ATTENDEE_NUMBER)
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > CAST(ATTENDEE_NUMBER AS YOUTH)
(NULL TYPE )
3 109
v (UNIONINTERSECT EXCEPT) v CASE v COALESCE ( VALUE) v IN v VALUES
CHAR(2) UNION CHAR(4) UNION VARCHAR(3)
CHAR(4) 4 VARCHAR(4) UNION 4
CHARVARCHARLONG VARCHAR CLOB
CHAR(x) CHAR(y) CHAR(z) z = max(x,y)
CHAR(x) VARCHAR(y) VARCHAR(z) z = max(x,y)
VARCHAR(x) CHAR(y) VARCHAR(y)
VARCHAR(z) z = max(x,y)
110 SQL
LONG VARCHAR CHAR(y)VARCHAR(y)LONG VARCHAR
LONG VARCHAR
CLOB(x) CHAR(y)VARCHAR(y) CLOB(y)
CLOB(z) z = max(x,y)
CLOB(x) LONG VARCHAR CLOB(z) z = max(x,32700)
114
GRAPHICVARGRAPHICLONG VARGRAPHIC DBCLOB
GRAPHIC(x) GRAPHIC(y) GRAPHIC(z) z = max(x,y)
VARGRAPHIC(x) GRAPHIC(y) VARGRAPHIC(y)
VARGRAPHIC(z) z =max(x,y)
LONG VARGRAPHIC GRAPHIC(y)VARGRAPHIC(y) LONGVARGRAPHIC
LONG VARGRAPHIC
DBCLOB(x) GRAPHIC(y)VARGRAPHIC(y) DBCLOB(y)
DBCLOB(z) z = max(x,y)
DBCLOB(x) LONG VARGRAPHIC DBCLOB(z) z =max(x,16350)
114
2 (BLOB)BLOB BLOB BLOB BLOB (263BLOB) BLOB BLOB
3 111
SMALLINTINTEGERBIGINTDECIMALREAL DOUBLE
SMALLINT SMALLINT SMALLINT
INTEGER INTEGER INTEGER
INTEGER SMALLINT INTEGER
BIGINT BIGINT BIGINT
BIGINT INTEGER BIGINT
BIGINT SMALLINT BIGINT
DECIMAL(w,x) SMALLINT DECIMAL(p,x)p = x+max(w-x,5)1
DECIMAL(w,x) INTEGER DECIMAL(p,x)p = x+max(w-x,11)1
DECIMAL(w,x) BIGINT DECIMAL(p,x)p = x+max(w-x,19)1
DECIMAL(w,x) DECIMAL(y,z) DECIMAL(p,s)p = max(x,z)+max(w-x,y-z)1s
= max(x,z)
REAL REAL REAL
REAL DECIMALBIGINTINTEGERSMALLINT
DOUBLE
DOUBLE DOUBLE
: 1. 31
DATE () CHAR VARCHAR DATE
TIME () CHAR VARCHAR TIME
112 SQL
TIMESTAMP () CHAR VARCHAR TIMESTAMP
DATALINK ()DATALINK DATALINK
A/ \B C/ \D E/ \F G
E F B E F
INTERSECT EXCEPT 2
3 113
v INTERSECT ()
v EXCEPT ()
v (UNIONINTERSECT EXCEPT)
v v (LIKE )v CASE v COALESCE ( VALUE) v IN v VALUES
SQLWARN10 SQLCA W
2 ()
v v BIT DATA ( 0) BIT
DATA
v 1158 2 2
114 SQL
8.
1
2
1 1 1 1 1
2 1 1 1 1
2 2 1 1 1
2 2 1 1 1
2 2 2 2 1
CAST () 1 CAST 1
(A CONCAT B )
v v COALESCE ( VALUE) v CASE v IN v VALUES v
v v BIT DATA v v
3 115
1:
COL_1 850
HV_2 437
COL_1 CONCAT :HV_2
COL_1 2 850
2:
COALESCE(COL_1, :HV_2:NULLIND,)
850 COALESCE 850
2 ( 1 )
1179
v DATETIME TIMESTAMP CHAR
v NOT NULL FOR BIT DATA
v NULL NULL
v UDT v
v (CHARVARCHARGRAPHIC VARGRAPHIC)
116 SQL
v CHAR VARCHAR v REAL DOUBLE
9.
2
10
2 Yes No No No No No No No 1 No
10 No Yes No No No No No No 1 No
No No Yes No No No No No 1 No
3
No No No Yes2 No No No No 1 No
3
No No No No Yes No No No 1 No
No No No No No Yes No No 1 No
No No No No No No Yes No 1 No
No No No No No No No Yes 1 No
1 1 1 1 1 1 1 1 1 No
3No No No No No No No No No No
:
1 (UDT) UDT UDT
2 FOR BIT DATA
3 LONG VARCHARLONG VARGRAPHICCLOB DBCLOB BLOB
( ) 10
NOT NULL
(-0) (0)
3 117
19 (large integer) (big integer) 10
-2 147 483 647 -2 147 483 648 -9 223 372 036 854 775 807 -9 223 372 036 854 775 808 ()
64 -15 +100 32767 720176 12345678901
'integer' ()
E 2 2 2 10 30
15E1 2.E5 2.2E-1 +5.E+2
10 10 31 2 10 10 () ()
25.5 1000. -15. +37589.3333333333
(')
118 SQL
32 672 1 2
'12/14/1985''32''DON''T CHANGE'
FOR BIT DATA FOR BIT DATA
16 16
16 X () 16 16 16 336 (SQLSTATE -54002) 1 16 4 A F () A 1010 B 1011 16 ( 16 16 ) (SQLSTATE 42606)
X'FFFF' '1111111111111111'
X'4672616E6B' ASCII 'Frank' VARCHAR
G N (') 2 16 336
3 119
:
G''N''
MBCS MBCS ()
( 176CAST)108 14
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > CAST(14 AS YOUTH)
SELECT * FROM CAMP_DB2_ROSTERWHERE CAST(AGE AS INTEGER) > 14
SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > 14
SQL
CLIENT ACCTNGCLIENT ACCTNG VARCHAR(255)
Set Client Information (sqleseti) API
sqleseti API
120 SQL
|
|||
||
||
VALUES (CLIENT ACCTNG)INTO :ACCT_STRING
CLIENT APPLNAMECLIENT APPLNAME VARCHAR(255)
Set Client Information (sqleseti) API
sqleseti API
SELECT DEPTFROM DEPT_APPL_MAPWHERE APPL_NAME = CLIENT APPLNAME
CLIENT USERIDCLIENT USERID ID VARCHAR(255)
Set Client Information (sqleseti) API ID
sqleseti API
ID
3 121
||
||
||
|
|||
||
||||
||
|||
|
|||
||
||||
||
SELECT DEPTFROM DEPT_USERID_MAPWHERE USER_ID = CLIENT USERID
CLIENT WRKSTNNAMECLIENT WRKSTNNAME VARCHAR(255)
Set Client Information (sqleseti) API
sqleseti API
VALUES (CLIENT WRKSTNNAME)INTO :WS_NAME
CURRENT DATECURRENT DATE SQL SQL CURRENT TIME CURRENT TIMESTAMP 1
CURRENT DATE CURRENTDATE
PROJECT MA2111 (PROJNO) (PRENDATE) CURRENT DATE
UPDATE PROJECTSET PRENDATE = CURRENT DATEWHERE PROJNO = 'MA2111'
122 SQL
|||
|
|||
||
||||
||
||
|
CURRENT DEFAULT TRANSFORM GROUPCURRENT DEFAULT TRANSFORM GROUP VARCHAR (18) SQL SQL
SET CURRENT DEFAULT TRANSFORM GROUP ( VARCHAR)
SQL () (SET CURRENT DEFAULT TRANSFORM GROUP )DB2_PROGRAM DB2_PROGRAM (SQLSTATE 42741)
MYSTRUCT1 MYSTRUCT1 TO SQL FROM SQL
SET CURRENT DEFAULT TRANSFORM GROUP = MYSTRUCT1
VALUES (CURRENT DEFAULT TRANSFORM GROUP)
CURRENT DEGREECURRENT DEGREE SQL 13 CHAR(5)ANY 1 32 767 ()
SQL CURRENTDEGREE 1
13. SQL DEGREE
3 123
SQL CURRENTDEGREE 2 32 767
SQL CURRENT DEGREE ANY
v (max_querydegree) v v SQL
intra_parallel NO CURRENT DEGREE
SET CURRENT DEGREE ( 1078SET CURRENT DEGREE)
CURRENT DEGREE dft_degree
CURRENT EXPLAIN MODECURRENT EXPLAIN MODE SQL Explain VARCHAR(254) Explain Explain ( )Explain
YESNOEXPLAINRECOMMEND INDEXES EVALUATEINDEXES 14
YES Explain SQL Explain
14. SQL EXPLAIN PREP BIND EXPLAIN YESNO ALL
124 SQL
EXPLAINYES
NO Explain
RECOMMEND INDEXES ADVISE_INDEX
EVALUATE INDEXES Explain ADVISE_INDEX
NO
SET CURRENT EXPLAIN MODE ( 1080SET CURRENT EXPLAINMODE)
CURRENT EXPLAIN MODE CURRENT EXPLAIN SNAPSHOT Explain ( 1407145 ) CURRENT EXPLAIN MODE EXPLAIN (1408146 ) RECOMMEND INDEXES EVALUATEINDEXES CURRENT EXPLAIN MODE SET CURRENT EXPLAIN MODE
: EXPL_MODE (VARCHAR(254)) CURRENT EXPLAIN MODE
VALUES CURRENT EXPLAIN MODEINTO :EXPL_MODE
CURRENT EXPLAIN SNAPSHOTCURRENT EXPLAIN SNAPSHOT Explain CHAR(8) ( )
DELETEINSERTSELECTSELECT INTOUPDATEVALUES VALUESINTO
3 125
YESNO EXPLAIN 15
YES SQL
EXPLAINYES
NO Explain
NO
SET CURRENT EXPLAIN SNAPSHOT ( 1083SET CURRENTEXPLAIN SNAPSHOT)
CURRENT EXPLAIN SNAPSHOT CURRENT EXPLAIN MODE Explain ( 1407145 ) CURRENT EXPLAIN SNAPSHOT EXPLSNAP ( 1409147 )
EXPL_SNAP (char(8)) CURRENT EXPLAIN SNAPSHOT
VALUES CURRENT EXPLAIN SNAPSHOTINTO :EXPL_SNAP
CURRENT NODECURRENT NODE () INTEGER
CURRENT NODE (db2nodes.cfg ) 0 16
CURRENT NODE CONNECT (609CONNECT ( 1))
15. SQL EXPLSNAP PREP BIND EXPLSNAP YESNO ALL
16.db2nodes.cfg ()
126 SQL
APPL_NODE()
VALUES CURRENT NODEINTO :APPL_NODE
CURRENT PATHCURRENT PATH SQL VARCHAR(254) SQL 17 CURRENT PATH CALL SQL FUNCPATH SQL (FUNCPATH )
CURRENT PATH 1 ( ID )
FERMAT XGRAPHIC SYSIBM SQL CURRENT PATH
"FERMAT","XGRAPHIC","SYSIBM"
SYSIBMSYSFUNX X USER
SET CURRENT FUNCTION PATH (1108SET PATH ) SYSIBM SQL 1 SYSIBM 254
SQL 146SQL CREATE DISTINCT TYPECREATEFUNCTIONCOMMENT ON DROP
17. CURRENT FUNCTION PATH CURRENT PATH
3 127
SYSCAT.VIEWS CURRENT PATH
SELECT VIEWNAME, VIEWSCHEMA FROM SYSCAT.VIEWSWHERE FUNC_PATH = CURRENT PATH
CURRENT QUERY OPTIMIZATIONCURRENT QUERY OPTIMIZATION SQL INTEGER QUERYOPT SQL (QUERYOPT ) 0 9 (0) 0 dft_queryopt
SET CURRENT QUERY OPTIMIZATION (1087SET CURRENT QUERY OPTIMIZATION)
SYSCAT.PACKAGES CURRENT QUERYOPTIMIZATION
SELECT PKGNAME, PKGSCHEMA FROM SYSCAT.PACKAGESWHERE QUERYOPT = CURRENT QUERY OPTIMIZATION
CURRENT REFRESH AGECURRENT REFRESH AGE DECIMAL(20,6) REFRESH DEFERRED REFRESH TABLE CURRENT REFRESH AGE 99 999 999 999 999 (ANY) QUERY OPTIMIZATION 5 REFRESH DEFERRED SQL REFRESH IMMEDIATE
SET CURRENT REFRESH AGE (1090SET CURRENT REFRESH AGE)REFRESH DEFERRED SQL
CURRENT REFRESH AGE
128 SQL
CURRENT SCHEMACURRENT SCHEMA SQL VARCHAR(128) 18
CURRENT SCHEMA ID
SET SCHEMA (1111SET SCHEMA)
QUALIFIER SQL ( )
D123
SET CURRENT SCHEMA = 'D123'
CURRENT SERVERCURRENT SERVER VARCHAR(18) ()
CURRENT SERVER CONNECT (609CONNECT ( 1))
APPL_SERVE (VARCHAR(18))
VALUES CURRENT SERVERINTO :APPL_SERVE
CURRENT TIMECURRENT TIME SQL SQL CURRENT DATE CURRENT TIMESTAMP 1
18. DB2 (OS/390 ) CURRENT SQLID CURRENT SCHEMA
3 129
CURRENT TIME CURRENTTIME
CL_SCHED (STARTING) (CLASS_CODE) DAY 3
SELECT CLASS_CODE FROM CL_SCHEDWHERE STARTING > CURRENT TIME AND DAY = 3
CURRENT TIMESTAMPCURRENT TIMESTAMP SQL SQL CURRENT DATE CURRENT TIME 1
CURRENTTIMESTAMP CURRENT TIMESTAMP
1 IN_TRAY RECEIVED 3 SRC(char(8))SUB (char(64)) TXT (VARCHAR(200))
INSERT INTO IN_TRAYVALUES (CURRENT TIMESTAMP, :SRC, :SUB, :TXT)
CURRENT TIMEZONECURRENT TIMEZONE UTC19 ( 2 2 2 10 ) -24 24 -24 24 CURRENT TIMEZONE UTC SQL 20
19. (Coordinated Universal Time) GMT
20. CURRENT TIMEZONE C
130 SQL
CURRENT TIMEZONE DECIMAL(6,0)
RECEIVED UTC IN_TRAY
INSERT INTO IN_TRAY VALUES (CURRENT TIMESTAMP - CURRENT TIMEZONE,:source,:subject,:notetext )
USERUSER ID VARCHAR(128)
IN_TRAY
SELECT * FROM IN_TRAYWHERE SOURCE = USER
v (CREATE TABLE )v (CREATE INDEX )v ()
(4395 ) MAX(SALARY) SALARY MAX
GROUP BY ORDER BY ORDER BY DEPT DEPT
CODE = 20 CODE CODE
v FROM table-reference correlation-clause
3 131
v COMMENT ON
v v UPDATE
v
2 134 136
FROM UPDATE DELETE 1 FROM X.MYTABLE Z Z X.MYTABLE
FROM X.MYTABLE Z
X.MYTABLE Z SELECT Z X.MYTABLE
X.MYTABLE
EMPLOYEE.PROJECT EMPLOYEE
132 SQL
||
:
FROM EMPLOYEE EWHERE EMPLOYEE.PROJECT='ABC' * *
PROJECT E EMPLOYEE
FROM EMPLOYEE EWHERE E.PROJECT='ABC'
FROM FROM FROM EMPLOYEE DEPARTMENT DEPARTMENT EMPLOYEE
FROM EMPLOYEE E, DEPARTMENT
FROM FROM FROM (SQLSTATE 42702)
2 FROM EMPLOYEE 2 FROM
1. FROM
FROM EMPLOYEE E1, EMPLOYEE
EMPLOYEE.PROJECT FROM EMPLOYEE 2 EMPLOYEE 1 E1 (E1.PROJECT)
2. FROM
FROM EMPLOYEE, EMPLOYEE E2
EMPLOYEE.PROJECT FROM EMPLOYEE 1 EMPLOYEE 2 E2 (E2.PROJECT)
3. FROM
FROM EMPLOYEE, EMPLOYEE
3 133
2 (EMPLOYEE EMPLOYEE) (SQLSTATE 42702)
4.
SELECT *FROM EMPLOYEE E1, EMPLOYEE E2 * *WHERE EMPLOYEE.PROJECT = 'ABC'
EMPLOYEE.PROJECT FROM EMPLOYEE 2 PROJECT (E1.PROJECT E2.PROJECT)
5. FROM
FROM EMPLOYEE, X.EMPLOYEE
EMPLOYEE 2 X.EMPLOYEE (X.EMPLOYEE.PROJECT) X SQL CURRENT SCHEMA SQL QUALIFIER /
FROM
FROM
FROM DEPARTMENT D (NUM,NAME,MGR,ANUM,LOC)
D.NUM DEPTNO DEPARTMENT FROM D.DEPTNO DEPTNO
GROUP BY ORDER BY 1 SQL SQL SQL
134 SQL
FROM table-references table-references
SELECT FROM
SELECT CORZ.COLA, OWNY.MYTABLE.COLAFROM OWNX.MYTABLE CORZ, OWNY.MYTABLE
FROM
v CORZ CORZ
v OWNY.MYTABLE 2 OWNY.MYTABLE
FROM
1
v v
v 2
v FROM
v TABLE table-reference
3 135
1. ID CORPDATA
SELECT CORPDATA.EMPLOYEE.WORKDEPTFROM EMPLOYEE
2. ID REGION
SELECT CORPDATA.EMPLOYEE.WORKDEPTFROM EMPLOYEE * *
EMPLOYEE REGION.EMPLOYEE WORKDEPT CORPDATA.EMPLOYEE
SQL 14395 FROM
SQL
1
SQL
136 SQL
TABLE
2
T C T.C ( T )
v T.C v T from v T
T 2 (T ) T.C T.C T
T.C 2 1 2 T C 2 WHERE 2 2 HAVING 2 (4395 WHERE HAVING )
() X.WORKDEPT FROM EMPLOYEE WORKDEPT ( X EMPLOYEE )
SELECT EMPNO, LASTNAME, WORKDEPTFROM EMPLOYEE XWHERE SALARY < (SELECT AVG(SALARY)
FROM EMPLOYEEWHERE WORKDEPT = X.WORKDEPT)
3 137
THIS
DELETE FROM DEPARTMENT THISWHERE NOT EXISTS(SELECT *
FROM EMPLOYEEWHERE WORKDEPT = THIS.DEPTNO)
v C C++ COBOL FORTRAN Java
v SQL SQL
SQL SQL
SQL
SQL REXX SQL DECLARE ( SQL ) SQL DECLARE SQL DECLARE SQL DECLARE BEGIN DECLARE SECTION END DECLARE SECTION
host-variable () VALUES INTO FETCH SELECT INTO INTO
SQL SQL (?) SQL
138 SQL
SQL SQL
INSERT INTO DEPARTMENTVALUES (:hv_deptno, :hv_deptname, :hv_mgrno, :hv_admrdept)
SQL
INSERT INTO DEPARTMENT VALUES (?, ?, ?, ?)
1026PREPARE
host-variable () :host-identifier
INDICATOR:host-identifier
host-identifier ( ID) 2 ID
ID (host-identifier) ID
2 host-identifier ( ID)
v -2
v ()
v
:HV1:HV2 HV2 HV2 HV1
3 139
:HV1:HV2 VALUES INTO FETCH SELECT INTOHV1 HV2 21 HV1 HV2 ( HV1 LOB HV2 )HV2
2 ID :HV1 HV1 INTO
SQL SELECT DECLARE CURSOR OPEN
PROJECT (PROJNO) IF1000 PNAME (VARCHAR(26)) (PROJNAME) STAFF(dec(5,2)) (PRSTAFF) MAJPROJ (char(6)) (MAJPROJ) PRSTAFF MAJPROJ STAFF_IND () MAJPROJ_IND ()
SELECT PROJNAME, PRSTAFF, MAJPROJINTO :PNAME, :STAFF :STAFF_IND, :MAJPROJ :MAJPROJ_INDFROM PROJECTWHERE PROJNO = 'IF1000'
MBCS :
21. DFT_SQLMATHWARN yes ( SQL ) HV2 -2 HV2 -2 HV1 HV1 HV1 DB2 5 HV2 -1
140 SQL
BLOBCLOB DBCLOB BLOBCLOB DBCLOB LOB () LOB (142BLOBCLOB DBCLOB ) LOB host-variable () SQL REXX LOB
LOB ( LOB 79 (LOB) )
SQL SQL
locator-variable () locator-variable () host-variable() host-identifier ( ID)
LOB
3 141
(SQLSTATE0F001)
BLOBCLOB DBCLOB BLOBCLOB DBCLOB LOB SQL REXX LOB
LOB LOB LOB 1
BLOBCLOB DBCLOB
()
v (EXECUTE OPEN UPDATE INSERT DELETE )
v (FETCH SELECTINTO )
v ()v
1
142 SQL
1 INTEGER 1
v ()
SQL_FILE_READ 22
v ()
SQL_FILE_CREATE 23
SQL_FILE_OVERWRITE () 24
SQL_FILE_APPEND 25
22. COBOL SQL-FILE-READFORTRAN sql_file_readREXX READ
23. COBOL SQL-FILE-CREATEFORTRAN sql_file_createREXX CREATE
24. COBOL SQL-FILE-OVERWRITEFORTRAN sql_file_overwriteREXX OVERWRITE
25. COBOL SQL-FILE-APPENDFORTRAN sql_file_appendREXX APPEND
3 143
(C )
v EXEC SQL BEGIN DECLARE SECTION
SQL TYPE IS CLOB_FILE hv_text_file;char hv_patent_title[64];
EXEC SQL END DECLARE SECTION
EXEC SQL BEGIN DECLARE SECTION/* SQL TYPE IS CLOB_FILE hv_text_file; */struct {
unsigned long name_length; // File Name Lengthunsigned long data_length; // Data Lengthunsigned long file_options; // File Optionschar name[255]; // File Name
} hv_text_file;char hv_patent_title[64];
EXEC SQL END DECLARE SECTION
CLOB :hv_text_file
strcpy(hv_text_file.name, "/u/gainer/papers/sigmod.94");hv_text_file.name_length = strlen("/u/gainer/papers/sigmod.94");hv_text_file.file_options = SQL_FILE_CREATE;
EXEC SQL SELECT content INTO :hv_text_file from papersWHERE TITLE = 'The Relational Theory behind Juggling';
(C )
v :hv_text_file CLOB
strcpy(hv_text_file.name, "/u/gainer/patents/chips.13");hv_text_file.name_length = strlen("/u/gainer/patents/chips.13");hv_text_file.file_options = SQL_FILE_READ:strcpy(:hv_patent_title, "A Method for Pipelining Chip Consumption");
EXEC SQL INSERT INTO patents( title, text )VALUES(:hv_patent_title, :hv_text_file);
144 SQL
FORTRANREXX Java SQL
v TRANSFORM GROUP FROM SQL
v TRANSFORM GROUP TO SQL
SQLDA SQLDA SQLVAR 2 2 SQLVAR SQLDATATYPE_NAME SQLDA (SQLSTATE 07002)1193C. SQL (SQLDA)
C ( BLOB(1048576) POLYGON ) hv_poly hv_point
EXEC SQL BEGIN DECLARE SECTION;static SQL
TYPE IS POLYGON AS BLOB(1M)hv_poly, hv_point;
EXEC SQL END DECLARE SECTION;
3 145
TIMESTAMP DATE TIME TIMESTAMP
v 1 SYSIBM AVG + DECIMAL cast SUBSTR
v SYSCAT.FUNCTIONS (CREATE FUNCTION ) SYSIBM 1 SYSFUN
DB2
SYSIBM SYSFUN 21815
SQL SQL SQL SQL RETURN SQL
146 SQL
SUBSTR() UDF
() DB2 AVG() UDF DB2 UDF SHOESIZE INTEGER AVG(INTEGER) UDF AVG(SHOESIZE)
SQL
SQL SELECT FROM DB2 SQL DB2 WWW Lotus NotesSQL ()
1 2 ()SQL 2
3 147
SQL () SQL SQL SQL SQL FUNCPATH ( ) SQL SQL CURRENT PATH (127CURRENT PATH)
SQL () () ()
SQL
1. RISKTEST
TEST.RISK(INTEGER)TEST.RISK(DOUBLE)
SQL TEST (DB DOUBLE )
SELECT ... RISK(DB) ...
148 SQL
2 RISK
(SI SMALLINT )
SELECT ... RISK(SI) ...
RISK SMALLINT INTEGER DOUBLE (925 )
2. 2 (C CHAR(5))
SELECT ... RISK(C) ...
RISK
3. SQL RANDOM
TEST.RANDOM(INTEGER)PROD.RANDOM(INTEGER)
SQL
"TEST","PROD"
SELECT ... RANDOM(432) ...
TEST.RANDOM RANDOM () SQL TEST PROD
()
3 149
1. (SYSCAT.FUNCTIONS)
a. ()
b. () SQL 1
c.
d. (92)
2. 925 FOR BIT DATA DECIMAL(9,1) DECIMAL(6,5) VARCHAR(19) VARCHAR(6)
() ()
3. 2 2 ()SQL
4. 2 (SQLSTATE42884)
SYSIBM SYSFUN SYSIBM SYSFUN ( SYS )
150 SQL
1 SYSIBM SYSIBM
SQL
"SHAREFUN","SYSIBM","SYSFUN"
SYSIBM.LENGTH LENGTH SHAREFUN SQL LENGTH SHAREFUN.LENGTH SQL
"SHAREFUN","SYSFUN"
SHAREFUN.LENGTH SQL LENGTH SYSIBM.LENGTH SYSIBM SYSIBM 1
v
v
3 7 ACT ()
CREATE FUNCTION AUGUSTUS.ACT (CHAR(5), INT, DOUBLE) SPECIFIC ACT_1 ...CREATE FUNCTION AUGUSTUS.ACT (INT, INT, DOUBLE) SPECIFIC ACT_2 ...CREATE FUNCTION AUGUSTUS.ACT (INT, INT, DOUBLE, INT) SPECIFIC ACT_3 ...CREATE FUNCTION JULIUS.ACT (INT, DOUBLE, DOUBLE) SPECIFIC ACT_4 ...CREATE FUNCTION JULIUS.ACT (INT, INT, DOUBLE) SPECIFIC ACT_5 ...CREATE FUNCTION JULIUS.ACT (SMALLINT, INT, DOUBLE) SPECIFIC ACT_6 ...CREATE FUNCTION NERO.ACT (INT, INT, DEC(7,2)) SPECIFIC ACT_7 ...
(I1 I2 INTEGER D DECIMAL )
SELECT ... ACT(I1, I2, D) ...
3 151
||
SQL
"JULIUS","AUGUSTUS","CAESAR"
v NERO SQL ACT_7 v ACT_3 1 1 ACT_1 ACT_6
v v ACT_2ACT_4 ACT_5
v 2 ACT_2 ACT_5 ACT_4 ACT_4 ACT_2 ACT_5
v 3 ACT_2 ACT_5
v ACT_2 ACT_5 2 SQL ACT_5
STEP
STEP(SMALLINT) returns CHAR(5)STEP(DOUBLE) returns INTEGER
(S SMALLINT )
SELECT ... 3 + STEP(S) ...
STEP CHAR(5)
152 SQL
|
|||
|
|||
|||
||
||||
1. FROM
2.
(96)
() ( ) ADDRESS CITY VARCHAR ADDRESS ( ADDRESS )
CITY ADDRESS
CREATE TYPE ( ALTER TYPE ADD METHOD) CREATE METHOD SYSCAT.FUNCTIONS
DB2
3 153
SQL SQL SQL SQL SQL
(SELF AS RESULT)
v v
v ()
2 () 2
154 SQL
() WITHFUNCTION ACCESS
()
SQL ()
() () ()
()
1. SITE RISK
PROXIMITY(INTEGER) FOR SITEPROXIMITY(DOUBLE) FOR SITE
(ST SITE DB DOUBLE )
SELECT ST..PROXIMITY(DB) ...
3 155
2 PROXIMITY
(SI SMALLINT )
SELECT ST..PROXIMITY(SI) ...
PROXIMITY SMALLINT INTEGER DOUBLE
2. 2 (C CHAR(5))
SELECT ST..PROXIMITY(C) ...
PROXIMITY
3. SITE DRILLSITE (SITE ) RISK
RISK(INTEGER) FOR DRILLSITERISK(DOUBLE) FOR SITE
(DRST DRILLSITE DB DOUBLE )
SELECT DRST..RISK(DB) ...
DRILLSITE SITE 2 RISK
(SI SMALLINT )
SELECT DRST..RISK(SI) ...
RISK SMALLINT INTEGER ( DOUBLE ) DRILLSITE SITE
156 SQL
1. (SYSCAT.FUNCTIONS)
v
v v (92)
2. () SELF ADDRESS_T ADDRESS_T
925
FOR BIT DATA DECIMAL(9,1) DECIMAL(6,5) VARCHAR(19) VARCHAR(6)
() ()
3. 2 1
4. 2 (SQLSTATE42884)
3 157
GOVERNOR 3 HEADOFSTATE EMPEROR 7 FOO
CREATE METHOD FOO (CHAR(5), INT, DOUBLE) FOR HEADOFSTATE SPECIFIC FOO_1 ...CREATE METHOD FOO (INT, INT, DOUBLE) FOR HEADOFSTATE SPECIFIC FOO_2 ...CREATE METHOD FOO (INT, INT, DOUBLE, INT) FOR HEADOFSTATE SPECIFIC FOO_3 ...CREATE METHOD FOO (INT, DOUBLE, DOUBLE) FOR EMPEROR SPECIFIC FOO_4 ...CREATE METHOD FOO (INT, INT, DOUBLE) FOR EMPEROR SPECIFIC FOO_5 ...CREATE METHOD FOO (SMALLINT, INT, DOUBLE) FOR EMPEROR SPECIFIC FOO_6 ...CREATE METHOD FOO (INT, INT, DEC(7,2)) FOR GOVERNOR SPECIFIC FOO_7 ...
(I1 I2 INTEGER D DECIMAL E EMPEROR )
SELECT E..FOO(I1, I2, D) ...
GOVERNOR EMPEROR () FOO_7
FOO_3
1 () 1 FOO_1 FOO_6
FOO_2 FOO_4 FOO_5
FOO_4 FOO_5
2 FOO_5 FOO_4 FOO_4 FOO_5
STEP
STEP(SMALLINT) FOR TYPEA RETURNS CHAR(5)STEP(DOUBLE) FOR TYPEA RETURNS INTEGER
(S SMALLINT TA TYPEA )
158 SQL
SELECT 3 + TA..STEP(S) ...
STEP CHAR(5)
v
v
(96)
v DML v v v v SQL
DML
2
3 159
2 (SQL ) SQL 2627
DML REBIND ( API) BIND ( API) REBIND (RESOLVE CONSERVATIVE ) ( RESOLVE ANY )
26. 6.1
27.
160 SQL
SQL 709CREATE FUNCTION (SQL )
expression:
operator
function+ (expression)- constant
column-namehost-variablespecial-register
(1)(scalar-fullselect)
(2)labeled-duration
(3)case-expression
(4)cast-specification
(5)dereference-operation
(6)OLAP-function
(7)method-invocation
(8)subtype-treatment
(9)sequence-reference
operator:(10)
CONCAT/*+-
:
1 168
2 168
3 161
3 174CASE
4 176CAST
5 179
6 181OLAP
7 187
8 188
9 189
10 CONCAT ||
: SALARY :SALARY 'SALARY' MAX(SALARY)
(CONCAT) 2 1
FOR BITDATA 2 (SQLSTATE 42884) 967
1 2
10.
CHAR(A) CHAR(B) 254 VARCHAR(A+B)
CHAR(A) VARCHAR(B) 4000 LONG VARCHAR
CHAR(A) LONG VARCHAR - LONG VARCHAR
162 SQL
10. ()
VARCHAR(A) VARCHAR(B) 4000 LONG VARCHAR
VARCHAR(A) LONG VARCHAR - LONG VARCHAR
LONG VARCHAR LONG VARCHAR - LONG VARCHAR
CLOB(A) CHAR(B) - CLOB(MIN(A+B, 2G))
CLOB(A) VARCHAR(B) - CLOB(MIN(A+B, 2G))
CLOB(A) LONG VARCHAR - CLOB(MIN(A+32K, 2G))
CLOB(A) CLOB(B) - CLOB(MIN(A+B, 2G))
GRAPHIC(A) GRAPHIC(B) 127 VARGRAPHIC(A+B)
GRAPHIC(A) VARGRAPHIC(B) 2000 LONG VARGRAPHIC
GRAPHIC(A) LONG
VARGRAPHIC
- LONG VARGRAPHIC
VARGRAPHIC(A) VARGRAPHIC(B) 2000 LONG VARGRAPHIC
VARGRAPHIC(A) LONG VARGRAPHIC - LONG VARGRAPHIC
LONG VARGRAPHIC LONG
VARGRAPHIC
- LONG VARGRAPHIC
DBCLOB(A) GRAPHIC(B) - DBCLOB(MIN(A+B, 1G))
DBCLOB(A) VARGRAPHIC(B) - DBCLOB(MIN(A+B, 1G))
DBCLOB(A) LONG VARGRAPHIC - DBCLOB(MIN(A+16K, 1G))
DBCLOB(A) DBCLOB(B) - DBCLOB(MIN(A+B, 1G))
BLOB(A) BLOB(B) - BLOB(MIN(A+B, 2G))
LONG LOBCHAR(200) LONG VARCHAR CLOB
3 163
114
1: FIRSTNME Pierre LASTNAME Fermat
FIRSTNME CONCAT ' ' CONCAT LASTNAME
Pierre Fermat
2:
v COLA 'AA' VARCHAR(5) v :host_var 5 'BB '
v COLC 'CC' CHAR(5) v COLD 'DDDDD' CHAR(5)
COLA CONCAT :host_var CONCAT COLC CONCAT COLD
'AABB CC DDDDD'
VARCHAR 17
3: COLA CHAR(10) COLB VARCHAR(5)
COLA CONCAT COLB CONCAT ?
VARCHAR(15) COLA CONCAT COLB 2 CONCAT 1
CONCAT TITLE
164 SQL
TITLE_DESCRIPTION VARCHAR(25) ATTACH
CREATE FUNCTION ATTACH (TITLE, TITLE_DESCRIPTION)RETURNS VARCHAR(50) SOURCE CONCAT (VARCHAR(), VARCHAR())
CREATE FUNCTION CONCAT (TITLE, TITLE_DESCRIPTION)RETURNS VARCHAR(50) SOURCE CONCAT (VARCHAR(), VARCHAR())
DFT_SQLMATHWARN yes
(169SQL / )USER+2
+ () - () A -A
+-* / 2 +(a,b) a+b
SQL (SQLSTATE 22003 22012)
(DFT_SQLMATHWARN yes ) (SQLSTATE01519 01564) SQL
3 165
SQL
v
v WHERE
v
v CASE
v (
check (c1*c2 is not null and c1*c2>5000)
)
2 2 () (big integer) (large integer) () ()
10 10 p 0 10 10 p (big integer) 19 (largeinteger) 11 (small integer) 5
2 10 10 10 10 10
166 SQL
10 31 10 31 31
SQL 10 SQL 10 p s 1 p' s' 2
min(31,max(p-s,p-s) +max(s,s)+1) max(s,s)
(31,p+p) min(31,s+s)
31 31-p+s-s'
: MIN_DEC_DIV_3 10 NO 31-p+s-s' YES MAX(3, 31-p+s-s') 10 3 ( 31 )MIN_DEC_DIV_3
10 10
INCOME EXPENSES
3 167
|||||||
DECIMAL(8,2) REVENUE
CREATE FUNCTION REVENUE (INCOME, EXPENSES)RETURNS DECIMAL(8,2) SOURCE "-" (DECIMAL, DECIMAL)
- ()
CREATE FUNCTION "-" (INCOME, EXPENSES)RETURNS DECIMAL(8,2) SOURCE "-" (DECIMAL, DECIMAL)
1 1 477
/ / 10 /
4
labeled-duration:function(expression)constantcolumn-namehost-variable
YEARYEARSMONTHMONTHSDAYDAYSHOURHOURSMINUTEMINUTESSECONDSECONDSMICROSECONDMICROSECONDS
(labeled-duration) () 7 YEARS MONTHS DAYS HOURS
168 SQL
MINUTES SECONDS MICROSECONDS 1 28
DECIMAL(15,0) 1 DATETIME TIMESTAMP HIREDATE + 2 MONTHS + 14 DAYS HIREDATE + (2 MONTHS+ 14 DAYS) 2 MONTHS 14 DAYS
DECIMAL(8,0) yyyymmdd. (yyyy mm dd ) 29 HIREDATE -BRTHDATE
DECIMAL(6,0) hhmmss. (hh mm ss ) 29
DECIMAL(20,6) yyyymmddhhmmss.zzzzzz (yyyy mmdd hhmm ss zzzzzz )
SQL / / / /
v YEARSMONTHSDAYS
v HOURSMINUTESSECONDS
28. YEARMONTHDAYHOURMINUTES