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