Advertisement
Guest User

ziemniak roman

a guest
Mar 25th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 19.29 KB | None | 0 0
  1. -- Generated by Oracle SQL Developer Data Modeler 3.1.0.691
  2. --   at:        2019-01-12 17:47:49 CET
  3. --   site:      Oracle Database 11g
  4. --   type:      Oracle Database 11g
  5.  
  6.  
  7.  
  8. CREATE TABLE CUSTOMER
  9.     (
  10.      CUSTOMER_ID NUMBER (6)  NOT NULL ,
  11.      NAME VARCHAR2 (45) ,
  12.      ADDRESS VARCHAR2 (40) ,
  13.      CITY VARCHAR2 (30) ,
  14.      STATE VARCHAR2 (2) ,
  15.      ZIP_CODE VARCHAR2 (9) ,
  16.      AREA_CODE NUMBER (3) ,
  17.      PHONE_NUMBER NUMBER (7) ,
  18.      SALESPERSON_ID NUMBER (4) ,
  19.      CREDIT_LIMIT NUMBER (9,2) ,
  20.      COMMENTS LONG
  21.     )
  22. ;
  23.  
  24.  
  25.  
  26. ALTER TABLE CUSTOMER
  27.     ADD CONSTRAINT CUSTOMER_CK0
  28.     CHECK ( CUSTOMER_ID IS NOT NULL)
  29. ;
  30.  
  31.  
  32. ALTER TABLE CUSTOMER
  33.     ADD CONSTRAINT CUSTOMER_CK1
  34.     CHECK ( STATE = UPPER(STATE))
  35. ;
  36.  
  37.  
  38. ALTER TABLE CUSTOMER
  39.     ADD CONSTRAINT CUSTOMER_CK1
  40.     CHECK ( LENGTH(NVL(ZIP_CODE, '99999')) IN (5, 9))
  41. ;
  42.  
  43.  
  44. ALTER TABLE CUSTOMER
  45.     ADD CONSTRAINT CUSTOMER_CK0
  46.     CHECK ( SALESPERSON_ID IS NOT NULL)
  47. ;
  48.  
  49.  
  50. ALTER TABLE CUSTOMER
  51.     ADD CONSTRAINT CUSTOMER_CK0
  52.     CHECK (CUSTOMER_ID > 0)
  53. ;
  54.  
  55.  
  56. COMMENT ON TABLE CUSTOMER IS 'Information on all U.S. customers and prospective customers.'
  57. ;
  58.  
  59. COMMENT ON COLUMN CUSTOMER.CUSTOMER_ID IS 'Unique 6 digit number assigned to all customers.  Number generated by the sequence CUSTOMER_ID.'
  60. ;
  61.  
  62. COMMENT ON COLUMN CUSTOMER.NAME IS 'Full store name of every customer (up to 45 characters).  Storing names in all caps is recommended but not required.'
  63. ;
  64.  
  65. COMMENT ON COLUMN CUSTOMER.ADDRESS IS 'Street address of customer.  CITY, STATE, and ZIP_CODE make up the rest of the address.'
  66. ;
  67.  
  68. COMMENT ON COLUMN CUSTOMER.CITY IS 'City name for address of customer.  Storing city names in all caps is recommended, but not required.'
  69. ;
  70.  
  71. COMMENT ON COLUMN CUSTOMER.STATE IS 'Two letter abbreviation for state name for address of customer.  Must be entered in all caps.'
  72. ;
  73.  
  74. COMMENT ON COLUMN CUSTOMER.ZIP_CODE IS 'Zip code of customer.  Supports both 5 and 9 digit zip codes.  Dashes should be omitted from 9 digit zips.'
  75. ;
  76.  
  77. COMMENT ON COLUMN CUSTOMER.AREA_CODE IS 'Area code of phone number for customer.'
  78. ;
  79.  
  80. COMMENT ON COLUMN CUSTOMER.PHONE_NUMBER IS 'Phone number of customer.  This field does not supports letters and spaces for mnemonics (7 numeric digits only).'
  81. ;
  82.  
  83. COMMENT ON COLUMN CUSTOMER.SALESPERSON_ID IS '''Employee number of sales representative handling customer''''s account.  Employee information can be found in the EMPLOYEE table.'''
  84. ;
  85.  
  86. COMMENT ON COLUMN CUSTOMER.CREDIT_LIMIT IS 'Credit limit of customer or prospective customer in U.S. dollars.'
  87. ;
  88.  
  89. COMMENT ON COLUMN CUSTOMER.COMMENTS IS 'Field can be used flexibly.  Suggestions for use include lists of action items or special considerations when dealing with the particular customer.'
  90. ;
  91. CREATE UNIQUE INDEX I_CUSTOMER$CUSTOMER_ID ON CUSTOMER
  92.     (
  93.      CUSTOMER_ID ASC
  94.     )
  95. ;
  96.  
  97. ALTER TABLE CUSTOMER
  98.     ADD CONSTRAINT CUSTOMER_PK PRIMARY KEY ( CUSTOMER_ID ) ;
  99.  
  100.  
  101. GRANT SELECT
  102.     ON CUSTOMER TO "PUBLIC"
  103. ;
  104.  
  105.  
  106. CREATE TABLE DEPARTMENT
  107.     (
  108.      DEPARTMENT_ID NUMBER (2)  NOT NULL ,
  109.      NAME VARCHAR2 (14) ,
  110.      LOCATION_ID NUMBER (3)
  111.     )
  112. ;
  113.  
  114.  
  115.  
  116. ALTER TABLE DEPARTMENT
  117.     ADD CONSTRAINT DEPARTMENT_CK0
  118.     CHECK ( DEPARTMENT_ID IS NOT NULL)
  119. ;
  120.  
  121.  
  122. COMMENT ON TABLE DEPARTMENT IS 'Department information for all U.S. operations.'
  123. ;
  124.  
  125. COMMENT ON COLUMN DEPARTMENT.DEPARTMENT_ID IS 'Department number: Unique 2-digit department number assigned to each department.'
  126. ;
  127.  
  128. COMMENT ON COLUMN DEPARTMENT.NAME IS 'Department name: Only the first 14 characters of a department name can be stored in the database.  Storing names in all caps is recommended but not required.'
  129. ;
  130.  
  131. COMMENT ON COLUMN DEPARTMENT.LOCATION_ID IS '''Department location: The code for where the department''''s central office is located.  (LOCATION)'''
  132. ;
  133. CREATE UNIQUE INDEX I_DEPARTMENT$DEPARTMENT_ID ON DEPARTMENT
  134.     (
  135.      DEPARTMENT_ID ASC
  136.     )
  137. ;
  138.  
  139. ALTER TABLE DEPARTMENT
  140.     ADD CONSTRAINT DEPARTMENT_PK PRIMARY KEY ( DEPARTMENT_ID ) ;
  141.  
  142.  
  143. GRANT SELECT
  144.     ON DEPARTMENT TO "PUBLIC"
  145. ;
  146.  
  147.  
  148. CREATE TABLE EMPLOYEE
  149.     (
  150.      EMPLOYEE_ID NUMBER (4)  NOT NULL ,
  151.      LAST_NAME VARCHAR2 (15) ,
  152.      FIRST_NAME VARCHAR2 (15) ,
  153.      MIDDLE_INITIAL VARCHAR2 (1) ,
  154.      JOB_ID NUMBER (3) ,
  155.      MANAGER_ID NUMBER (4) ,
  156.      HIRE_DATE DATE ,
  157.      SALARY NUMBER (7,2) ,
  158.      COMMISSION NUMBER (7,2) ,
  159.      DEPARTMENT_ID NUMBER (2)
  160.     )
  161. ;
  162.  
  163.  
  164.  
  165. ALTER TABLE EMPLOYEE
  166.     ADD CONSTRAINT EMPLOYEE_CK0
  167.     CHECK ( EMPLOYEE_ID IS NOT NULL)
  168. ;
  169.  
  170.  
  171. ALTER TABLE EMPLOYEE
  172.     ADD CONSTRAINT EMPLOYEE_CK0
  173.     CHECK ( DEPARTMENT_ID IS NOT NULL)
  174. ;
  175.  
  176.  
  177. COMMENT ON TABLE EMPLOYEE IS 'General information on all corporate employees.'
  178. ;
  179.  
  180. COMMENT ON COLUMN EMPLOYEE.EMPLOYEE_ID IS 'Employee Number: Unique 4-digit identification number assigned to every employee.'
  181. ;
  182.  
  183. COMMENT ON COLUMN EMPLOYEE.LAST_NAME IS 'Last name of employee.  Stored in all caps.'
  184. ;
  185.  
  186. COMMENT ON COLUMN EMPLOYEE.FIRST_NAME IS 'First name of employee.  Stored in all caps.'
  187. ;
  188.  
  189. COMMENT ON COLUMN EMPLOYEE.MIDDLE_INITIAL IS 'Middle initial (one character only).  Stored in all caps.'
  190. ;
  191.  
  192. COMMENT ON COLUMN EMPLOYEE.JOB_ID IS 'Job identification number.  See JOB for descriptions.'
  193. ;
  194.  
  195. COMMENT ON COLUMN EMPLOYEE.MANAGER_ID IS '''Manager: The employee number of this employee''''s manager.  If employee has no manager, value should be NULL.'''
  196. ;
  197.  
  198. COMMENT ON COLUMN EMPLOYEE.HIRE_DATE IS 'Date the employee was HIRED, not necessarily the day the employee STARTED.'
  199. ;
  200.  
  201. COMMENT ON COLUMN EMPLOYEE.SALARY IS 'Monthly salary for the employee in U.S. dollars.  Salary grade information can be found in the table SALARY_GRADE.'
  202. ;
  203.  
  204. COMMENT ON COLUMN EMPLOYEE.COMMISSION IS 'Commission (in U.S. dollars) earned last month.  This field should be NULL for non-commissioned employees.'
  205. ;
  206.  
  207. COMMENT ON COLUMN EMPLOYEE.DEPARTMENT_ID IS '''Employee''''s department number.  Further department information is available in the table DEPT.'''
  208. ;
  209. CREATE UNIQUE INDEX I_EMPLOYEE$EMPLOYEE_ID ON EMPLOYEE
  210.     (
  211.      EMPLOYEE_ID ASC
  212.     )
  213. ;
  214.  
  215. ALTER TABLE EMPLOYEE
  216.     ADD CONSTRAINT EMPLOYEE_PK PRIMARY KEY ( EMPLOYEE_ID ) ;
  217.  
  218.  
  219. GRANT SELECT
  220.     ON EMPLOYEE TO "PUBLIC"
  221. ;
  222.  
  223.  
  224. CREATE TABLE ITEM
  225.     (
  226.      ORDER_ID NUMBER (4)  NOT NULL ,
  227.      ITEM_ID NUMBER (4)  NOT NULL ,
  228.      PRODUCT_ID NUMBER (6) ,
  229.      ACTUAL_PRICE NUMBER (8,2) ,
  230.      QUANTITY NUMBER (8) ,
  231.      TOTAL NUMBER (8,2) ,
  232.      ID_PRODUCYT NUMBER (6) ,
  233.      ID_MATERIALS NUMBER (6)
  234.     )
  235. ;
  236.  
  237.  
  238.  
  239. ALTER TABLE ITEM
  240.     ADD CONSTRAINT ITEM_CK0
  241.     CHECK ( ORDER_ID IS NOT NULL)
  242. ;
  243.  
  244.  
  245. ALTER TABLE ITEM
  246.     ADD CONSTRAINT ITEM_CK0
  247.     CHECK ( ITEM_ID IS NOT NULL)
  248. ;
  249.  
  250.  
  251. COMMENT ON TABLE ITEM IS 'Items listed in sales orders.  Product information can be found in table PRODUCT.  Sales order information can be found in table SALES_ORDER.'
  252. ;
  253.  
  254. COMMENT ON COLUMN ITEM.ORDER_ID IS 'Sales order in which this item appears.  Sales order information can be found in table SALES_ORDER.'
  255. ;
  256.  
  257. COMMENT ON COLUMN ITEM.ITEM_ID IS 'Number of item within the sales order.'
  258. ;
  259.  
  260. COMMENT ON COLUMN ITEM.PRODUCT_ID IS 'Number of product (described in PRODUCT) that pertains to the line item.'
  261. ;
  262.  
  263. COMMENT ON COLUMN ITEM.ACTUAL_PRICE IS 'Price to be paid by the customer in U.S. dollars.  The standard price is PRICE.STANDARD_PRICE, but in some instances, discounts are given to as low as PRICE.MINIMUM_PRICE.'
  264. ;
  265.  
  266. COMMENT ON COLUMN ITEM.QUANTITY IS 'The amount of product to be ordered in this line item.'
  267. ;
  268.  
  269. COMMENT ON COLUMN ITEM.TOTAL IS 'The total price (in U.S. dollars) of this line item.  TOTAL = ACTUAL_PRICE * QUANTITY.'
  270. ;
  271. CREATE UNIQUE INDEX I_ITEM ON ITEM
  272.     (
  273.      ORDER_ID ASC ,
  274.      ITEM_ID ASC
  275.     )
  276. ;
  277.  
  278. ALTER TABLE ITEM
  279.     ADD CONSTRAINT ITEM_PK PRIMARY KEY ( ORDER_ID, ITEM_ID ) ;
  280.  
  281.  
  282. GRANT SELECT
  283.     ON ITEM TO "PUBLIC"
  284. ;
  285.  
  286.  
  287. CREATE TABLE JOB
  288.     (
  289.      JOB_ID NUMBER (3)  NOT NULL ,
  290.      FUNCTION VARCHAR2 (30)
  291.     )
  292. ;
  293.  
  294.  
  295.  
  296. ALTER TABLE JOB
  297.     ADD CONSTRAINT JOB_CK0
  298.     CHECK ( JOB_ID IS NOT NULL)
  299. ;
  300.  
  301.  
  302. ALTER TABLE JOB
  303.     ADD CONSTRAINT JOB_CK0
  304.     CHECK ( FUNCTION IS NOT NULL)
  305. ;
  306.  
  307.  
  308. COMMENT ON TABLE JOB IS 'All valid job categories for personnel information.'
  309. ;
  310.  
  311. COMMENT ON COLUMN JOB.JOB_ID IS 'Unique 3-digit code for job function and title.'
  312. ;
  313.  
  314. COMMENT ON COLUMN JOB.FUNCTION IS 'Generic function class of job.'
  315. ;
  316. CREATE UNIQUE INDEX I_JOB$JOB_ID ON JOB
  317.     (
  318.      JOB_ID ASC
  319.     )
  320. ;
  321.  
  322. ALTER TABLE JOB
  323.     ADD CONSTRAINT JOB_PK PRIMARY KEY ( JOB_ID ) ;
  324.  
  325.  
  326. GRANT SELECT
  327.     ON JOB TO "PUBLIC"
  328. ;
  329.  
  330.  
  331. CREATE TABLE LOCATION
  332.     (
  333.      LOCATION_ID NUMBER (3)  NOT NULL ,
  334.      REGIONAL_GROUP VARCHAR2 (20)
  335.     )
  336. ;
  337.  
  338.  
  339.  
  340. ALTER TABLE LOCATION
  341.     ADD CONSTRAINT LOCATION_CK0
  342.     CHECK ( LOCATION_ID IS NOT NULL)
  343. ;
  344.  
  345.  
  346. COMMENT ON TABLE LOCATION IS 'Location information for all U.S. departments and warehouses.'
  347. ;
  348.  
  349. COMMENT ON COLUMN LOCATION.LOCATION_ID IS 'Central location corporate location code.'
  350. ;
  351.  
  352. COMMENT ON COLUMN LOCATION.REGIONAL_GROUP IS 'Metropolitan center closest to location.'
  353. ;
  354. CREATE UNIQUE INDEX I_LOCATION$LOCATION_ID ON LOCATION
  355.     (
  356.      LOCATION_ID ASC
  357.     )
  358. ;
  359.  
  360. ALTER TABLE LOCATION
  361.     ADD CONSTRAINT LOCATION_PK PRIMARY KEY ( LOCATION_ID ) ;
  362.  
  363.  
  364. GRANT SELECT
  365.     ON LOCATION TO "PUBLIC"
  366. ;
  367.  
  368.  
  369. CREATE TABLE MATERIALS
  370.     (
  371.      ID_MATERIALS NUMBER (6)  NOT NULL ,
  372.      NAME VARCHAR2 (45) ,
  373.      DESCRIPTION VARCHAR2 (45) ,
  374.      ID_PRODUCYT NUMBER (6)  NOT NULL ,
  375.      ID_MATERIALS1 NUMBER (6)  NOT NULL
  376.     ) LOGGING
  377. ;
  378.  
  379.  
  380.  
  381. ALTER TABLE MATERIALS
  382.     ADD CONSTRAINT "ID_MATERIALS PK" PRIMARY KEY ( ID_MATERIALS ) ;
  383.  
  384.  
  385. CREATE TABLE MAT_PROD
  386.     (
  387.      ID_MATERIALS NUMBER (6)  NOT NULL ,
  388.      ID_PRODUCYT NUMBER (6)  NOT NULL ,
  389.      AMOUNT NUMBER (7,2) ,
  390.      ID_MATERIALS1 NUMBER (6)  NOT NULL
  391.     ) LOGGING
  392. ;
  393.  
  394.  
  395.  
  396. ALTER TABLE MAT_PROD
  397.     ADD CONSTRAINT "MAT_PROD PK" PRIMARY KEY ( ID_PRODUCYT, ID_MATERIALS ) ;
  398.  
  399.  
  400. CREATE TABLE PRICE
  401.     (
  402.      PRODUCT_ID NUMBER (6)  NOT NULL ,
  403.      LIST_PRICE NUMBER (8,2) ,
  404.      MIN_PRICE NUMBER (8,2) ,
  405.      START_DATE DATE  NOT NULL ,
  406.      END_DATE DATE ,
  407.      ID_PRODUCYT NUMBER (6)  NOT NULL ,
  408.      ID_MATERIALS NUMBER (6)  NOT NULL
  409.     )
  410. ;
  411.  
  412.  
  413.  
  414. ALTER TABLE PRICE
  415.     ADD CONSTRAINT PRICE_CK0
  416.     CHECK ( PRODUCT_ID IS NOT NULL)
  417. ;
  418.  
  419.  
  420. ALTER TABLE PRICE
  421.     ADD CONSTRAINT PRICE_CK0
  422.     CHECK ( START_DATE IS NOT NULL)
  423. ;
  424.  
  425.  
  426. ALTER TABLE PRICE
  427.     ADD CONSTRAINT PRICE_CK0
  428.     CHECK (LIST_PRICE IS NULL OR MIN_PRICE IS NULL OR MIN_PRICE <= LIST_PRICE)
  429. ;
  430.  
  431.  
  432. ALTER TABLE PRICE
  433.     ADD CONSTRAINT PRICE_CK1
  434.     CHECK (END_DATE IS NULL OR START_DATE <= END_DATE)
  435. ;
  436.  
  437.  
  438. COMMENT ON TABLE PRICE IS 'Prices (both standard and minimum) of products.  Database tracks both effective dates and expiration dates for prices.'
  439. ;
  440.  
  441. COMMENT ON COLUMN PRICE.PRODUCT_ID IS 'Product number to which price applies.  Product name found in table PRICE.'
  442. ;
  443.  
  444. COMMENT ON COLUMN PRICE.LIST_PRICE IS 'Undiscounted price (in U.S. dollars).'
  445. ;
  446.  
  447. COMMENT ON COLUMN PRICE.MIN_PRICE IS 'Lowest price (in U.S. dollars) that can be offered.'
  448. ;
  449.  
  450. COMMENT ON COLUMN PRICE.START_DATE IS 'Date which standard and minimum prices go into effect.'
  451. ;
  452.  
  453. COMMENT ON COLUMN PRICE.END_DATE IS 'Date which standard and minimum price expire.  This value can be left NULL.'
  454. ;
  455. CREATE UNIQUE INDEX I_PRICE ON PRICE
  456.     (
  457.      PRODUCT_ID ASC ,
  458.      START_DATE ASC
  459.     )
  460. ;
  461.  
  462. ALTER TABLE PRICE
  463.     ADD CONSTRAINT PRICE_PK PRIMARY KEY ( PRODUCT_ID, ID_PRODUCYT, ID_MATERIALS, START_DATE ) ;
  464.  
  465.  
  466. GRANT SELECT
  467.     ON PRICE TO "PUBLIC"
  468. ;
  469.  
  470.  
  471. CREATE TABLE PRODUCT
  472.     (
  473.      PRODUCT_ID NUMBER (6)  NOT NULL ,
  474.      DESCRIPTION VARCHAR2 (30) ,
  475.      ID_PRODUCYT NUMBER (6)  NOT NULL ,
  476.      ID_MATERIALS NUMBER (6)  NOT NULL
  477.     )
  478. ;
  479.  
  480.  
  481.  
  482. ALTER TABLE PRODUCT
  483.     ADD CONSTRAINT PRODUCT_CK0
  484.     CHECK ( PRODUCT_ID IS NOT NULL)
  485. ;
  486.  
  487.  
  488. COMMENT ON TABLE PRODUCT IS 'Products in catalog.  Pricing information can be found in table PRICE.'
  489. ;
  490.  
  491. COMMENT ON COLUMN PRODUCT.PRODUCT_ID IS 'Unique 6 digit number assigned to all products.  Number generated by sequence PRODUCT_ID.'
  492. ;
  493.  
  494. COMMENT ON COLUMN PRODUCT.DESCRIPTION IS 'Full product name (up to 30 characters).  Storing product names in all caps is recommended but not required.'
  495. ;
  496. CREATE UNIQUE INDEX I_PRODUCT$PRODUCT_ID ON PRODUCT
  497.     (
  498.      PRODUCT_ID ASC
  499.     )
  500. ;
  501.  
  502. ALTER TABLE PRODUCT
  503.     ADD CONSTRAINT PRODUCT_PK PRIMARY KEY ( PRODUCT_ID, ID_PRODUCYT, ID_MATERIALS ) ;
  504.  
  505.  
  506. GRANT SELECT
  507.     ON PRODUCT TO "PUBLIC"
  508. ;
  509.  
  510.  
  511. CREATE TABLE SALARY_GRADE
  512.     (
  513.      GRADE_ID NUMBER (3)  NOT NULL ,
  514.      LOWER_BOUND NUMBER (7,2) ,
  515.      UPPER_BOUND NUMBER (7,2)
  516.     )
  517. ;
  518.  
  519.  
  520.  
  521. ALTER TABLE SALARY_GRADE
  522.     ADD CONSTRAINT SALARY_GRADE_CK0
  523.     CHECK ( GRADE_ID IS NOT NULL)
  524. ;
  525.  
  526.  
  527. ALTER TABLE SALARY_GRADE
  528.     ADD CONSTRAINT SALARY_GRADE_CK0
  529.     CHECK ((LOWER_BOUND IS NULL AND UPPER_BOUND IS NOT NULL) OR (LOWER_BOUND IS NOT NULL AND UPPER_BOUND IS NULL) OR (LOWER_BOUND <= UPPER_BOUND))
  530. ;
  531.  
  532.  
  533. COMMENT ON TABLE SALARY_GRADE IS 'Salary grade levels.  Used to classify monthly salary information in U.S. dollars, as found in EMP.SAL.'
  534. ;
  535.  
  536. COMMENT ON COLUMN SALARY_GRADE.GRADE_ID IS 'Number used to grade salaries.  Higher salary grade numbers denote higher salaries.'
  537. ;
  538.  
  539. COMMENT ON COLUMN SALARY_GRADE.LOWER_BOUND IS 'The lowest monthly salary (rounded to the nearest U.S. dollar) that applies to a particular salary grade. (i.e. the condition ROUND(EMP.SAL) >= LOWER_BOUND must be met.)'
  540. ;
  541.  
  542. COMMENT ON COLUMN SALARY_GRADE.UPPER_BOUND IS 'The highest monthly salary (rounded to the nearest U.S. dollar) that applies to a particular salary grade. (i.e. the condition ROUND(EMP.SAL) <= UPPER_BOUND must be met.)'
  543. ;
  544. CREATE UNIQUE INDEX I_SALARY_GRADE$GRADE_ID ON SALARY_GRADE
  545.     (
  546.      GRADE_ID ASC
  547.     )
  548. ;
  549.  
  550. ALTER TABLE SALARY_GRADE
  551.     ADD CONSTRAINT SALARY_GRADE_PK PRIMARY KEY ( GRADE_ID ) ;
  552.  
  553.  
  554. GRANT SELECT
  555.     ON SALARY_GRADE TO "PUBLIC"
  556. ;
  557.  
  558.  
  559. CREATE TABLE SALES_ORDER
  560.     (
  561.      ORDER_ID NUMBER (4)  NOT NULL ,
  562.      ORDER_DATE DATE ,
  563.      CUSTOMER_ID NUMBER (6) ,
  564.      SHIP_DATE DATE ,
  565.      TOTAL NUMBER (8,2)
  566.     )
  567. ;
  568.  
  569.  
  570.  
  571. ALTER TABLE SALES_ORDER
  572.     ADD CONSTRAINT SALES_ORDER_CK0
  573.     CHECK ( ORDER_ID IS NOT NULL)
  574. ;
  575.  
  576.  
  577. ALTER TABLE SALES_ORDER
  578.     ADD CONSTRAINT SALES_ORDER_CK0
  579.     CHECK ( CUSTOMER_ID IS NOT NULL)
  580. ;
  581.  
  582.  
  583. ALTER TABLE SALES_ORDER
  584.     ADD CONSTRAINT SALES_ORDER_CK0
  585.     CHECK ( TOTAL >= 0)
  586. ;
  587.  
  588.  
  589. COMMENT ON TABLE SALES_ORDER IS 'Sales order for a customer.  Items in the order can be found in the table ITEM.'
  590. ;
  591.  
  592. COMMENT ON COLUMN SALES_ORDER.ORDER_ID IS 'Unique 4 digit number assigned to all orders.  Number generated by sequence ORDER_ID.'
  593. ;
  594.  
  595. COMMENT ON COLUMN SALES_ORDER.ORDER_DATE IS 'Date sales order logged (not necessarily when order was fulfilled.)'
  596. ;
  597.  
  598. COMMENT ON COLUMN SALES_ORDER.CUSTOMER_ID IS 'Customer ordering the goods.  Further information can be found in the table CUSTOMER.'
  599. ;
  600.  
  601. COMMENT ON COLUMN SALES_ORDER.SHIP_DATE IS 'Date order fulfilled and invoice sent (not necessarily date payment received).'
  602. ;
  603.  
  604. COMMENT ON COLUMN SALES_ORDER.TOTAL IS 'Total of all items totals in the order.  (i.e. the value of TOTAL for order N should contain: SELECT SUM(TOTAL) FROM ITEM WHERE ORDER_ID=N)'
  605. ;
  606. CREATE UNIQUE INDEX I_SALES_ORDER$ORDER_ID ON SALES_ORDER
  607.     (
  608.      ORDER_ID ASC
  609.     )
  610. ;
  611.  
  612. ALTER TABLE SALES_ORDER
  613.     ADD CONSTRAINT SALES_ORDER_PK PRIMARY KEY ( ORDER_ID ) ;
  614.  
  615.  
  616. GRANT SELECT
  617.     ON SALES_ORDER TO "PUBLIC"
  618. ;
  619.  
  620.  
  621.  
  622. ALTER TABLE CUSTOMER
  623.     ADD CONSTRAINT CUSTOMER_FK0 FOREIGN KEY
  624.     (
  625.      SALESPERSON_ID
  626.     )
  627.     REFERENCES EMPLOYEE
  628.     (
  629.      EMPLOYEE_ID
  630.     )
  631.     ON DELETE SET NULL
  632.     NOT DEFERRABLE
  633. ;
  634.  
  635.  
  636. ALTER TABLE DEPARTMENT
  637.     ADD CONSTRAINT DEPARTMENT_FK0 FOREIGN KEY
  638.     (
  639.      LOCATION_ID
  640.     )
  641.     REFERENCES LOCATION
  642.     (
  643.      LOCATION_ID
  644.     )
  645.     ON DELETE SET NULL
  646.     NOT DEFERRABLE
  647. ;
  648.  
  649.  
  650. ALTER TABLE EMPLOYEE
  651.     ADD CONSTRAINT EMPLOYEE_FK0 FOREIGN KEY
  652.     (
  653.      JOB_ID
  654.     )
  655.     REFERENCES JOB
  656.     (
  657.      JOB_ID
  658.     )
  659.     ON DELETE SET NULL
  660.     NOT DEFERRABLE
  661. ;
  662.  
  663.  
  664. -- Error - Foreign Key EMPLOYEE_FK1 has no columns
  665.  
  666. ALTER TABLE EMPLOYEE
  667.     ADD CONSTRAINT EMPLOYEE_FK2 FOREIGN KEY
  668.     (
  669.      DEPARTMENT_ID
  670.     )
  671.     REFERENCES DEPARTMENT
  672.     (
  673.      DEPARTMENT_ID
  674.     )
  675.     ON DELETE SET NULL
  676.     NOT DEFERRABLE
  677. ;
  678.  
  679.  
  680. ALTER TABLE ITEM
  681.     ADD CONSTRAINT ITEM_FK0 FOREIGN KEY
  682.     (
  683.      ORDER_ID
  684.     )
  685.     REFERENCES SALES_ORDER
  686.     (
  687.      ORDER_ID
  688.     )
  689.     NOT DEFERRABLE
  690. ;
  691.  
  692.  
  693. ALTER TABLE ITEM
  694.     ADD CONSTRAINT ITEM_FK1 FOREIGN KEY
  695.     (
  696.      PRODUCT_ID,
  697.      ID_PRODUCYT,
  698.      ID_MATERIALS
  699.     )
  700.     REFERENCES PRODUCT
  701.     (
  702.      PRODUCT_ID,
  703.      ID_PRODUCYT,
  704.      ID_MATERIALS
  705.     )
  706.     ON DELETE SET NULL
  707.     NOT DEFERRABLE
  708. ;
  709.  
  710.  
  711. ALTER TABLE PRICE
  712.     ADD CONSTRAINT PRICE_FK0 FOREIGN KEY
  713.     (
  714.      PRODUCT_ID,
  715.      ID_PRODUCYT,
  716.      ID_MATERIALS
  717.     )
  718.     REFERENCES PRODUCT
  719.     (
  720.      PRODUCT_ID,
  721.      ID_PRODUCYT,
  722.      ID_MATERIALS
  723.     )
  724.     NOT DEFERRABLE
  725. ;
  726.  
  727.  
  728. ALTER TABLE PRODUCT
  729.     ADD CONSTRAINT Relation_10 FOREIGN KEY
  730.     (
  731.      ID_PRODUCYT,
  732.      ID_MATERIALS
  733.     )
  734.     REFERENCES MAT_PROD
  735.     (
  736.      ID_PRODUCYT,
  737.      ID_MATERIALS
  738.     )
  739.     NOT DEFERRABLE
  740. ;
  741.  
  742.  
  743. ALTER TABLE MATERIALS
  744.     ADD CONSTRAINT Relation_13 FOREIGN KEY
  745.     (
  746.      ID_PRODUCYT,
  747.      ID_MATERIALS1
  748.     )
  749.     REFERENCES MAT_PROD
  750.     (
  751.      ID_PRODUCYT,
  752.      ID_MATERIALS
  753.     )
  754.     NOT DEFERRABLE
  755. ;
  756.  
  757.  
  758. ALTER TABLE SALES_ORDER
  759.     ADD CONSTRAINT SALES_ORDER_FK0 FOREIGN KEY
  760.     (
  761.      CUSTOMER_ID
  762.     )
  763.     REFERENCES CUSTOMER
  764.     (
  765.      CUSTOMER_ID
  766.     )
  767.     ON DELETE SET NULL
  768.     NOT DEFERRABLE
  769. ;
  770.  
  771. --  ERROR: Invalid View SALES
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788. -- Oracle SQL Developer Data Modeler Summary Report:
  789. --
  790. -- CREATE TABLE                            12
  791. -- CREATE INDEX                            10
  792. -- ALTER TABLE                             45
  793. -- CREATE VIEW                              0
  794. -- CREATE PACKAGE                           0
  795. -- CREATE PACKAGE BODY                      0
  796. -- CREATE PROCEDURE                         0
  797. -- CREATE FUNCTION                          0
  798. -- CREATE TRIGGER                           0
  799. -- ALTER TRIGGER                            0
  800. -- CREATE STRUCTURED TYPE                   0
  801. -- CREATE COLLECTION TYPE                   0
  802. -- CREATE CLUSTER                           0
  803. -- CREATE CONTEXT                           0
  804. -- CREATE DATABASE                          0
  805. -- CREATE DIMENSION                         0
  806. -- CREATE DIRECTORY                         0
  807. -- CREATE DISK GROUP                        0
  808. -- CREATE ROLE                              0
  809. -- CREATE ROLLBACK SEGMENT                  0
  810. -- CREATE SEQUENCE                          0
  811. -- CREATE MATERIALIZED VIEW                 0
  812. -- CREATE SYNONYM                           0
  813. -- CREATE TABLESPACE                        0
  814. -- CREATE USER                              0
  815. --
  816. -- DROP TABLESPACE                          0
  817. -- DROP DATABASE                            0
  818. --
  819. -- ERRORS                                   2
  820. -- WARNINGS                                 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement