dml108.sql
来自「derby database source code.good for you.」· SQL 代码 · 共 185 行
SQL
185 行
AUTOCOMMIT OFF;-- MODULE DML108 -- SQL Test Suite, V6.0, Interactive SQL, dml108.sql-- 59-byte ID-- TEd Version #-- AUTHORIZATION FLATER set schema FLATER;--0 SELECT USER FROM HU.ECCO; VALUES USER;-- RERUN if USER value does not match preceding AUTHORIZATION comment ROLLBACK WORK;-- date_time print-- TEST:0617 DATETIME with predicates, set fns (static)! CREATE TABLE TEMPS ( ENTERED TIMESTAMP, START DATE,--0 APPT INTERVAL DAY, HOUR_IN TIME, HOUR_OUT TIME--0 , LUNCH INTERVAL HOUR TO MINUTE); );-- PASS:0617 If table is created? COMMIT WORK; CREATE VIEW SUBQ1 AS SELECT MIN (HOUR_IN) AS TOO_EARLY, MAX (ALL START) AS LATEST--0 , AVG (LUNCH) AS AVGLUNCH,--0 AVG (DISTINCT LUNCH) AS D_AVGLUNCH,--0 SUM (APPT) AS SUMAPPT FROM TEMPS;-- PASS:0617 If view is created? COMMIT WORK; INSERT INTO TEMPS VALUES ( TIMESTAMP( '1993-11-10 12:25:14'), DATE( '1993-11-12'),--0 INTERVAL '4' DAY, TIME( '08:30:00'), TIME( '16:30:00')--0 , INTERVAL '1:00' HOUR TO MINUTE); );-- PASS:0617 If 1 row is inserted? INSERT INTO TEMPS VALUES ( TIMESTAMP( '1993-11-10 13:15:14'), DATE( '1993-11-15'),--0 INTERVAL '5' DAY, TIME( '08:30:00'), TIME( '17:30:00')--0 ,INTERVAL '0:30' HOUR TO MINUTE); );-- PASS:0617 If 1 row is inserted? INSERT INTO TEMPS VALUES ( TIMESTAMP( '1993-11-17 09:56:48'), DATE( '1994-11-18'),--0 INTERVAL '3' DAY, TIME( '09:00:00'), TIME( '17:00:00')--0 ,INTERVAL '1:00' HOUR TO MINUTE); );-- PASS:0617 If 1 row is inserted?--0 SELECT COUNT(*)--0 FROM TEMPS WHERE--0 LUNCH < INTERVAL '1:00' HOUR TO MINUTE;-- PASS:0617 If count = 1?--0 SELECT COUNT(*)--0 FROM TEMPS WHERE--0 LUNCH <= INTERVAL '1:00' HOUR TO MINUTE;-- PASS:0617 If count = 3? SELECT COUNT(*) FROM TEMPS WHERE START <> DATE( '1993-11-15') AND START <> DATE( '1993-11-12');-- PASS:0617 If count = 1? SELECT COUNT(*) FROM TEMPS WHERE START = DATE( '1993-11-15') OR START = DATE( '1993-11-12');-- PASS:0617 If count = 2? SELECT COUNT(*) FROM TEMPS WHERE HOUR_OUT > TIME( '17:00:00');-- PASS:0617 If count = 1? SELECT COUNT(*) FROM TEMPS WHERE HOUR_OUT >= TIME( '17:00:00');-- PASS:0617 If count = 2? SELECT COUNT(*) FROM TEMPS WHERE ENTERED BETWEEN TIMESTAMP( '1993-11-10 00:00:00' )AND TIMESTAMP( '1993-11-10 23:59:59');-- PASS:0617 If count = 2?--0 SELECT COUNT(*)--0 FROM TEMPS WHERE--0 HOUR_OUT IN--0 (SELECT HOUR_IN + INTERVAL '8' HOUR FROM TEMPS);-- PASS:0617 If count = 2?--0 SELECT COUNT(*)--0 FROM TEMPS WHERE--0 (START, APPT) OVERLAPS--0 (DATE( '1993-11-14'), INTERVAL '2' DAY);-- PASS:0617 If count = 2?--0 SELECT COUNT(*)--0 FROM TEMPS WHERE--0 HOUR_OUT = ANY--0 (SELECT HOUR_IN + INTERVAL '8' HOUR FROM TEMPS);-- PASS:0617 If count = 2? SELECT COUNT(*) FROM TEMPS WHERE YEAR( ENTERED) <> SOME (SELECT YEAR( START) FROM TEMPS);-- PASS:0617 If count = 3? SELECT COUNT(*) FROM TEMPS WHERE YEAR( START) <> ALL (SELECT YEAR( ENTERED) FROM TEMPS);-- PASS:0617 If count = 1? SELECT HOUR( TOO_EARLY) * 100 + MINUTE( TOO_EARLY) FROM SUBQ1;-- PASS:0617 If 1 row selected and value is 830? SELECT YEAR( LATEST), MONTH( LATEST) * 100 + DAY( LATEST) FROM SUBQ1;-- PASS:0617 If 1 row selected and values are 1994, 1118?--0 SELECT HOUR( AVGLUNCH)--0 * 100 + MINUTE( AVGLUNCH)--0 FROM SUBQ1;-- PASS:0617 If 1 row selected and value is 49 or 50?-- NOTE:0617 50 is better but 49 is acceptable.--0 SELECT HOUR( D_AVGLUNCH)--0 * 100 + MINUTE( D_AVGLUNCH)--0 FROM SUBQ1;-- PASS:0617 If 1 row selected and value is 45?--0 SELECT DAY( SUMAPPT)--0 FROM SUBQ1;-- PASS:0617 If 1 row selected and value is 12?--0 SELECT COUNT (DISTINCT LUNCH) FROM TEMPS;-- PASS:0617 If count = 2? ROLLBACK WORK;--0 DROP TABLE TEMPS CASCADE; DROP TABLE SUBQ1 ; DROP TABLE TEMPS ;-- PASS:0617 If table and view are dropped? COMMIT WORK;-- END TEST >>> 0617 <<< END TEST-- *************************************************////END-OF-MODULE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?