home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 December / PCWorld_1998-12_cd.iso / software / sybase / ASA / asa60.exe / data1.cab / jxmp_files / jdemo.sql < prev    next >
Text File  |  1998-07-27  |  6KB  |  284 lines

  1. SET TEMPORARY OPTION ON_ERROR = 'PROMPT';
  2.  
  3.  
  4. -------------------------------------------------
  5. -- Install JDBC example classes
  6. -------------------------------------------------
  7. INSTALL JAVA NEW 
  8. FROM FILE '../jxmp/JDBCExamples.class'
  9. go
  10.  
  11. -------------------------------------------------
  12. -- The remainder of the script builds a
  13. -- set of database tables for the sample
  14. -- database, under the user ID jdba, that use
  15. -- Java data types and hold much of the information
  16. -- in the sample database tables owned by DBA
  17. -------------------------------------------------
  18.  
  19. -- Add Java database administrator
  20. -- and use that ID
  21. GRANT CONNECT TO jdba
  22. IDENTIFIED BY sql
  23. go
  24. GRANT dba TO jdba
  25. go
  26. SETUSER jdba
  27. go
  28.  
  29. -------------------------------------------------
  30. -- Install required Java classes
  31. -------------------------------------------------
  32. INSTALL JAVA NEW JAR 'asademo'
  33. FROM FILE '../jxmp/asademo.jar'
  34. go
  35.  
  36. -------------------------------------------------
  37. -- Create tables
  38. -------------------------------------------------
  39. CREATE TABLE "jdba"."product"
  40. (
  41.     "id"    INTEGER NOT NULL,
  42.     "JProd" asademo.Product NOT NULL,
  43.     "name"  CHAR(15) COMPUTE ( JProd>>name ),
  44.     PRIMARY KEY ("id")
  45. )
  46. go
  47.  
  48. CREATE TABLE "jdba"."contact"
  49. (
  50.     "id"    integer NOT NULL,
  51.     "title" CHAR(2) NOT NULL,
  52.     "JName" asademo.Name NOT NULL,
  53.     "JContactInfo" asademo.ContactInfo NOT NULL,
  54.     PRIMARY KEY ("id")
  55. )
  56. go
  57.  
  58. CREATE TABLE "jdba"."customer"
  59. (
  60.     "id"    integer NOT NULL,
  61.     "company_name" CHAR(35) NOT NULL,
  62.     "JName" asademo.Name NOT NULL,
  63.     "JContactInfo" asademo.ContactInfo NOT NULL,
  64.     PRIMARY KEY ("id")
  65. )
  66. go
  67.  
  68. CREATE TABLE "jdba".employee
  69. (
  70.     "emp_id" INTEGER NOT NULL,
  71.     "JName" asademo.Name NOT NULL,
  72.     "dept_id" INTEGER NOT NULL,
  73.     "manager_id" INTEGER NOT NULL,
  74.     "sex" CHAR(1) NOT NULL,
  75.     "JEmpInfo" asademo.EmployeeInfo NOT NULL,
  76.     PRIMARY KEY ("emp_id")
  77. )
  78. go
  79.  
  80. CREATE TABLE "jdba".sales_order 
  81. (
  82.     "id" INTEGER NOT NULL,
  83.     "cust_id" INTEGER NOT NULL,
  84.     "sales_rep" INTEGER NOT NULL,
  85.     "region" CHAR(7) NOT NULL,
  86.     "order_date" DATE NOT NULL,
  87.     PRIMARY KEY ("id")
  88. )
  89. go
  90.  
  91. CREATE TABLE "jdba".sales_order_items
  92. (
  93.     "id" INTEGER NOT NULL,
  94.     "line_id" INTEGER NOT NULL,
  95.     JItem asademo.OrderItem NOT NULL,
  96.     "prod_id" INTEGER COMPUTE( JItem>>prod_id ),
  97.     PRIMARY KEY ( "id", "line_id")
  98. )
  99.  
  100. -------------------------------------------------
  101. --   Add Data
  102. -------------------------------------------------
  103. INSERT INTO product( id, JProd )
  104. SELECT id, 
  105.     NEW asademo.Product( color, 
  106.         description, 
  107.         name, 
  108.         quantity, 
  109.         size, 
  110.         unit_price )
  111. FROM dba.product
  112. WHERE NOT ( LOCATE ( name, 'cap' ) > 0
  113. OR LOCATE ( name, 'visor' ) > 0 )
  114. go
  115. COMMIT
  116. go
  117.  
  118. INSERT INTO product( id, JProd )
  119. SELECT id, 
  120.     NEW asademo.Hat( color, 
  121.         description, 
  122.         name, 
  123.         quantity, 
  124.         size, 
  125.         unit_price )
  126. FROM dba.product
  127. WHERE ( LOCATE ( name, 'cap' ) > 0
  128. OR LOCATE ( name, 'visor' ) > 0 )
  129. go
  130. COMMIT
  131. go
  132.  
  133. INSERT INTO contact
  134. SELECT id, 
  135.     title,
  136.     NEW asademo.Name( 
  137.         first_name, 
  138.         last_name ),
  139.     NEW asademo.ContactInfo ( 
  140.         phone,
  141.         fax,
  142.         zip,
  143.         street,
  144.         city,
  145.         state )
  146. FROM dba.contact
  147. go
  148. COMMIT
  149. go
  150.  
  151. INSERT INTO customer
  152. SELECT id, 
  153.     company_name,
  154.     NEW asademo.Name( fname, lname ),
  155.     NEW asademo.ContactInfo ( 
  156.         phone,
  157.         zip,
  158.         address,
  159.         city,
  160.         state )
  161. FROM dba.customer
  162. go
  163. COMMIT
  164. go
  165.  
  166. INSERT INTO employee
  167. SELECT     emp_id, 
  168.     NEW asademo.Name( emp_fname, emp_lname ),
  169.     dept_id,
  170.     manager_id,
  171.     sex,
  172.     NEW asademo.EmployeeInfo ( 
  173.         phone,
  174.         zip_code,
  175.         street,
  176.         city,
  177.         state,
  178.         ss_number,
  179.         salary,
  180.         start_date,
  181.         termination_date,
  182.         birth_date,
  183.         bene_health_ins,
  184.         bene_life_ins,
  185.         bene_day_care
  186.  )
  187. FROM dba.employee
  188. go
  189. COMMIT
  190. go
  191.  
  192. INSERT INTO "jdba".sales_order
  193. SELECT     id,
  194.     cust_id,
  195.     sales_rep,
  196.     region,
  197.     order_date
  198. FROM "dba".sales_order
  199. go
  200. COMMIT
  201. go
  202.  
  203. INSERT INTO "jdba".sales_order_items( id, line_id, JItem)
  204. SELECT     id,
  205.     line_id,
  206.     NEW asademo.OrderItem( 
  207.         prod_id,
  208.         quantity,
  209.         ship_date
  210.     )        
  211. FROM "dba".sales_order_items
  212. go
  213. COMMIT
  214. go
  215.  
  216.  
  217. // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  218. //     Add foreign keys definitions
  219. // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  220.  
  221.  
  222. ALTER TABLE "jdba"."sales_order"
  223. ADD FOREIGN KEY "ky_so_employee_id" ("sales_rep") 
  224. REFERENCES "jdba"."employee" ("emp_id");
  225.  
  226. ALTER TABLE "jdba"."sales_order"
  227. ADD FOREIGN KEY "ky_so_customer" ("cust_id") 
  228. REFERENCES "jdba"."customer" ("id");
  229.  
  230. CREATE INDEX "ix_sales_cust" ON "jdba"."sales_order"
  231. (
  232.     "cust_id" ASC
  233. );
  234.  
  235. ALTER TABLE "jdba"."sales_order_items"
  236. ADD FOREIGN KEY "ky_prod_id" ("prod_id") 
  237. REFERENCES "jdba"."product" ("id");
  238.  
  239. ALTER TABLE "jdba"."sales_order_items"
  240. ADD FOREIGN KEY "id_fk" ("id") 
  241. REFERENCES "jdba"."sales_order" ("id") on delete cascade;
  242.  
  243. CREATE INDEX "ix_item_prod" ON "jdba"."sales_order_items"
  244. (
  245.     "prod_id" ASC
  246. );
  247.  
  248. CREATE INDEX "ix_prod_name" ON "jdba"."product"
  249. (
  250.     "name" ASC
  251. );
  252. go
  253.  
  254. /* From here on commented out
  255. CREATE INDEX "ix_cust_name" ON "jdba"."customer"
  256. (
  257.     "lname" ASC,
  258.     "fname" ASC
  259. );
  260.  
  261.  
  262. CREATE INDEX "ix_prod_desc" ON "jdba"."product"
  263. (
  264.     "description" ASC
  265. );
  266. CREATE INDEX "ix_prod_size" ON "jdba"."product"
  267. (
  268.     "size" ASC);
  269. CREATE INDEX "ix_prod_color" ON "jdba"."product"
  270. (
  271.     "color" ASC
  272. );
  273.  
  274.  
  275. ALTER TABLE "jdba"."department"
  276. ADD FOREIGN KEY "ky_dept_head" ("dept_head_id") 
  277. REFERENCES "jdba"."employee" ("emp_id") on delete set null;
  278.  
  279. ALTER TABLE "jdba"."employee"
  280. ADD FOREIGN KEY "ky_dept_id" ("dept_id") 
  281. REFERENCES "jdba"."department" ("dept_id");
  282. commit work;
  283. */
  284.