home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume25 / shql / part01 / demo.shql next >
Encoding:
Text File  |  1991-11-04  |  1.9 KB  |  129 lines

  1. # Demo for SHQL, version 0.60
  2. # Create table customer
  3. create table customer (
  4.     name 30,
  5.     age  3,
  6.     status 1 )
  7. \p\g
  8.  
  9. # Put one person in the table
  10. insert into customer values ( 'Fred', 32, 'G' )
  11. \p\g
  12.  
  13. # Study the table
  14. help customer
  15. \p\g
  16. select * from customer
  17. \p\g
  18.  
  19. # Add two more people
  20. insert into customer values 
  21. ( 'Barney', 29, 'G', 'Wilma', 28, 'D' )
  22. \p\g
  23. print customer
  24. \p\g
  25.  
  26. # Get customers with 'G' status
  27. select * from customer
  28. where status = 'G'
  29. \p\g
  30.  
  31. # Get sorted list of customers by age
  32. select * from customer
  33. order by age num
  34. \p\g 
  35.  
  36. # Make a table to hold customer status codes and their descriptions
  37. create table codes ( 
  38.     code 1,
  39.     description 10 )
  40. \p\g
  41.  
  42. # Insert status codes
  43. insert into codes values 
  44. ( 'G', 'Good', 'B', 'Bad', 'D', 'Dead Beat' )
  45. \p\g
  46.  
  47. # Create a view so we can see the customer name and status description
  48. create view custstat ( customer.status = codes.code )
  49. \p\g
  50.  
  51. # Look at the table
  52. help custstat
  53. \p\g
  54. select * from custstat
  55. \p\g
  56.  
  57. # Replace 'Barney' with 'Bad Bart'
  58. update customer 
  59. set name = 'Bad Bart', status = 'X' 
  60. where age = 29
  61. \p\g
  62.  
  63. print customer
  64. \p\g
  65.  
  66. # Get all customers that have invalid status'es
  67. select * from customer
  68. where status not in select code 
  69.             from codes
  70. \p\g
  71.  
  72. # Remove 'Fred'
  73. delete customer
  74. where age = 32
  75. \p\g
  76.  
  77. # Get rid of view 
  78. drop view custstat
  79. \p\g
  80.  
  81. # Create a holding table for old customers
  82. create table oldcust (
  83.     name 30,
  84.     status 1 )
  85. \p\g
  86.  
  87. # Copy old customer to new table
  88. insert into oldcust ( 
  89.     name status )
  90. select name status 
  91. from customer
  92. where age > 28
  93. \p\g
  94.  
  95. # Look at table
  96. print oldcust
  97. \p\g
  98.  
  99. # Delete customers moved over
  100. delete customer
  101. where age > 28
  102. \p\g
  103.  
  104. print customer
  105. \p\g
  106.  
  107. # Try a union of the two tables
  108. select name age
  109. from customer
  110. union
  111. select name status 
  112. from oldcust
  113. \p\g
  114.  
  115. # Show example of executing Unix commands
  116. insert into customer 
  117. values ( '`date`', `ls / | wc -l`, 'Y' )
  118. \p\g
  119. print customer
  120. \p\g
  121. # Clean up
  122. drop table codes
  123. \p\g
  124. drop table customer
  125. \p\g
  126. drop table oldcust
  127. \p\g
  128. \q    
  129.