select.l
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:4k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." XXX standard disclaimer belongs here....
  3. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/select.l,v 1.13 1999/06/03 19:52:09 momjian Exp $
  4. .TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL
  5. .SH NAME
  6. select - retrieve instances from a class
  7. .SH SYNOPSIS
  8. .nf
  9. fBselectfR [distinct [on attr_name]]
  10.     expression1 [fBasfR attr_name-1]
  11.     {, expression-1 [fBasfR attr_name-i]}
  12.     [fBintofR [fBtempfR] [fBtablefR] classname]
  13.     [fBfromfR from-list]
  14.     [fBwherefR where-clause]    
  15.     [fBgroup byfR attr_name1 {, attr_name-i....}]
  16.     [fBhavingfR having-clause]
  17. [ { fBunion {all}fR | fBintersectfR | fBexceptfR } fBselectfR ...]
  18.     [fBorder byfR attr_name1 [fBascfR | fBdescfR] [fBusing op1fR] {, attr_namei...}]
  19.     [fBfor updatefR [fBoffR class_name...]]
  20.     [fBlimitfR count [fBoffsetfR|, count]]
  21. .fi
  22. .SH DESCRIPTION
  23. .BR Select
  24. will get all instances which satisfy the qualification,
  25. .IR qual ,
  26. compute the value of each element in the target list, and either (1)
  27. return them to an application program through one of two different
  28. kinds of portals or (2) store them in a new class.
  29. .PP
  30. If
  31. into table class name
  32. is specified, the result of the query will be stored in a new class
  33. with the indicated name.
  34. .PP
  35. The
  36. .BR "order by"
  37. clause allows a user to specify that he wishes the instances sorted
  38. according to the corresponding operator.  This operator must be a
  39. binary one returning a boolean.  Multiple sort fields are allowed and
  40. are applied from left to right.
  41. The
  42. .BR "for update"
  43. allows the select statement to perform exclusive locking of selected rows.
  44. The
  45. .BR "limit/offset"
  46. allows control over which rows are returned by the query.
  47. .PP
  48. The target list specifies the fields to be retrieved.  Each 
  49. .IR attr_name
  50. specifies the desired attribute or portion of an array attribute.
  51. Thus, each 
  52. .IR attr_name
  53. takes the form
  54. .nf
  55. class_name.att_name
  56. .fi
  57. or, if the user only desires part of an array,
  58. .nf
  59. --
  60. --Specify a lower and upper index for each dimension
  61. --(i.e., clip a range of array elements)
  62. --
  63. class_name.att_name[lIndex-1:uIndex-1]..[lIndex-i:uIndex-i]
  64. --
  65. --Specify an exact array element
  66. --
  67. class_name.att_name[uIndex-1]..[uIndex-i]
  68. .fi
  69. where each 
  70. .IR lIndex
  71. or
  72. .IR uIndex
  73. is an integer constant.
  74. .PP
  75. When you retrieve an attribute which is of a complex type, the behavior
  76. of the system depends on whether you used "nested dots" to project
  77. out attributes of the complex type or not.  See the examples below.
  78. .PP
  79. You must have read access to a class to read its values (see
  80. .IR grant/revoke(l).
  81. .SH EXAMPLES
  82. .nf
  83. --
  84. --Find all employees who make more than their manager
  85. --
  86. select e.name
  87.    from emp e, emp m
  88.    where e.mgr = m.name
  89.    and e.sal >  m.sal
  90. .fi
  91. .nf
  92. --
  93. --Retrieve all fields for those employees who make
  94. --more than the average salary
  95. --
  96. select avg(sal) as ave 
  97.    into table avgsal from emp;
  98. .fi
  99. .nf
  100. --
  101. --Retrieve all employee names in sorted order
  102. --
  103. select distinct name
  104.    from emp
  105.    order by name using <
  106. .fi
  107. .nf
  108. --
  109. --Retrieve all employee names that were valid on 1/7/85 
  110. --in sorted order
  111. --
  112. selec name
  113.    from emp['January 7 1985'] e
  114.    order by name using < 
  115. .fi
  116. .nf
  117. --
  118. --Construct a new class, raise, containing 1.1
  119. --times all employee's salaries
  120. --
  121. select 1.1 * emp.salary as salary
  122.     into tables raise
  123.     from emp
  124. .fi
  125. .SH "SEE ALSO"
  126. insert(l),
  127. close(l),
  128. create_table(l),
  129. fetch(l),
  130. update(l).
  131. .SH BUGS
  132. If the backend crashes in the course of executing a 
  133. .BR "select into" ,
  134. the class file will remain on disk.  It can be safely removed by the
  135. database DBA, but a subsequent
  136. .BR "select into"
  137. to the same name will fail with a cryptic error message about
  138. *(lqBlockExtend*(rq.