SQL. æÏÒÍÁÔ ÏÐÅÒÁÔÏÒÏ× Dƒš SQL æÏÒÍÁÔ ÏÐÅÒÁÔÏÒÏ× ƒŠ E2 ÓÔÒ. ÐÏ D86E ÓÔÒÏËD ƒŠ EÆÁÊÌD hsql ƒšE ƒšDïÐÒÅÄÅÌÅÎÉÑE CREATE, DROP, DATABASE, ALTER, RENAME ƒš ƒšDíÁÎÉÐÕÌÑÃÉÉE DELETE, INSERT, UPDATE, LOAD/UNLOAD ƒš ƒš SELECT and UNION statements. ƒš ƒšDäÏÓÔÕÐÁE GRANT/REVOKE, LOCK/UNLOCK, SET LOCK MODE ƒš ƒšD÷ÏÓÓÔÁÎÏ×ÌÅÎÉÑE Transaction, Audit trail ƒš ƒšDðÒÏÞÉÅE CHECK, REPAIR, INFO, OUTPUT, SET EXPLAIN ƒš ƒ“ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ›ƒ” Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒŠDefinition CREATE, DROP, DATABASE, ALTER, RENAME ƒŠE DƒŠE ïÐÅÒÁÔÏÒÙ ÏÐÒÅÄÅÌÅÎÉÑ ÄÁÎÎÙÈ ÎÅ ÏÔËÁÔÙ×ÁÀÔÓÑ DƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E DCREATE DATABASEE database [WITH LOG IN "pathname" [MODE ANSI]] DDROP DATABASEE database-name ÓÔÁÎÄÁÒÔ ansi = ÔÒÅÂÕÅÔ ÉÍÑ ×ÌÁÄÅÌØÃÁ, ÔÒÁÎÚÁËÃÉÑ ÐÏ ÕÍÏÌÞÎÉÀ DDATABASEE database-name [EXCLUSIVE] ÓÄÅÌÁÔØ ÔÅËÕÝÅÊ DCLOSE DATABASEE DCREATEE [TEMP] DTABLEE table-name ( column-name datatype [NOT NULL] [UNIQUE [CONSTRAINT constr-name]][,...] ) [UNIQUE(uniq-col-list) [CONSTRAINT constr-name]][,..] [WITH NO LOG] [IN "pathname-directory"] DATA TYPES INTEGER SERIAL[(n0)] - Á×ÔÏÍÁÔÉÞÅÓËÉÊ ÓÞÅÔÞÉË SMALLINT CHAR(n) DATE FLOAT DECIMAL(m,n) DATETIME qualif1 TO qualif2 REAL MONEY(m,n) INTERVAL qualif1 TO qualif2 ÇÄÅ qualifier ¨ {YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,FRACTION(n)} DALTER TABLEE table-name { ADD ( new-column-name datatype [NOT NULL] [UNIQUE [CONSTRAINT constr-name]][,...] ) | [BEFORE old-column-name] DROP (old-column-name[,...]) | MODIFY (old-column-name new-datatype [NOT NULL][,...]) | ADD CONSTRAINT UNIQUE (old-column-name[,...]) | [CONSTRAINT constr-name] DROP CONSTRAINT (constr-name[,...]) } [,...] DCREATE VIEWE view-name [(column-list)] AS SELECT-statement [WITH CHECK OPTION] DCREATEE [UNIQUE|DISTINCT] [CLUSTER] DINDEXE index-name ON table-name (column-name [DESC], ...) DALTER INDEXE index-name TO [NOT] CLUSTER CÔÒÏËÉ × ÐÏÒÑÄËÅ ÉÎÄÅËÓÁ CREATE SCHEMA AUTHORIZATION username {create and/or grant statements} ðÒÉÍÅÞÁÎÉÅ: ÐÏÄÞÅÒËÎÕÔÙÅ ÏÐÅÒÁÔÏÒÙ ÎÅÌØÚÑ ÉÓÐÏÌØÚÏ×ÁÔØ × 4GL   DCREATE SYNONYME synonym-name FOR table-name DDROP INDEXE index-name DDROP SYNONYME synonym-name DDROP TABLEE table-name DDROP VIEWE view-name DRENAME TABLEE old-table-name TO new-table-name DRENAME COLUMNE table.old-column-name TO new-column-name Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒŠ Manipulation DELETE, INSERT, UPDATE, LOAD, UNLOAD ƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E DDELETE FROME table-name [WHERE condition] DINSERT INTOE table-name [(column-list)] { VALUES (value-list) | SELECT-statement } DUPDATEE table-name DSETE {column-name ={ expression | (SELECT-st) } [,...] | {(col-list) | [table.]*} = { ({ expr-list | (SELECT-st) } [,...]) | record-name.* } [WHERE condition] DLOAD FROME "file" [DELIMITER "?"] INSERT INTO table [(col-list)] DUNLOAD TOE "file" [DELIMITER "?"] SELECT-statement Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒŠ Select The SELECT and UNION statements. ƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E DSELECTE [UNIQUE] select-list [FROM { [OUTER] tabname [tab-alias] | OUTER (table-expr) } [,...] ] [WHERE condition] [GROUP BY column-list] [HAVING condition] [ORDER BY column-name [DESC],...] [INTO TEMP table-name] SELECT-statement UNION [ALL] SELECT-statement [. . .] WHERE conditions:  Ó×ÑÚÁÎÎÙÅ ÌÏÇÉÞÅÓËÉÍÉ ÏÐÅÒÁÔÏÒÁÍÉ OR, AND, NOT ÓÒÁ×ÎÅÎÉÑ expr rel-op expr ÇÄÅ rel-op ÉÚ >,<,>=,<=,<>,!= column-name IS [NOT] NULL expr [NOT] BETWEEN ... AND ... expr [NOT] IN (.. , .. [, ...] ) ÐÏ ÕÍÏÌÞÁÎÉÀ "\" string [NOT] LIKE "ÛÁÂÌÏÎ" [ESCAPE "escape-char"] ÓÐÅÃÓÉÍ×ÏÌÙ ÛÁÂÌÏÎÁ D%E D_E ÏÚÎÁÞÁÀÔ ¦ §! string [NOT] MATCHES "ÛÁÂÌÏÎ" [ESCAPE "esc-char"] ÓÐÅÃÓÉÍ×ÏÌÙ ÛÁÂÌÏÎÁ D*E D?E D[EabHD]E D[^EdD-EzD]E ÏÚÎÁÞÁÀÔ ¦ §! ¨ © expr rel-op {ALL | [ANY | SOME]} (SELECT-statement) expr [NOT] IN (SELECT-statement) !* ïÂÙËÎÏ×ÅÎÎÙÊ *! [NOT] EXISTS (SELECT-statement) !* SQLÅ×ÓËÉÊ *! Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒŠAccess GRANT/REVOKE, LOCK/UNLOCK, SET LOCK MODE ƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E {DBpriv {PUBLIC ÐÒÁ×Ï ÄÁ×ÁÔØ ÐÒÁ×Á DGRANTE | TO | [WITH GRANT OPTION] [AS grantor] TBpriv ON table} user-list} ÏÔ ÞÕÖÏÇÏ ÉÍÅÎÉ {DBpriv {PUBLIC DREVOKEE | FROM | TBpriv ON table} user-list} TABLE PRIVILEGES: DATABASE PRIVILEGES: ALTER DELETE INDEX INSERT CONNECT SELECT[(cols)] RESOURCE UPDATE [(cols)] DBA ALL [PRIVILEGES] DSET LOCK MODEE TO [NOT] WAIT ÖÄÁÔØ /ÎÅ ÖÄÁÔØ ÏÓ×ÏÂÏÖÄÅÎÉÑ DLOCK TABLEE table-name IN {SHARE | EXCLUSIVE} MODE DUNLOCK TABLEE table-name {íÏÖÎÏ ÓÍÏÔÒÅÔØ | îÉÞÅÇÏ ÎÅÌØÚÑ } Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒšIntegrity Transaction, Audit trail ƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E ðÒÏ×ÏÄÉÔØ ÔÒÁÎÚÁËÃÉÀ Ó ÎÏ×ÙÍ LOG ÆÁÊÌÏÍ DSTART DATABASEE database WITH LOG IN "/pathname" [MODE ANSI] DDATABASEE database-name [EXCLUSIVE] DROLLFORWARD DATABASEE database-name ÷ÏÓÓÔÁÎÏ×ÉÔØ ÂÁÚÕ DCLOSE DATABASEE ÉÚ backup-ËÏÐÉÉ DBEGIN WORKE îÁÞÁÌÏ ÔÒÁÎÚÁËÃÉÉ ÷ÎÉÍÁÎÉÅ, ×ÓÅ ÉÚÍÅÎÅÎÎÙÅ . . . ÓÔÒÏËÉ ÌÏËÉÒÕÀÔÓÑ!! DCOMMIT WORKE KoÎÅà ÔÒÁÎÚÁËÃÉÉ DROLLBACK WORKE ïÔËÁÔÉÔØ ÉÚÍÅÎÅÎÉÑ Ë ÐÒÅÄÙÄÕÝÅÍÕ COMMIT DCREATE AUDITE FOR table-name IN "pathname" . . . DRECOVER TABLEE table-name ÷ÏÓÓÔÁÎÏ×ÉÔØ ÔÁÂÌÉÃÕ DDROP AUDITE FOR table-name Dƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‚E DƒŠAuxiliary CHECK, REPAIR, INFO, OUTPUT, SET EXPLAINƒŠE Dƒƒƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ‹ƒ„E CHECK TABLE table-name ðÒÏ×ÅÒÉÔØ ÉÎÄÅËÓÙ REPAIR TABLE table-name òÅÍÏÎÔ ÉÎÄÅËÓÏ× ðÒÉÍÅÞÁÎÉÅ: ÐÏÄÞÅÒËÎÕÔÙÅ ÏÐÅÒÁÔÏÒÙ ÎÅÌØÚÑ ÉÓÐÏÌØÚÏ×ÁÔØ × 4GL   INFO {TABLES | COLUMNS FOR table-name | INDEXES FOR table-name | STATUS FOR table-name | {ACCESS | PRIVILEGES} FOR table-name} DUPDATE STATISTICSE [FOR TABLE table-name] ÓÉÓÔÅÍÎÏÍ ËÁÔÁÌÏÇÅ DSET EXPLAINE {ON | OFF} ÷ËÌÀÞÉÔØ ÓÉÓÔÅÍÎÙÅ ÏÂ`ÑÓÎÅÎÉÑ