sql 解説書 - コンピューター技術者の味方 …c8885401).pdfibm ®db2 universal database...

1632
IBM ® DB2 ® ユニバーサル・データベース SQL 解説書 バージョン 7 SC88-8540-01 (英文原典:SC09-2974-01)

Upload: lyhanh

Post on 10-Jul-2018

284 views

Category:

Documents


1 download

TRANSCRIPT

  • 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

    : PDF

  • 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