summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/copy.sgml16
-rw-r--r--doc/src/sgml/ref/declare.sgml137
-rw-r--r--doc/src/sgml/ref/fetch.sgml53
-rw-r--r--doc/src/sgml/ref/move.sgml10
-rw-r--r--doc/src/sgml/sql.sgml106
5 files changed, 190 insertions, 132 deletions
diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml
index 8aa5b90a9ed..389b455fde7 100644
--- a/doc/src/sgml/ref/copy.sgml
+++ b/doc/src/sgml/ref/copy.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.40 2002/09/21 18:32:54 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.41 2003/03/27 16:51:27 momjian Exp $
PostgreSQL documentation
-->
@@ -133,9 +133,10 @@ COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="
</para>
<note>
<para>
- On a copy in, any data item that matches this string will be stored as
- a NULL value, so you should make sure that you use the same string
- as you used on copy out.
+ On a <command>COPY FROM</command>, any data item that matches
+ this string will be stored as a NULL value, so you should
+ make sure that you use the same string as you used with
+ <command>COPY TO</command>.
</para>
</note>
</listitem>
@@ -210,7 +211,8 @@ ERROR: <replaceable>reason</replaceable>
or write to a file. The file must be accessible to the backend and
the name must be specified from the viewpoint of the backend. When
<filename>stdin</filename> or <filename>stdout</filename> is
- specified, data flows through the client frontend to the backend.
+ specified, data is transmitted via the connection between the
+ client frontend and the backend.
<tip>
<para>
@@ -234,8 +236,8 @@ ERROR: <replaceable>reason</replaceable>
Notes
</title>
<para>
- <command>COPY</command> can only be used with plain tables, not with
- views.
+ <command>COPY</command> can only be used with plain tables, not
+ with views.
</para>
<para>
diff --git a/doc/src/sgml/ref/declare.sgml b/doc/src/sgml/ref/declare.sgml
index 2801aeeabb2..f0673c44b67 100644
--- a/doc/src/sgml/ref/declare.sgml
+++ b/doc/src/sgml/ref/declare.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.20 2003/03/21 17:11:46 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.21 2003/03/27 16:51:27 momjian Exp $
PostgreSQL documentation
-->
@@ -21,8 +21,8 @@ PostgreSQL documentation
<date>1999-07-20</date>
</refsynopsisdivinfo>
<synopsis>
-DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INSENSITIVE ] [ SCROLL ]
- CURSOR FOR <replaceable class="parameter">query</replaceable>
+DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
+ CURSOR [ { WITH | WITHOUT } HOLD ] FOR <replaceable class="parameter">query</replaceable>
[ FOR { READ ONLY | UPDATE [ OF <replaceable class="parameter">column</replaceable> [, ...] ] ]
</synopsis>
<refsect2 id="R2-SQL-DECLARE-1">
@@ -38,7 +38,8 @@ DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INS
<term><replaceable class="parameter">cursorname</replaceable></term>
<listitem>
<para>
- The name of the cursor to be used in subsequent FETCH operations.
+ The name of the cursor to be used in subsequent
+ <command>FETCH</command> operations.
</para>
</listitem>
</varlistentry>
@@ -57,8 +58,20 @@ DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INS
<listitem>
<para>
<acronym>SQL92</acronym> keyword indicating that data retrieved
- from the cursor should be unaffected by updates from other processes or cursors.
- By default, all cursors are insensitive. This keyword has no effect.
+ from the cursor should be unaffected by updates from other
+ processes or cursors. By default, all cursors are insensitive.
+ This keyword currently has no effect and is present for
+ compatibility with the SQL standard.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>NO SCROLL</term>
+ <listitem>
+ <para>
+ Specifies that the cursor cannot be used to retrieve rows in a
+ nonsequential fashion (e.g., backward).
</para>
</listitem>
</varlistentry>
@@ -67,8 +80,33 @@ DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INS
<term>SCROLL</term>
<listitem>
<para>
- Specifies that the cursor may be used to retrieve rows
- in a nonsequential fashion (e.g., backwards).
+ Specifies that the cursor may be used to retrieve rows in a
+ nonsequential fashion (e.g., backward). Depending upon the
+ complexity of the query's execution plan, specifying
+ <literal>SCROLL</literal> may impose a slight performance penalty
+ on the query's execution time.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WITHOUT HOLD</term>
+ <listitem>
+ <para>
+ Specifies that the cursor cannot be used outside of the
+ transaction that created it. If neither <literal>WITHOUT
+ HOLD</literal> nor <literal>WITH HOLD</literal> is specified,
+ <literal>WITH HOLD</literal> is the default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WITH HOLD</term>
+ <listitem>
+ <para>
+ Specifies that the cursor may be used after the transaction
+ that creates it successfully commits.
</para>
</listitem>
</varlistentry>
@@ -124,7 +162,8 @@ DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INS
</para>
<para>
- The BINARY, INSENSITIVE, and SCROLL keywords may appear in any order.
+ The <literal>BINARY</literal>, <literal>INSENSITIVE</literal>,
+ <literal>SCROLL</literal> keywords may appear in any order.
</para>
</refsect2>
@@ -144,7 +183,7 @@ DECLARE CURSOR
</computeroutput></term>
<listitem>
<para>
- The message returned if the SELECT is run successfully.
+ The message returned if the <command>SELECT</command> is run successfully.
</para>
</listitem>
</varlistentry>
@@ -155,9 +194,8 @@ WARNING: Closing pre-existing portal "<replaceable class="parameter">cursorname
</computeroutput></term>
<listitem>
<para>
- This message is reported if the same cursor name was already declared
- in the current transaction block. The previous definition is
- discarded.
+ This message is reported if a cursor with the same name already
+ exists. The previous definition is discarded.
</para>
</listitem>
</varlistentry>
@@ -168,7 +206,9 @@ ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks
</computeroutput></term>
<listitem>
<para>
- This error occurs if the cursor is not declared within a transaction block.
+ This error occurs if the cursor is not declared within a
+ transaction block, and <literal>WITH HOLD</literal> is not
+ specified.
</para>
</listitem>
</varlistentry>
@@ -193,16 +233,14 @@ ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks
</para>
<para>
- Normal cursors return data in text format, the same as a <command>SELECT</>
- would produce. Since
- data is stored natively in binary format, the system must
- do a conversion to produce the text format. In addition,
- text formats are often larger in size than the corresponding binary format.
- Once the information comes back in text form, the client
- application may need to convert it to a binary format to
- manipulate it.
- BINARY cursors give you back the data in the native binary
- representation.
+ Normal cursors return data in text format, the same as a
+ <command>SELECT</> would produce. Since data is stored natively in
+ binary format, the system must do a conversion to produce the text
+ format. In addition, text formats are often larger in size than the
+ corresponding binary format. Once the information comes back in
+ text form, the client application may need to convert it to a
+ binary format to manipulate it. BINARY cursors give you back the
+ data in the native binary representation.
</para>
<para>
@@ -245,7 +283,9 @@ ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks
</title>
<para>
- Cursors are only available within transactions. Use
+ If <literal>WITH HOLD</literal> is not specified, the cursor
+ created by this command can only be used within the current
+ transaction. Use
<xref linkend="sql-begin" endterm="sql-begin-title">,
<xref linkend="sql-commit" endterm="sql-commit-title">
and
@@ -254,12 +294,25 @@ ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks
</para>
<para>
- The <literal>SCROLL</> option should be specified when defining a cursor
- that will be used to fetch backwards. This is required by
- <acronym>SQL92</acronym>. However, for compatibility with
- earlier versions, <productname>PostgreSQL</productname> will allow
- backward fetches without <literal>SCROLL</>, if the cursor's query plan
- is simple enough that no extra overhead is needed to support it.
+ If <literal>WITH HOLD</literal> is specified and the transaction
+ that created the cursor successfully commits, the cursor can be
+ accessed outside the creating transaction. If the creating
+ transaction is aborted, the cursor is removed. A cursor created
+ with <literal>WITH HOLD</literal> is closed when an explicit
+ <command>CLOSE</command> command is issued on it, or the client
+ connection is terminated.
+ </para>
+
+ <para>
+ The <literal>SCROLL</> option should be specified when defining a
+ cursor that will be used to fetch backwards. This is required by
+ <acronym>SQL92</acronym>. However, for compatibility with earlier
+ versions, <productname>PostgreSQL</productname> will allow
+ backward fetches without <literal>SCROLL</>, if the cursor's query
+ plan is simple enough that no extra overhead is needed to support
+ it. However, application developers are advised not to rely on
+ using backward fetches from a cursor that has not been created
+ with <literal>SCROLL</literal>.
</para>
<para>
@@ -271,7 +324,7 @@ ERROR: DECLARE CURSOR may only be used in begin/end transaction blocks
However, <application>ecpg</application>, the
embedded SQL preprocessor for <productname>PostgreSQL</productname>,
supports the <acronym>SQL92</acronym> cursor conventions, including those
- involving DECLARE and OPEN statements.
+ involving <command>DECLARE</command> and <command>OPEN</command> statements.
</para>
</refsect2>
</refsect1>
@@ -303,13 +356,21 @@ DECLARE liahona CURSOR
SQL92
</title>
<para>
- <acronym>SQL92</acronym> allows cursors only in embedded <acronym>SQL</acronym>
- and in modules. <productname>PostgreSQL</productname> permits cursors to be used
- interactively.
+ <para>
+ <acronym>SQL92</acronym> allows cursors only in embedded
+ <acronym>SQL</acronym> and in modules. <productname>PostgreSQL</>
+ permits cursors to be used interactively.
+ </para>
+
+ <para>
<acronym>SQL92</acronym> allows embedded or modular cursors to
- update database information.
- All <productname>PostgreSQL</productname> cursors are read only.
- The BINARY keyword is a <productname>PostgreSQL</productname> extension.
+ update database information. All <productname>PostgreSQL</>
+ cursors are read only.
+ </para>
+
+ <para>
+ The <literal>BINARY</literal> keyword is a
+ <productname>PostgreSQL</productname> extension.
</para>
</refsect2>
</refsect1>
diff --git a/doc/src/sgml/ref/fetch.sgml b/doc/src/sgml/ref/fetch.sgml
index 8f3244eb39f..a1f3b13719f 100644
--- a/doc/src/sgml/ref/fetch.sgml
+++ b/doc/src/sgml/ref/fetch.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.27 2003/03/11 19:40:22 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.28 2003/03/27 16:51:27 momjian Exp $
PostgreSQL documentation
-->
@@ -251,8 +251,7 @@ WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</rep
</computeroutput></term>
<listitem>
<para>
- If <replaceable class="PARAMETER">cursor</replaceable> is not known.
- The cursor must have been declared within the current transaction block.
+ There is no cursor with the specified name.
</para>
</listitem>
</varlistentry>
@@ -326,7 +325,9 @@ WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</rep
use any variants of <command>FETCH</> other than <command>FETCH NEXT</>
or <command>FETCH FORWARD</> with a positive count. For simple queries
<productname>PostgreSQL</productname> will allow backwards fetch from
- cursors not declared with SCROLL, but this behavior is best not relied on.
+ cursors not declared with SCROLL, but this behavior is best not
+ relied on. If the cursor is declared with NO SCROLL, no backward
+ fetches are allowed.
</para>
<para>
@@ -339,16 +340,11 @@ WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</rep
</para>
<para>
- Updating data via a cursor is not supported by
- <productname>PostgreSQL</productname>,
- because mapping cursor updates back to base tables is
- not generally possible, as is also the case with VIEW updates.
- Consequently,
- users must issue explicit UPDATE commands to replace data.
- </para>
-
- <para>
- Cursors may only be used inside transaction blocks.
+ Updating data via a cursor is not supported by
+ <productname>PostgreSQL</productname>, because mapping cursor
+ updates back to base tables is not generally possible, as is also
+ the case with view updates. Consequently, users must issue
+ explicit <command>UPDATE</command> commands to replace data.
</para>
<para>
@@ -357,12 +353,6 @@ WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</rep
Use
<xref linkend="sql-move" endterm="sql-move-title">
to change cursor position without retrieving data.
- Refer to
- <xref linkend="sql-begin" endterm="sql-begin-title">,
- <xref linkend="sql-commit" endterm="sql-commit-title">,
- and
- <xref linkend="sql-rollback" endterm="sql-rollback-title">
- for further information about transactions.
</para>
</refsect2>
</refsect1>
@@ -379,7 +369,7 @@ WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</rep
-- Set up and use a cursor:
BEGIN WORK;
-DECLARE liahona CURSOR FOR SELECT * FROM films;
+DECLARE liahona SCROLL CURSOR FOR SELECT * FROM films;
-- Fetch first 5 rows in the cursor liahona:
FETCH FORWARD 5 IN liahona;
@@ -425,9 +415,10 @@ COMMIT WORK;
</title>
<para>
- <acronym>SQL92</acronym> defines FETCH for use in embedded contexts only.
- Therefore, it describes placing the results into explicit variables using
- an <literal>INTO</> clause, for example:
+ <acronym>SQL92</acronym> defines <command>FETCH</command> for use
+ in embedded contexts only. Therefore, it describes placing the
+ results into explicit variables using an <literal>INTO</> clause,
+ for example:
<synopsis>
FETCH ABSOLUTE <replaceable class="PARAMETER">n</replaceable>
@@ -435,16 +426,18 @@ FETCH ABSOLUTE <replaceable class="PARAMETER">n</replaceable>
INTO :<replaceable class="PARAMETER">variable</replaceable> [, ...]
</synopsis>
- <productname>PostgreSQL</productname>'s use of non-embedded cursors
- is non-standard, and so is its practice of returning the result data
- as if it were a SELECT result. Other than this point, FETCH is fully
+ <productname>PostgreSQL</productname>'s use of non-embedded
+ cursors is non-standard, and so is its practice of returning the
+ result data as if it were a <command>SELECT</command> result.
+ Other than this point, <command>FETCH</command> is fully
upward-compatible with <acronym>SQL92</acronym>.
</para>
<para>
- The FETCH forms involving FORWARD and BACKWARD (including the forms
- FETCH <replaceable class="PARAMETER">count</replaceable> and FETCH ALL,
- in which FORWARD is implicit) are <productname>PostgreSQL</productname>
+ The <command>FETCH</command> forms involving FORWARD and BACKWARD
+ (including the forms FETCH <replaceable
+ class="PARAMETER">count</replaceable> and FETCH ALL, in which
+ FORWARD is implicit) are <productname>PostgreSQL</productname>
extensions.
</para>
diff --git a/doc/src/sgml/ref/move.sgml b/doc/src/sgml/ref/move.sgml
index f01ee9d8a58..cd6d6aca0fd 100644
--- a/doc/src/sgml/ref/move.sgml
+++ b/doc/src/sgml/ref/move.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/move.sgml,v 1.20 2003/03/11 19:40:22 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/move.sgml,v 1.21 2003/03/27 16:51:27 momjian Exp $
PostgreSQL documentation
-->
@@ -64,12 +64,6 @@ MOVE [ <replaceable class="PARAMETER">direction</replaceable> { FROM | IN } ] <r
Refer to
<xref linkend="sql-declare" endterm="sql-declare-title">
to define a cursor.
- Refer to
- <xref linkend="sql-begin" endterm="sql-begin-title">,
- <xref linkend="sql-commit" endterm="sql-commit-title">,
- and
- <xref linkend="sql-rollback" endterm="sql-rollback-title">
- for further information about transactions.
</para>
</refsect2>
</refsect1>
@@ -83,7 +77,7 @@ MOVE [ <replaceable class="PARAMETER">direction</replaceable> { FROM | IN } ] <r
<programlisting>
BEGIN WORK;
-DECLARE liahona CURSOR FOR SELECT * FROM films;
+DECLARE liahona CURSOR FOR SELECT * FROM films;
-- Skip first 5 rows:
MOVE FORWARD 5 IN liahona;
<computeroutput>
diff --git a/doc/src/sgml/sql.sgml b/doc/src/sgml/sql.sgml
index 9e788ff0616..89de6668028 100644
--- a/doc/src/sgml/sql.sgml
+++ b/doc/src/sgml/sql.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/sql.sgml,v 1.29 2003/02/19 04:06:28 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/sql.sgml,v 1.30 2003/03/27 16:51:26 momjian Exp $
-->
<chapter id="sql">
@@ -851,7 +851,7 @@ A &lt; B + 3.
<para>
The most often used command in <acronym>SQL</acronym> is the
- SELECT statement,
+ <command>SELECT</command> statement,
used to retrieve data. The syntax is:
<synopsis>
@@ -881,7 +881,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
<title>Simple Selects</title>
<para>
- Here are some simple examples using a SELECT statement:
+ Here are some simple examples using a <command>SELECT</command> statement:
<example>
<title id="simple-query">Simple Query with Qualification</title>
@@ -905,9 +905,10 @@ SELECT * FROM PART
</para>
<para>
- Using <quote>*</quote> in the SELECT statement will deliver all attributes from
- the table. If we want to retrieve only the attributes PNAME and PRICE
- from table PART we use the statement:
+ Using <quote>*</quote> in the <command>SELECT</command> statement
+ will deliver all attributes from the table. If we want to retrieve
+ only the attributes PNAME and PRICE from table PART we use the
+ statement:
<programlisting>
SELECT PNAME, PRICE
@@ -924,9 +925,9 @@ SELECT PNAME, PRICE
Cam | 25
</programlisting>
- Note that the <acronym>SQL</acronym> SELECT corresponds to the
- <quote>projection</quote> in relational algebra not to the
- <quote>selection</quote> (see <xref linkend="rel-alg"
+ Note that the <acronym>SQL</acronym> <command>SELECT</command>
+ corresponds to the <quote>projection</quote> in relational algebra
+ not to the <quote>selection</quote> (see <xref linkend="rel-alg"
endterm="rel-alg"> for more details).
</para>
@@ -1252,15 +1253,15 @@ select sname, pname from supplier
<title id="aggregates-tutorial">Aggregate Operators</title>
<para>
- <acronym>SQL</acronym> provides aggregate operators
- (e.g. AVG, COUNT, SUM, MIN, MAX) that
- take an expression as argument. The expression is evaluated at
- each row that satisfies the WHERE clause, and the aggregate operator
- is calculated over this set of input values. Normally, an aggregate
- delivers a single result for a whole SELECT statement. But if
- grouping is specified in the query, then a separate calculation is done
- over the rows of each group, and an aggregate result is delivered per
- group (see next section).
+ <acronym>SQL</acronym> provides aggregate operators (e.g. AVG,
+ COUNT, SUM, MIN, MAX) that take an expression as argument. The
+ expression is evaluated at each row that satisfies the WHERE
+ clause, and the aggregate operator is calculated over this set
+ of input values. Normally, an aggregate delivers a single
+ result for a whole <command>SELECT</command> statement. But if
+ grouping is specified in the query, then a separate calculation
+ is done over the rows of each group, and an aggregate result is
+ delivered per group (see next section).
<example>
<title id="aggregates-example">Aggregates</title>
@@ -1413,11 +1414,12 @@ SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
</para>
<para>
- Also observe that it makes no sense to ask for an aggregate of an
- aggregate, e.g., AVG(MAX(sno)), because a SELECT only does one pass
- of grouping and aggregation. You can get a result of this kind by
- using a temporary table or a sub-SELECT in the FROM clause to
- do the first level of aggregation.
+ Also observe that it makes no sense to ask for an aggregate of
+ an aggregate, e.g., AVG(MAX(sno)), because a
+ <command>SELECT</command> only does one pass of grouping and
+ aggregation. You can get a result of this kind by using a
+ temporary table or a sub-SELECT in the FROM clause to do the
+ first level of aggregation.
</para>
</sect3>
@@ -1502,16 +1504,18 @@ SELECT *
</para>
<para>
- When we look at the above query we can see
- the keyword SELECT two times. The first one at the beginning of the
- query - we will refer to it as outer SELECT - and the one in the WHERE
- clause which begins a nested query - we will refer to it as inner
- SELECT. For every tuple of the outer SELECT the inner SELECT has to be
- evaluated. After every evaluation we know the price of the tuple named
- 'Screw' and we can check if the price of the actual tuple is
- greater. (Actually, in this example the inner query need only be
- evaluated once, since it does not depend on the state of the outer
- query.)
+ When we look at the above query we can see the keyword
+ <command>SELECT</command> two times. The first one at the
+ beginning of the query - we will refer to it as outer
+ <command>SELECT</command> - and the one in the WHERE clause which
+ begins a nested query - we will refer to it as inner
+ <command>SELECT</command>. For every tuple of the outer
+ <command>SELECT</command> the inner <command>SELECT</command> has
+ to be evaluated. After every evaluation we know the price of the
+ tuple named 'Screw' and we can check if the price of the actual
+ tuple is greater. (Actually, in this example the inner query need
+ only be evaluated once, since it does not depend on the state of
+ the outer query.)
</para>
<para>
@@ -1528,11 +1532,13 @@ SELECT *
</para>
<para>
- In our example the result will be empty because every supplier sells
- at least one part. Note that we use S.SNO from the outer SELECT within
- the WHERE clause of the inner SELECT. Here the subquery must be
- evaluated afresh for each tuple from the outer query, i.e. the value for
- S.SNO is always taken from the current tuple of the outer SELECT.
+ In our example the result will be empty because every supplier
+ sells at least one part. Note that we use S.SNO from the outer
+ <command>SELECT</command> within the WHERE clause of the inner
+ <command>SELECT</command>. Here the subquery must be evaluated
+ afresh for each tuple from the outer query, i.e. the value for
+ S.SNO is always taken from the current tuple of the outer
+ <command>SELECT</command>.
</para>
</example>
</para>
@@ -1670,7 +1676,7 @@ EXCEPT
<para>
The most fundamental command for data definition is the
one that creates a new relation (a new table). The syntax of the
- CREATE TABLE command is:
+ <command>CREATE TABLE</command> command is:
<synopsis>
CREATE TABLE <replaceable class="parameter">table_name</replaceable>
@@ -1786,7 +1792,7 @@ CREATE TABLE SELLS
<para>
To create an index in <acronym>SQL</acronym>
- the CREATE INDEX command is used. The syntax is:
+ the <command>CREATE INDEX</command> command is used. The syntax is:
<programlisting>
CREATE INDEX <replaceable class="parameter">index_name</replaceable>
@@ -1808,10 +1814,11 @@ CREATE INDEX I ON SUPPLIER (SNAME);
</para>
<para>
- The created index is maintained automatically, i.e. whenever a new tuple
- is inserted into the relation SUPPLIER the index I is adapted. Note
- that the only changes a user can perceive when an index is present
- are increased speed for SELECT and decreases in speed of updates.
+ The created index is maintained automatically, i.e. whenever a new
+ tuple is inserted into the relation SUPPLIER the index I is
+ adapted. Note that the only changes a user can perceive when an
+ index is present are increased speed for <command>SELECT</command>
+ and decreases in speed of updates.
</para>
</example>
</para>
@@ -1916,7 +1923,7 @@ SELECT * FROM London_Suppliers
<para>
To destroy a table (including all tuples stored in that table) the
- DROP TABLE command is used:
+ <command>DROP TABLE</command> command is used:
<programlisting>
DROP TABLE <replaceable class="parameter">table_name</replaceable>;
@@ -1932,7 +1939,7 @@ DROP TABLE SUPPLIER;
</para>
<para>
- The DROP INDEX command is used to destroy an index:
+ The <command>DROP INDEX</command> command is used to destroy an index:
<programlisting>
DROP INDEX <replaceable class="parameter">index_name</replaceable>;
@@ -1940,7 +1947,8 @@ DROP INDEX <replaceable class="parameter">index_name</replaceable>;
</para>
<para>
- Finally to destroy a given view use the command DROP VIEW:
+ Finally to destroy a given view use the command <command>DROP
+ VIEW</command>:
<programlisting>
DROP VIEW <replaceable class="parameter">view_name</replaceable>;
@@ -1994,7 +2002,7 @@ INSERT INTO SELLS (SNO, PNO)
<para>
To change one or more attribute values of tuples in a relation the
- UPDATE command is used. The syntax is:
+ <command>UPDATE</command> command is used. The syntax is:
<programlisting>
UPDATE <replaceable class="parameter">table_name</replaceable>
@@ -2126,7 +2134,7 @@ DELETE FROM SUPPLIER
need a mechanism to access every single tuple of the set of tuples
returned by a SELECT statement. This mechanism can be provided by
declaring a <firstterm>cursor</firstterm>.
- After that we can use the FETCH command to
+ After that we can use the <command>FETCH</command> command to
retrieve a tuple and set the cursor to the next tuple.
</para>