[code.view]

[top] / java / javafx-samples-2.2.25 / src / DataApp / DataAppLoader / create-database.sql

     CREATE TABLE APP.ADDRESS (
     	ADDRESS_ID INTEGER NOT NULL AUTO_INCREMENT,
     	LINE1 VARCHAR(255),
     	LINE2 VARCHAR(255),
     	CITY VARCHAR(255),
     	STATE_PROV_CD VARCHAR(2),
     	POSTAL_CODE VARCHAR(9),
     	COUNTRY VARCHAR(255),
     	PRIMARY KEY (ADDRESS_ID)
     );
     
     CREATE TABLE APP.CUSTOMER (
     	CUSTOMER_ID INTEGER NOT NULL AUTO_INCREMENT,
     	FIRST_NAME VARCHAR(255),
     	LAST_NAME VARCHAR(255),
     	ADDRESS_ID INTEGER,
     	PRIMARY KEY (CUSTOMER_ID)
     );
     
     CREATE TABLE APP.DEALER (
     	DEALER_ID INTEGER NOT NULL AUTO_INCREMENT,
     	NAME VARCHAR(255),
     	ADDRESS_ID INTEGER,
     	REGION_ID INTEGER,
     	PRIMARY KEY (DEALER_ID)
     );
     
     CREATE TABLE APP.DISCOUNT_RATE (
     	DISCOUNT_RATE CHAR(1) NOT NULL,
     	RATE DOUBLE,
     	PRIMARY KEY (DISCOUNT_RATE)
     );
     
     CREATE TABLE APP.EMPLOYEE (
     	EMPLOYEE_ID INTEGER NOT NULL AUTO_INCREMENT,
     	FIRST_NAME VARCHAR(255),
     	LAST_NAME VARCHAR(255),
     	ROLE_CODE CHAR(1),
     	ADDRESS_ID INTEGER,
     	PRIMARY KEY (EMPLOYEE_ID)
     );
     
     CREATE TABLE APP.ENGINE (
     	ENGINE_ID INTEGER NOT NULL,
     	LITRE DOUBLE ,
     	CYLINDERS SMALLINT,
     	SUPERCHARGE SMALLINT,
     	TURBOCHARGE SMALLINT,
     	HYBRID SMALLINT,
     	INLINE SMALLINT,
     	VEE SMALLINT,
     	PRIMARY KEY (ENGINE_ID)
     );
     
     CREATE TABLE APP.PRODUCT (
     	PRODUCT_ID INTEGER NOT NULL,
     	NAME VARCHAR(255),
     	BODY_STYLE INTEGER,
     	ENGINE_ID INTEGER,
     	TRANSMISSION_ID INTEGER,
     	LENGTH DOUBLE ,
     	WIDTH DOUBLE ,
     	HEIGHT DOUBLE ,
     	COST DOUBLE,
     	PRICE DOUBLE,
     	MODEL_YEAR INTEGER,
     	PRODUCT_TYPE_ID INTEGER,
     	PRIMARY KEY (PRODUCT_ID)
     );
     
     CREATE TABLE APP.PRODUCT_TYPE (
     	PRODUCT_TYPE_ID INTEGER NOT NULL,
     	CLASS VARCHAR(255),
     	SUBCLASS VARCHAR(255),
     	PRIMARY KEY (PRODUCT_TYPE_ID)
     );
     
     CREATE TABLE APP.PROJECTED_SALES (
     	PROJECTED_SALES_ID INTEGER NOT NULL AUTO_INCREMENT,
     	SALES_YEAR SMALLINT,
     	QUARTER SMALLINT,
     	EMPLOYEE_ID INTEGER,
     	REGION_ID INTEGER,
     	DEALER_ID INTEGER,
     	PROJECTED_SALES DOUBLE,
     	PRIMARY KEY (PROJECTED_SALES_ID)
     );
     
     CREATE TABLE APP.REGION (
     	REGION_ID INTEGER NOT NULL,
     	NAME VARCHAR(255),
     	INTERNATIONAL SMALLINT NOT NULL,
     	START_ZONE INTEGER NOT NULL,
     	END_ZONE INTEGER NOT NULL,
     	PRIMARY KEY (REGION_ID)
     );
     
     CREATE TABLE APP.ROLE (
     	ROLE_CODE CHAR(1) NOT NULL,
     	DESCRIPTION VARCHAR(255),
     	PRIMARY KEY (ROLE_CODE)
     );
     
     CREATE TABLE APP.SALES_ORDER (
     	ORDER_ID INTEGER NOT NULL AUTO_INCREMENT,
     	DATE TIMESTAMP,
     	CUSTOMER_ID INTEGER,
     	REGION_ID INTEGER,
     	DEALER_ID INTEGER,
     	EMPLOYEE_ID INTEGER,
     	CHANNEL VARCHAR(255),
     	PRIMARY KEY (ORDER_ID)
     );
     
     CREATE TABLE APP.SALES_ORDER_LINE (
     	ORDER_LINE_ID INTEGER NOT NULL AUTO_INCREMENT,
     	ORDER_ID INTEGER,
     	PRODUCT_ID INTEGER,
     	DISCOUNT_RATE CHAR(1),
     	QUANTITY INTEGER,
     	PRIMARY KEY (ORDER_LINE_ID)
     );
     
     CREATE TABLE APP.TRANSMISSION (
     	TRANSMISSION_ID INTEGER NOT NULL,
     	TYPE CHAR(4) DEFAULT 'AUTO' NOT NULL,
     	GEARS SMALLINT DEFAULT 6,
     	PRIMARY KEY (TRANSMISSION_ID)
     );
     
     CREATE TABLE APP.ZIP_CITY_INFO (
     	ZIP INTEGER NOT NULL,
     	CITY VARCHAR(64),
     	STATE CHAR(2),
     	LONGITUDE DOUBLE,
     	LATITUDE DOUBLE,
     	TIMEZONE SMALLINT,
     	PRIMARY KEY (ZIP)
     );
     
     ALTER TABLE APP.CUSTOMER
     	ADD FOREIGN KEY (ADDRESS_ID) 
     	REFERENCES APP.ADDRESS (ADDRESS_ID);
     
     
     
     ALTER TABLE APP.DEALER
     	ADD FOREIGN KEY (ADDRESS_ID) 
     	REFERENCES APP.ADDRESS (ADDRESS_ID);
     
     ALTER TABLE APP.DEALER
     	ADD FOREIGN KEY (REGION_ID) 
     	REFERENCES APP.REGION (REGION_ID);
     
     
     
     ALTER TABLE APP.EMPLOYEE
     	ADD FOREIGN KEY (ADDRESS_ID) 
     	REFERENCES APP.ADDRESS (ADDRESS_ID);
     
     ALTER TABLE APP.EMPLOYEE
     	ADD FOREIGN KEY (ROLE_CODE) 
     	REFERENCES APP.ROLE (ROLE_CODE);
     
     
     
     ALTER TABLE APP.PRODUCT
     	ADD FOREIGN KEY (ENGINE_ID) 
     	REFERENCES APP.ENGINE (ENGINE_ID);
     
     ALTER TABLE APP.PRODUCT
     	ADD FOREIGN KEY (PRODUCT_TYPE_ID) 
     	REFERENCES APP.PRODUCT_TYPE (PRODUCT_TYPE_ID);
     
     ALTER TABLE APP.PRODUCT
     	ADD FOREIGN KEY (TRANSMISSION_ID) 
     	REFERENCES APP.TRANSMISSION (TRANSMISSION_ID);
     
     
     
     ALTER TABLE APP.PROJECTED_SALES
     	ADD FOREIGN KEY (DEALER_ID) 
     	REFERENCES APP.DEALER (DEALER_ID);
     
     ALTER TABLE APP.PROJECTED_SALES
     	ADD FOREIGN KEY (EMPLOYEE_ID) 
     	REFERENCES APP.EMPLOYEE (EMPLOYEE_ID);
     
     ALTER TABLE APP.PROJECTED_SALES
     	ADD FOREIGN KEY (REGION_ID) 
     	REFERENCES APP.REGION (REGION_ID);
     
     
     
     ALTER TABLE APP.SALES_ORDER
     	ADD FOREIGN KEY (CUSTOMER_ID) 
     	REFERENCES APP.CUSTOMER (CUSTOMER_ID);
     
     
     ALTER TABLE APP.SALES_ORDER
     	ADD FOREIGN KEY (DEALER_ID) 
     	REFERENCES APP.DEALER (DEALER_ID);
     
     
     ALTER TABLE APP.SALES_ORDER
     	ADD FOREIGN KEY (EMPLOYEE_ID) 
     	REFERENCES APP.EMPLOYEE (EMPLOYEE_ID);
     
     
     ALTER TABLE APP.SALES_ORDER
     	ADD FOREIGN KEY (REGION_ID) 
     	REFERENCES APP.REGION (REGION_ID);
     
     
     
     ALTER TABLE APP.SALES_ORDER_LINE
     	ADD FOREIGN KEY (DISCOUNT_RATE) 
     	REFERENCES APP.DISCOUNT_RATE (DISCOUNT_RATE);
     
     ALTER TABLE APP.SALES_ORDER_LINE
     	ADD FOREIGN KEY (PRODUCT_ID) 
     	REFERENCES APP.PRODUCT (PRODUCT_ID);
     
     ALTER TABLE APP.SALES_ORDER_LINE
     	ADD FOREIGN KEY (ORDER_ID) 
     	REFERENCES APP.SALES_ORDER (ORDER_ID);
     
     
     
     CREATE VIEW APP.FULL_PRODUCT_LISTING AS SELECT
     	P.PRODUCT_ID,
     	P.NAME,
     	PT.CLASS,
     	PT.SUBCLASS, 
     	P.LENGTH,
     	P.WIDTH,
     	P.HEIGHT,
     	P.COST,
     	P.PRICE,
     	P.MODEL_YEAR,
     	E.CYLINDERS,
     	E.LITRE,
     	E.INLINE,
     	E.VEE,
     	E.HYBRID,
     	E.SUPERCHARGE,
     	E.TURBOCHARGE,
     	T.TYPE,
     	T.GEARS
     FROM 
     	APP.PRODUCT AS P
     INNER JOIN
     	APP.ENGINE E on E.ENGINE_ID = P.ENGINE_ID
     INNER JOIN
     	APP.TRANSMISSION T on T.TRANSMISSION_ID = P.TRANSMISSION_ID
     INNER JOIN
     	APP.PRODUCT_TYPE PT on P.PRODUCT_TYPE_ID = PT.PRODUCT_TYPE_ID
     ORDER BY
     PRODUCT_ID;
     
     CREATE VIEW APP.LIVE_SALES_LIST AS SELECT 
     	SOL.ORDER_LINE_ID,
     	P.NAME AS PRODUCT,
     	PT.CLASS AS TYPE,
     	PT.SUBCLASS AS SUBTYPE,
     	P.PRICE AS PRICE,
     	R.NAME AS REGION,
     	SO.CHANNEL AS CHANNEL,	
     	SOL.QUANTITY AS QUANTITY,
     	D.NAME AS DEALER,
     	E.LAST_NAME AS SALESMAN,
     	A.CITY AS CITY,
     	A.STATE_PROV_CD AS STATE,
     	Z.LATITUDE,
     	Z.LONGITUDE,
     	SO.DATE,
             P.PRODUCT_TYPE_ID
      FROM APP.SALES_ORDER_LINE SOL
     	 LEFT OUTER JOIN APP.SALES_ORDER SO ON SO.ORDER_ID = SOL.ORDER_ID
     	 LEFT OUTER JOIN APP.REGION R ON R.REGION_ID = SO.REGION_ID
     	 LEFT OUTER JOIN APP.DEALER D ON SO.DEALER_ID = D.DEALER_ID
     	 LEFT OUTER JOIN APP.PRODUCT P ON P.PRODUCT_ID = SOL.PRODUCT_ID
     	 LEFT OUTER JOIN APP.PRODUCT_TYPE PT ON PT.PRODUCT_TYPE_ID = P.PRODUCT_TYPE_ID
     	 LEFT OUTER JOIN APP.EMPLOYEE E ON E.EMPLOYEE_ID = SO.EMPLOYEE_ID
     	 LEFT OUTER JOIN APP.CUSTOMER C ON C.CUSTOMER_ID = SO.CUSTOMER_ID
     	 LEFT OUTER JOIN APP.ADDRESS A ON A.ADDRESS_ID = C.ADDRESS_ID
     	 LEFT OUTER JOIN APP.ZIP_CITY_INFO Z ON Z.ZIP = CAST(A.POSTAL_CODE AS SIGNED INTEGER)
     WHERE R.INTERNATIONAL = 0
     ORDER BY DATE DESC;
     
     CREATE INDEX ZIPPREFIXSTARTIDX ON APP.REGION(START_ZONE);
     CREATE INDEX ZIPPREFIXENDIDX ON APP.REGION(END_ZONE);
     
     CREATE TABLE APP.DAILY_SALES (
         DAILY_SALES_ID INTEGER NOT NULL AUTO_INCREMENT,
         REGION_ID INTEGER,
         PRODUCT_ID INTEGER,
         STATE_PROV_CD VARCHAR(2),
         QUANTITY INTEGER,
         DATE DATE,
         PRIMARY KEY(DAILY_SALES_ID)
     );
     
     CREATE INDEX DAILYSALESSTATEIDX ON APP.DAILY_SALES(STATE_PROV_CD);
     CREATE INDEX DAILYDATEIDX ON APP.DAILY_SALES(DATE);
     
     ALTER TABLE APP.DAILY_SALES
     	ADD FOREIGN KEY (PRODUCT_ID) 
     	REFERENCES APP.PRODUCT (PRODUCT_ID);
     
     ALTER TABLE APP.DAILY_SALES
     	ADD FOREIGN KEY (REGION_ID) 
     	REFERENCES APP.REGION (REGION_ID);

[top] / java / javafx-samples-2.2.25 / src / DataApp / DataAppLoader / create-database.sql

contact | logmethods.com