Oracle 示例表 OE.customers


OE 用户下的customer表, 在一些国外的教科书中经常作为示例表讲解

其数据库脚本如下:

  1. ALTER TABLE OE.CUSTOMERS  
  2.  DROP PRIMARY KEY CASCADE;  
  3. DROP TABLE OE.CUSTOMERS CASCADE CONSTRAINTS;  
  4. CREATE TABLE OE.CUSTOMERS  
  5. (  
  6.   CUSTOMER_ID        NUMBER(6),  
  7.   CUST_FIRST_NAME    VARCHAR2(20 BYTE) CONSTRAINT CUST_FNAME_NN NOT NULL,  
  8.   CUST_LAST_NAME     VARCHAR2(20 BYTE) CONSTRAINT CUST_LNAME_NN NOT NULL,  
  9.   CUST_ADDRESS       OE.CUST_ADDRESS_TYP,  
  10.   PHONE_NUMBERS      OE.PHONE_LIST_TYP,  
  11.   NLS_LANGUAGE       VARCHAR2(3 BYTE),  
  12.   NLS_TERRITORY      VARCHAR2(30 BYTE),  
  13.   CREDIT_LIMIT       NUMBER(9,2),  
  14.   CUST_EMAIL         VARCHAR2(30 BYTE),  
  15.   ACCOUNT_MGR_ID     NUMBER(6),  
  16.   CUST_GEO_LOCATION  MDSYS.SDO_GEOMETRY,  
  17.   DATE_OF_BIRTH      DATE,  
  18.   MARITAL_STATUS     VARCHAR2(20 BYTE),  
  19.   GENDER             VARCHAR2(1 BYTE),  
  20.   INCOME_LEVEL       VARCHAR2(20 BYTE)  
  21. )  
  22. COLUMN CUST_ADDRESS NOT SUBSTITUTABLE AT ALL LEVELS  
  23. COLUMN CUST_GEO_LOCATION NOT SUBSTITUTABLE AT ALL LEVELS  
  24. TABLESPACE EXAMPLE  
  25. PCTUSED    0  
  26. PCTFREE    10  
  27. INITRANS   1  
  28. MAXTRANS   255  
  29. STORAGE    (  
  30.             INITIAL          64K  
  31.             NEXT             1M  
  32.             MINEXTENTS       1  
  33.             MAXEXTENTS       UNLIMITED  
  34.             PCTINCREASE      0  
  35.             BUFFER_POOL      DEFAULT  
  36.            )  
  37. NOLOGGING   
  38. NOCOMPRESS   
  39. VARRAY "CUST_GEO_LOCATION"."SDO_ORDINATES" STORE AS LOB (  
  40.   ENABLE      STORAGE IN ROW  
  41.   CHUNK       8192  
  42.   RETENTION  
  43.   CACHE  
  44.   INDEX       (  
  45.         TABLESPACE EXAMPLE  
  46.         STORAGE    (  
  47.                     INITIAL          64K  
  48.                     NEXT             1M  
  49.                     MINEXTENTS       1  
  50.                     MAXEXTENTS       UNLIMITED  
  51.                     PCTINCREASE      0  
  52.                     BUFFER_POOL      DEFAULT  
  53.                    ))  
  54.       STORAGE    (  
  55.                   INITIAL          64K  
  56.                   NEXT             1M  
  57.                   MINEXTENTS       1  
  58.                   MAXEXTENTS       UNLIMITED  
  59.                   PCTINCREASE      0  
  60.                   BUFFER_POOL      DEFAULT  
  61.                  ))  
  62. VARRAY "CUST_GEO_LOCATION"."SDO_ELEM_INFO" STORE AS LOB (  
  63.   ENABLE      STORAGE IN ROW  
  64.   CHUNK       8192  
  65.   RETENTION  
  66.   CACHE  
  67.   INDEX       (  
  68.         TABLESPACE EXAMPLE  
  69.         STORAGE    (  
  70.                     INITIAL          64K  
  71.                     NEXT             1M  
  72.                     MINEXTENTS       1  
  73.                     MAXEXTENTS       UNLIMITED  
  74.                     PCTINCREASE      0  
  75.                     BUFFER_POOL      DEFAULT  
  76.                    ))  
  77.       STORAGE    (  
  78.                   INITIAL          64K  
  79.                   NEXT             1M  
  80.                   MINEXTENTS       1  
  81.                   MAXEXTENTS       UNLIMITED  
  82.                   PCTINCREASE      0  
  83.                   BUFFER_POOL      DEFAULT  
  84.                  ))  
  85. NOCACHE  
  86. NOPARALLEL  
  87. MONITORING;  
  88. COMMENT ON TABLE OE.CUSTOMERS IS 'Contains customers data either entered by an employee or by the customer  
  89. him/herself over the Web.';  
  90. COMMENT ON COLUMN OE.CUSTOMERS.ACCOUNT_MGR_ID IS 'References hr.employees.employee_id.';  
  91. COMMENT ON COLUMN OE.CUSTOMERS.CUST_GEO_LOCATION IS 'SDO (spatial) column.';  
  92. COMMENT ON COLUMN OE.CUSTOMERS.CUSTOMER_ID IS 'Primary key column.';  
  93. COMMENT ON COLUMN OE.CUSTOMERS.CUST_FIRST_NAME IS 'NOT NULL constraint.';  
  94. COMMENT ON COLUMN OE.CUSTOMERS.CUST_LAST_NAME IS 'NOT NULL constraint.';  
  95. COMMENT ON COLUMN OE.CUSTOMERS.CUST_ADDRESS IS 'Object column of type address_typ.';  
  96. COMMENT ON COLUMN OE.CUSTOMERS.PHONE_NUMBERS IS 'Varray column of type phone_list_typ';  
  97. COMMENT ON COLUMN OE.CUSTOMERS.CREDIT_LIMIT IS 'Check constraint.';  
  98.   
  99. CREATE UNIQUE INDEX OE.CUSTOMERS_PK ON OE.CUSTOMERS  
  100. (CUSTOMER_ID)  
  101. NOLOGGING  
  102. TABLESPACE EXAMPLE  
  103. PCTFREE    10  
  104. INITRANS   2  
  105. MAXTRANS   255  
  106. STORAGE    (  
  107.             INITIAL          64K  
  108.             NEXT             1M  
  109.             MINEXTENTS       1  
  110.             MAXEXTENTS       UNLIMITED  
  111.             PCTINCREASE      0  
  112.             BUFFER_POOL      DEFAULT  
  113.            )  
  114. NOPARALLEL;  
  115.   
  116. CREATE INDEX OE.CUST_ACCOUNT_MANAGER_IX ON OE.CUSTOMERS  
  117. (ACCOUNT_MGR_ID)  
  118. NOLOGGING  
  119. TABLESPACE EXAMPLE  
  120. PCTFREE    10  
  121. INITRANS   2  
  122. MAXTRANS   255  
  123. STORAGE    (  
  124.             INITIAL          64K  
  125.             NEXT             1M  
  126.             MINEXTENTS       1  
  127.             MAXEXTENTS       UNLIMITED  
  128.             PCTINCREASE      0  
  129.             BUFFER_POOL      DEFAULT  
  130.            )  
  131. NOPARALLEL;  
  132.   
  133. CREATE INDEX OE.CUST_EMAIL_IX ON OE.CUSTOMERS  
  134. (CUST_EMAIL)  
  135. NOLOGGING  
  136. TABLESPACE EXAMPLE  
  137. PCTFREE    10  
  138. INITRANS   2  
  139. MAXTRANS   255  
  140. STORAGE    (  
  141.             INITIAL          64K  
  142.             NEXT             1M  
  143.             MINEXTENTS       1  
  144.             MAXEXTENTS       UNLIMITED  
  145.             PCTINCREASE      0  
  146.             BUFFER_POOL      DEFAULT  
  147.            )  
  148. NOPARALLEL;  
  149.   
  150. CREATE INDEX OE.CUST_LNAME_IX ON OE.CUSTOMERS  
  151. (CUST_LAST_NAME)  
  152. NOLOGGING  
  153. TABLESPACE EXAMPLE  
  154. PCTFREE    10  
  155. INITRANS   2  
  156. MAXTRANS   255  
  157. STORAGE    (  
  158.             INITIAL          64K  
  159.             NEXT             1M  
  160.             MINEXTENTS       1  
  161.             MAXEXTENTS       UNLIMITED  
  162.             PCTINCREASE      0  
  163.             BUFFER_POOL      DEFAULT  
  164.            )  
  165. NOPARALLEL;  
  166.   
  167. CREATE INDEX OE.CUST_UPPER_NAME_IX ON OE.CUSTOMERS  
  168. (UPPER("CUST_LAST_NAME"), UPPER("CUST_FIRST_NAME"))  
  169. NOLOGGING  
  170. TABLESPACE EXAMPLE  
  171. PCTFREE    10  
  172. INITRANS   2  
  173. MAXTRANS   255  
  174. STORAGE    (  
  175.             INITIAL          64K  
  176.             NEXT             1M  
  177.             MINEXTENTS       1  
  178.             MAXEXTENTS       UNLIMITED  
  179.             PCTINCREASE      0  
  180.             BUFFER_POOL      DEFAULT  
  181.            )  
  182. NOPARALLEL;  
  183.   
  184. ALTER TABLE OE.CUSTOMERS ADD (  
  185.   CONSTRAINT CUSTOMER_CREDIT_LIMIT_MAX  
  186.  CHECK (credit_limit <= 5000),  
  187.   CONSTRAINT CUSTOMER_ID_MIN  
  188.  CHECK (customer_id > 0),  
  189.   CONSTRAINT CUSTOMERS_PK  
  190.  PRIMARY KEY  
  191.  (CUSTOMER_ID)  
  192.     USING INDEX   
  193.     TABLESPACE EXAMPLE  
  194.     PCTFREE    10  
  195.     INITRANS   2  
  196.     MAXTRANS   255  
  197.     STORAGE    (  
  198.                 INITIAL          64K  
  199.                 NEXT             1M  
  200.                 MINEXTENTS       1  
  201.                 MAXEXTENTS       UNLIMITED  
  202.                 PCTINCREASE      0  
  203.                ));  
  204. ALTER TABLE OE.CUSTOMERS ADD (  
  205.   CONSTRAINT CUSTOMERS_ACCOUNT_MANAGER_FK   
  206.  FOREIGN KEY (ACCOUNT_MGR_ID)   
  207.  REFERENCES HR.EMPLOYEES (EMPLOYEE_ID)  
  208.     ON DELETE SET NULL);  
  209. GRANT SELECT ON OE.CUSTOMERS TO BI;  
  210. GRANT SELECT ON OE.CUSTOMERS TO PM;  

相关内容