^&Defining_ a_ Database_ Schema\& .nf.LM4 DEFINE dbname OWNER password ATTRIBUTES attname {REAL} [{length}] [KEY] INT VAR TEXT DOUB RVEC IVEC DVEC .s attname {RMAT} {row,col} [KEY] IMAT row,VAR DMAT VAR,VAR RELATIONS relname WITH attname1 [attname2...] PASSWORDS {READ PASSWORD} FOR {relname} IS password RPW ALL {MODIFY PASSWORD} FOR {relname} IS password MPW ALL RULES attname [IN relname] {EQ} value [{AND}...] NE OR GT GE LT LE attname IN relname {EQA} attname IN relname [{AND}...] NEA OR GTA GEA LTA LEA END .s.I-4.tp9 ^&Loading_ a_ Relation\& LOAD relname value1 value2 ... valueN END value: SCALARS val1 TEXT "text string" VECTOR (val1, val2, ...) MATRIX ((r1c1, r2c1, ...), (r1c2, r2c2, ...), ...) .s.i-4.tp12 ^&Querying_ a_ Relation\& SELECT {attname1 [=fw1], attname2 [=fw2], ...} FROM relname + attnum1 [=fw1], ... attname1(i), ... attname1(i,j), ... ALL [SORTED BY attname1 [={A}], [attname2 [={A}], ...]] + D D [WHERE ...] TALLY attname [={A}] FROM relname [WHERE ...] D .s.i-4.tp10 WHERE clause: .s WHERE attname {EXISTS} [{AND} ...] FAILS OR EQ {value} EQS MAX NE MIN GT LT LE .s.tp6 WHERE attname {EQA} attname [{AND} ...] NEA OR GTA GEA LTA LEA .s.tp6 WHERE ROWS {EQ} rownumber [{AND} ...] NE OR LT LE GE GT .s.tp4 WHERE {attname} {EQ} list [{AND} ...] ROWS NE OR .s WHERE LIMIT EQ number [{AND} ...] .s.i-4.tp6 ^&Querying_ the_ Schema\& LISTREL [{relname}] ALL EXHIBIT attname1 [attname2...] PRINT RULES .s.i-4.tp7 ^&Computation_ Command\& COMPUTE {COUNT} attname FROM relname [WHERE ...] MIN MAX AVE SUM .s.i-4.tp8 ^&Modification_ Commands\& CHANGE {attname} TO value [IN relname] WHERE ... attname(i) attname(i,j) CHANGE {RPW} TO newpass FOR relname MPW CHANGE OWNER TO newowner .tp3 DELETE ROWS FROM relname WHERE ... DELETE DUPLICATES [attname1, attname2, ...] FROM relname DELETE RULE rulenumber .tp3 RENAME [ATTRIBUTE] attname TO newname [IN relname] RENAME RELATION relname TO newname REMOVE relname .s.i-4.tp4 ^&Relational_ Algebra_ Commands\& INTERSECT relname1 WITH relname2 FORMING relname3 + [USING attname1 [attname2, ...]] .s.tp7 JOIN relname1 USING attname1 WITH relname2 USING attname2 + FORMING relname3 [WHERE {EQ}] NE GT GE LT LE .s.tp2 SUBTRACT relname1 FROM relname2 FORMING relname3 + [USING attname1 [attname2, ...]] .s.tp3 PROJECT relname1 FROM relname2 USING + {attname1, [attname2, ...]} [WHERE ...] ALL .s.i-4.tp8 ^&Report_ Commands\& NEWPAGE BLANK n TITLE "title" DATE LINES n WIDTH n .s.i-4.tp4 ^&Key_ Commands\& BUILD KEY FOR attname IN relname DELETE KEY FOR attname IN relname .s.i-4.tp6 ^&RIM-TO-RIM_ Commands\& UNLOAD [dbname [=newdbname]] {SCHEMA} [relname1 [=mpw] + DATA ALL [relname2 [=mpw], ...] .s.i-4.tp6 ^&Miscellaneous_ Commands\& CLOSE INPUT {filename} TERMINAL .tp2 OUTPUT {filename} TERMINAL EXIT QUIT MENU HELP [command name] USER password ECHO NOECHO CHECK NOCHECK TOLERANCE xx.xx [PERCENT] RELOAD .s.i-4.tp5 ^&Host-Dependent_ Commands\& OPEN dbname .s .;OPEN dbname [=filename],[UN=account],[PW=password],+ .; [DIRECT={R}] .; W .;.s .;ZIP "jet statement" .;.s }DCL command to be spawned