Documente Academic
Documente Profesional
Documente Cultură
-- ***************************************************
-- END OF LOADING THE LUNCHES DATABASE
-- ***************************************************
-- ****************************************************************
-- LOAD THE OTHER TABLES THAT ARE USED THROUGHOUT THE BOOK
-- (NOT IN JUST ONE SECTION)
-- ALPHABET
-- NUMBERS_0_TO_9
-- TWOS
-- THREES
-- (THE DUAL TABLE IS CREATED AUTOMATICALLY BY ORACLE)
-- ****************************************************************
CREATE TABLE ALPHABET
(LETTER VARCHAR2(1));
INSERT INTO ALPHABET VALUES ('A');
INSERT INTO ALPHABET VALUES ('B');
INSERT INTO ALPHABET VALUES ('C');
INSERT INTO ALPHABET VALUES ('D');
INSERT INTO ALPHABET VALUES ('E');
INSERT INTO ALPHABET VALUES ('F');
INSERT INTO ALPHABET VALUES ('G');
INSERT INTO ALPHABET VALUES ('H');
INSERT INTO ALPHABET VALUES ('I');
INSERT INTO ALPHABET VALUES ('J');
INSERT INTO ALPHABET VALUES ('K');
INSERT INTO ALPHABET VALUES ('L');
INSERT INTO ALPHABET VALUES ('M');
INSERT INTO ALPHABET VALUES ('N');
INSERT INTO ALPHABET VALUES ('O');
INSERT INTO ALPHABET VALUES ('P');
INSERT INTO ALPHABET VALUES ('Q');
INSERT INTO ALPHABET VALUES ('R');
INSERT INTO ALPHABET VALUES ('S');
INSERT INTO ALPHABET VALUES ('T');
INSERT INTO ALPHABET VALUES ('U');
INSERT INTO ALPHABET VALUES ('V');
INSERT INTO ALPHABET VALUES ('W');
INSERT INTO ALPHABET VALUES ('X');
INSERT INTO ALPHABET VALUES ('Y');
INSERT INTO ALPHABET VALUES ('Z');
COMMIT;
-- ****************************************************************
-- CREATE THE VIEWS THAT ARE USED THROUGHOUT THE BOOK
-- (NOT IN JUST ONE SECTION)
-- NUMBERS_0_TO_99
-- ****************************************************************
-- CREATE THE NUMBERS_0_TO_99 VIEW
CREATE OR REPLACE VIEW NUMBERS_0_TO_99 AS
SELECT (A.DIGIT * 10) + B.DIGIT AS N
FROM NUMBERS_0_TO_9 A,
NUMBERS_0_TO_9 B;
-- CREATE THE NUMBERS_0_TO_99999 VIEW
CREATE OR REPLACE VIEW NUMBERS_0_TO_99999 AS
SELECT ((A.DIGIT * 10000) + (B.DIGIT * 1000) + (C.DIGIT * 100) + (D.DIGIT * 10)
+ E.DIGIT) AS N
FROM NUMBERS_0_TO_9 A,
NUMBERS_0_TO_9 B,
NUMBERS_0_TO_9 C,
NUMBERS_0_TO_9 D,
NUMBERS_0_TO_9 E;
CREATE OR REPLACE VIEW NUMBERS_1_TO_1000 AS
SELECT ((A.DIGIT * 100) + (B.DIGIT * 10) + C.DIGIT + 1) AS N
FROM NUMBERS_0_TO_9 A,
NUMBERS_0_TO_9 B,
NUMBERS_0_TO_9 C;
-- ***************************************************
-- EXTRA TABLES FOR SPECIFIC CHAPTERS
-- MOST OF THESE EXTRA TABLES ARE USED ONLY ONCE - TO DEMONSTRATE A PARTICULAR P
OINT.
-- THE PRIMARY KEY HAS NOT BEEN CREATED FOR THEM (PARTLY TO SAVE DISK SPACE.)
-- ALSO THE ANALYSE TABLE COMMAND HAS NOT BEEN RUN FOR THEM.
-- ***************************************************
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 2
-- ***************************************************
CREATE TABLE SEC0207
(ID NUMBER(2,0),
A NUMBER(2,0),
B NUMBER(2,0),
C NUMBER(2,0));
INSERT INTO SEC0207 VALUES (1, 1, 1, 1);
INSERT INTO SEC0207 VALUES (2, 1, 1, 2);
INSERT INTO SEC0207 VALUES (3, 1, 1, 3);
INSERT INTO SEC0207 VALUES (4, 1, 1, 4);
INSERT INTO SEC0207 VALUES (5, 1, 2, 1);
INSERT INTO SEC0207 VALUES (6, 1, 2, 2);
INSERT INTO SEC0207 VALUES (7, 1, 2, 3);
INSERT INTO SEC0207 VALUES (8, 1, 2, 4);
INSERT INTO SEC0207 VALUES (9, 1, 1, 1);
INSERT INTO SEC0207 VALUES (10, 1, 1, 2);
INSERT INTO SEC0207 VALUES (11, 1, 1, 3);
INSERT INTO SEC0207 VALUES (12, 1, 1, 4);
INSERT INTO SEC0207 VALUES (13, 1, 2, 1);
INSERT INTO SEC0207 VALUES (14, 1, 2, 2);
INSERT INTO SEC0207 VALUES (15, 1, 2, 3);
INSERT INTO SEC0207 VALUES (16, 1, 2, 4);
COMMIT;
CREATE TABLE SEC0218
(A NUMBER(2,0),
B NUMBER(2,0));
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 4
-- ***************************************************
CREATE TABLE SEC0405_SALES_STAFF AS
SELECT *
FROM L_EMPLOYEES
WHERE DEPT_CODE = 'SAL';
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 6
-- ***************************************************
CREATE TABLE SEC0607_FOODS
(MENU_ITEM NUMBER(2),
SUPPLIER_ID VARCHAR2(3),
PRODUCT_CODE VARCHAR2(2),
DESCRIPTION VARCHAR2(20),
PRICE NUMBER(4,2),
PRICE_INCREASE NUMBER(4,2) );
-- DUPLICATE ROWS
-- WHERE THE DUPLICATES ARE DISTINCT OBJECTS
CREATE TABLE SEC0615A
(OBJECT_BOUGHT VARCHAR2(20),
PRICE NUMBER(6,2));
INSERT INTO SEC0615A VALUES ('NEWSPAPER', .75);
INSERT INTO SEC0615A VALUES ('COFFEE', 1.55);
INSERT INTO SEC0615A VALUES ('HAMBURGER', 2.00);
INSERT INTO SEC0615A VALUES ('FLOWERS', 15.38);
INSERT INTO SEC0615A VALUES ('HAMBURGER', 2.00);
INSERT INTO SEC0615A VALUES ('BOOK', 24.89);
INSERT INTO SEC0615A VALUES ('MOVIE TICKETS', 22.00);
COMMIT;
-- DUPLICATE ROWS
-- WHERE THE DUPLICATES ARE MULTIPLE REPRESENTATIONS OF THE SAME OBJECT
CREATE TABLE SEC0615B
(FIRST_NAME VARCHAR2(10),
LAST_NAME VARCHAR2(10),
ADDRESS VARCHAR2(20));
INSERT INTO SEC0615B VALUES ('SUSAN', 'BROWN', '512 ELM STREET');
INSERT INTO SEC0615B VALUES ('JIM', 'KERN', '837-9TH AVENUE');
INSERT INTO SEC0615B VALUES ('MARTHA', 'WOODS', '169 PARK AVENUE');
INSERT INTO SEC0615B VALUES ('SUSAN', 'BROWN', '512 ELM STREET');
INSERT INTO SEC0615B VALUES ('ELLEN', 'OWENS', '418 HENRY STREET');
COMMIT;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 7
-- ***************************************************
CREATE TABLE SEC0703_EMPLOYEES AS
SELECT *
FROM L_EMPLOYEES;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 8
-- ***************************************************
CREATE TABLE SEC0802_EMPLOYEES AS
SELECT *
FROM L_EMPLOYEES;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 9
-- ***************************************************
CREATE TABLE SEC0908_TEST_NUMBERS AS
SELECT N - 10 AS N
FROM NUMBERS_0_TO_99
WHERE N < 21;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 10
-- ***************************************************
CREATE TABLE SEC1003
(PKEY VARCHAR2(5),
NUM_COL NUMBER(4),
TEXT_COL VARCHAR2(8),
DATE_COL DATE);
INSERT INTO SEC1003 VALUES ('A', 1, 'M', NULL);
INSERT INTO SEC1003 VALUES ('B', 2, NULL, '20-JAN-2013');
INSERT INTO SEC1003 VALUES ('C', NULL, 'N', '21-JAN-2013');
COMMIT;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 11
-- ***************************************************
CREATE TABLE SEC1103
(ROW_ID NUMBER(2,0),
NUM_1 NUMBER(2,0),
NUM_2 NUMBER(2,0));
INSERT INTO SEC1103 VALUES (1, NULL, 1);
INSERT INTO SEC1103 VALUES (2, 1, 2);
INSERT INTO SEC1103 VALUES (3, 2, 3);
INSERT INTO SEC1103 VALUES (4, 3, 4);
INSERT INTO SEC1103 VALUES (5, NULL, 5);
INSERT INTO SEC1103 VALUES (6, 1, NULL);
INSERT INTO SEC1103 VALUES (7, 2, 1);
INSERT INTO SEC1103 VALUES (8, 3, 2);
INSERT INTO SEC1103 VALUES (9, 4, 3);
INSERT INTO SEC1103 VALUES (10, NULL, 4);
INSERT INTO SEC1103 VALUES (11, 1, 5);
INSERT INTO SEC1103 VALUES (12, 2, NULL);
INSERT INTO SEC1103 VALUES (13, 3, 1);
INSERT INTO SEC1103 VALUES (14, 4, 2);
INSERT INTO SEC1103 VALUES (15, NULL, 3);
COMMIT;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 12
-- ***************************************************
CREATE TABLE SEC1202
(ROW_ID NUMBER(4),
COL_1 VARCHAR2(6),
COL_2 VARCHAR2(6),
COL_3 NUMBER(4));
INSERT INTO SEC1202 VALUES (1, NULL, NULL, 5);
INSERT INTO SEC1202 VALUES (2, 'A', 'Y', 5);
INSERT INTO SEC1202 VALUES (3, 'B', 'Z', 5);
INSERT INTO SEC1202 VALUES (4, 'C', NULL, 5);
INSERT INTO SEC1202 VALUES (5, NULL, 'Y', 5);
INSERT INTO SEC1202 VALUES (6, 'A', 'Z', 5);
INSERT INTO SEC1202 VALUES (7, 'B', NULL, 5);
INSERT INTO SEC1202 VALUES (8, 'C', 'Y', 5);
INSERT INTO SEC1202 VALUES (9, NULL, 'Z', 5);
INSERT INTO SEC1202 VALUES (10, 'A', NULL, 5);
INSERT INTO SEC1202 VALUES (11, 'B', 'Y', 5);
INSERT INTO SEC1202 VALUES (12, 'C', 'Z', 10);
INSERT INTO SEC1202 VALUES (13, NULL, NULL, 10);
INSERT INTO SEC1202 VALUES (14, 'A', 'Y', 10);
INSERT INTO SEC1202 VALUES (15, 'B', 'Z', 10);
INSERT INTO SEC1202 VALUES (16, 'C', NULL, 10);
INSERT INTO SEC1202 VALUES (17, NULL, 'Y', 10);
INSERT INTO SEC1202 VALUES (18, 'A', 'Z', 10);
INSERT INTO SEC1202 VALUES (19, 'B', NULL, 10);
INSERT INTO SEC1202 VALUES (20, 'C', 'Y', 10);
INSERT INTO SEC1202 VALUES (21, NULL, 'Z', 10);
INSERT INTO SEC1202 VALUES (22, 'A', NULL, 10);
INSERT INTO SEC1202 VALUES (23, 'B', 'Y', 10);
INSERT INTO SEC1202 VALUES (24, 'C', 'Z', 10);
COMMIT;
CREATE TABLE SEC1204
(PK_1 NUMBER(4),
COL_2 VARCHAR2(6),
COL_3 VARCHAR2(6),
COL_4 VARCHAR2(6),
COL_5 VARCHAR2(6));
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 13
-- ***************************************************
CREATE TABLE SEC1303_COLORS
(C_NUM NUMBER(2),
COLOR VARCHAR2(10));
INSERT INTO SEC1303_COLORS VALUES (1, 'RED');
INSERT INTO SEC1303_COLORS VALUES (2, 'YELLOW');
INSERT INTO SEC1303_COLORS VALUES (3, 'RED');
INSERT INTO SEC1303_COLORS VALUES (4, 'PURPLE');
INSERT INTO SEC1303_COLORS VALUES (5, 'ORANGE');
COMMIT;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 14
-- ***************************************************
CREATE TABLE SEC1405_EMPLOYEES AS
SELECT *
FROM L_EMPLOYEES;
INSERT INTO SEC1405_EMPLOYEES VALUES (212, 'BOB', 'GREENE', NULL, '10-FEB-2010',
NULL, NULL, NULL);
COMMIT;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 15
-- ***************************************************
CREATE TABLE SEC1501_FIRST AS
SELECT *
FROM SEC1407_FIRST;
-- ***************************************************
-- EXTRA TABLES FOR CHAPTER 16
-- ***************************************************
CREATE TABLE SEC1601_COLUMNS_1_TO_2
(NUM_COL_1 NUMBER(4),
TEXT_COL_2 VARCHAR2(6));
INSERT INTO SEC1601_COLUMNS_1_TO_2 VALUES (1, 'A');
INSERT INTO SEC1601_COLUMNS_1_TO_2 VALUES (2, 'B');
INSERT INTO SEC1601_COLUMNS_1_TO_2 VALUES (3, 'C');
INSERT INTO SEC1601_COLUMNS_1_TO_2 VALUES (4, 'D');
COMMIT;
SELECT A.OBJECT_TYPE,
A.ACTUAL_COUNT,
B.EXPECTED_COUNT,
CASE WHEN A.ACTUAL_COUNT = B.EXPECTED_COUNT THEN 'OK'
ELSE '*** ERROR ***'
END AS COMPARE_COUNTS
FROM ACTUAL_BUILT_OBJECTS_VIEW A
FULL OUTER JOIN EXPECTED_BUILT_OBJECTS B
ON A.OBJECT_CATEGORY = B.OBJECT_CATEGORY
AND A.OBJECT_TYPE = B.OBJECT_TYPE
ORDER BY A.OBJECT_CATEGORY,
A.OBJECT_TYPE;
-- ***************************************************
-- END OF PROCEDURE
-- ***************************************************