Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix broken links in the SQL Syntax document. CVSTrac ticket #2783. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
4f5adc7af26df28e61a1a5bacde93557 |
User & Date: | drh 2007-11-21 14:00:35.000 |
Context
2007-11-22
| ||
00:43 | Fix broken links in capi3ref.html. CVSTrac ticket #2785. (check-in: 32573eb907 user: drh tags: trunk) | |
2007-11-21
| ||
14:00 | Fix broken links in the SQL Syntax document. CVSTrac ticket #2783. (check-in: 4f5adc7af2 user: drh tags: trunk) | |
13:45 | Fix a bug in cookie management in althttpd.c (check-in: 0faf241992 user: drh tags: trunk) | |
Changes
Changes to pages/lang.in.
︙ | ︙ | |||
54 55 56 57 58 59 60 | {{ATTACH DATABASE} attach} {{DETACH DATABASE} detach} {REINDEX reindex} {{ALTER TABLE} altertable} {{ANALYZE} analyze} }] { foreach {s_title s_tag} $section {} | > > > | > > | 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | {{ATTACH DATABASE} attach} {{DETACH DATABASE} detach} {REINDEX reindex} {{ALTER TABLE} altertable} {{ANALYZE} analyze} }] { foreach {s_title s_tag} $section {} if {$s_tag=="pragma.html"} { set url $s_tag } else { set url lang_$s_tag.html } puts "<li><a href=\"$url\">$s_title</a></li>" incr i if {$i==15} { puts "</ul></td><td valign=\"top\"><ul>" } } </tcl> </ul></td></tr></table> |
︙ | ︙ | |||
165 166 167 168 169 170 171 | in that one database are analyzed. If the argument is a table name, then only indices associated with that one table are analyzed.</p> <p>The initial implementation stores all statistics in a single table named <b>sqlite_stat1</b>. Future enhancements may create additional tables with the same name pattern except with the "1" changed to a different digit. The <b>sqlite_stat1</b> table cannot | | | | | 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | in that one database are analyzed. If the argument is a table name, then only indices associated with that one table are analyzed.</p> <p>The initial implementation stores all statistics in a single table named <b>sqlite_stat1</b>. Future enhancements may create additional tables with the same name pattern except with the "1" changed to a different digit. The <b>sqlite_stat1</b> table cannot be <a href="lang_droptable.html">DROP</a>ped, but all the content can be <a href="lang_delete.html">DELETE</a>d which has the same effect.</p> <tcl> Section {ATTACH DATABASE} attach Syntax {sql-statement} { ATTACH [DATABASE] <database-filename> AS <database-name> } </tcl> <p>The ATTACH DATABASE statement adds another database file to the current database connection. If the filename contains punctuation characters it must be quoted. The names 'main' and 'temp' refer to the main database and the database used for temporary tables. These cannot be detached. Attached databases are removed using the <a href="lang_detach.html">DETACH DATABASE</a> statement.</p> <p>You can read from and write to an attached database and you can modify the schema of the attached database. This is a new feature of SQLite version 3.0. In SQLite 2.8, schema changes to attached databases were not allowed.</p> |
︙ | ︙ | |||
252 253 254 255 256 257 258 | <p> Transactions can be started manually using the BEGIN command. Such transactions usually persist until the next COMMIT or ROLLBACK command. But a transaction will also ROLLBACK if the database is closed or if an error occurs and the ROLLBACK conflict resolution algorithm is specified. | | | 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | <p> Transactions can be started manually using the BEGIN command. Such transactions usually persist until the next COMMIT or ROLLBACK command. But a transaction will also ROLLBACK if the database is closed or if an error occurs and the ROLLBACK conflict resolution algorithm is specified. See the documentation on the <a href="lang_conflict.html">ON CONFLICT</a> clause for additional information about the ROLLBACK conflict resolution algorithm. </p> <p> END TRANSACTION is an alias for COMMIT. </p> |
︙ | ︙ | |||
420 421 422 423 424 425 426 | all CREATE INDEX statements are read from the <b>sqlite_master</b> table and used to regenerate SQLite's internal representation of the index layout.</p> <p>If the optional IF NOT EXISTS clause is present and another index with the same name aleady exists, then this command becomes a no-op.</p> | | | 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 | all CREATE INDEX statements are read from the <b>sqlite_master</b> table and used to regenerate SQLite's internal representation of the index layout.</p> <p>If the optional IF NOT EXISTS clause is present and another index with the same name aleady exists, then this command becomes a no-op.</p> <p>Indexes are removed with the <a href="lang_dropindex.html">DROP INDEX</a> command.</p> <tcl> ############################################################################## Section {CREATE TABLE} {createtable} |
︙ | ︙ | |||
541 542 543 544 545 546 547 | constraint conflict resolution algorithm for that constraint. The default is abort ABORT. Different constraints within the same table may have different default conflict resolution algorithms. If an COPY, INSERT, or UPDATE command specifies a different conflict resolution algorithm, then that algorithm is used in place of the default algorithm specified in the CREATE TABLE statement. See the section titled | | | 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 | constraint conflict resolution algorithm for that constraint. The default is abort ABORT. Different constraints within the same table may have different default conflict resolution algorithms. If an COPY, INSERT, or UPDATE command specifies a different conflict resolution algorithm, then that algorithm is used in place of the default algorithm specified in the CREATE TABLE statement. See the section titled <a href="lang_conflict.html">ON CONFLICT</a> for additional information.</p> <p>CHECK constraints are supported as of version 3.3.0. Prior to version 3.3.0, CHECK constraints were parsed but not enforced.</p> <p>There are no arbitrary limits on the number of columns or on the number of constraints in a table. The total amount of data in a single row is limited to about |
︙ | ︙ | |||
572 573 574 575 576 577 578 | The text of CREATE TEMPORARY TABLE statements are stored in the <b>sqlite_temp_master</b> table. </p> <p>If the optional IF NOT EXISTS clause is present and another table with the same name aleady exists, then this command becomes a no-op.</p> | | | 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 | The text of CREATE TEMPORARY TABLE statements are stored in the <b>sqlite_temp_master</b> table. </p> <p>If the optional IF NOT EXISTS clause is present and another table with the same name aleady exists, then this command becomes a no-op.</p> <p>Tables are removed using the <a href="lang_droptable.html">DROP TABLE</a> statement. </p> <tcl> ############################################################################## Section {CREATE TRIGGER} createtrigger Syntax {sql-statement} { |
︙ | ︙ | |||
727 728 729 730 731 732 733 | the statement that caused the trigger program to execute and any subsequent trigger programs that would of been executed are abandoned. No database changes are rolled back. If the statement that caused the trigger program to execute is itself part of a trigger program, then that trigger program resumes execution at the beginning of the next step. </p> | | | | | > | | | 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 | the statement that caused the trigger program to execute and any subsequent trigger programs that would of been executed are abandoned. No database changes are rolled back. If the statement that caused the trigger program to execute is itself part of a trigger program, then that trigger program resumes execution at the beginning of the next step. </p> <p>Triggers are removed using the <a href="lang_droptrigger.html">DROP TRIGGER</a> statement.</p> <tcl> ############################################################################### Section {CREATE VIEW} {createview} Syntax {sql-command} { CREATE [TEMP | TEMPORARY] VIEW [IF NOT EXISTS] [<database-name>.] <view-name> AS <select-statement> } </tcl> <p>The CREATE VIEW command assigns a name to a pre-packaged <a href="lang_select.html">SELECT</a> statement. Once the view is created, it can be used in the FROM clause of another SELECT in place of a table name. </p> <p>If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "VIEW" then the view that is created is only visible to the process that opened the database and is automatically deleted when the database is closed.</p> <p> If a <database-name> is specified, then the view is created in the named database. It is an error to specify both a <database-name> and the TEMP keyword, unless the <database-name> is "temp". If no database name is specified, and the TEMP keyword is not present, the table is created in the main database.</p> <p>You cannot COPY, DELETE, INSERT or UPDATE a view. Views are read-only in SQLite. However, in many cases you can use a <a href="lang_createtrigger.html">TRIGGER</a> on the view to accomplish the same thing. Views are removed with the <a href="lang_dropview.html">DROP VIEW</a> command.</p> <tcl> ############################################################################## Section {CREATE VIRTUAL TABLE} {createvtab} Syntax {sql-command} { |
︙ | ︙ | |||
790 791 792 793 794 795 796 | the SQLite database connection using sqlite3_create_module() prior to issuing the CREATE VIRTUAL TABLE statement. The module takes zero or more comma-separated arguments. The arguments can be just about any text as long as it has balanced parentheses. The argument syntax is sufficiently general that the arguments can be made to appear as column definitions in a traditional | | | | 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 | the SQLite database connection using sqlite3_create_module() prior to issuing the CREATE VIRTUAL TABLE statement. The module takes zero or more comma-separated arguments. The arguments can be just about any text as long as it has balanced parentheses. The argument syntax is sufficiently general that the arguments can be made to appear as column definitions in a traditional <a href="lang_createtable.html">CREATE TABLE</a> statement. SQLite passes the module arguments directly to the module without any interpretation. It is the responsibility of the module implementation to parse and interpret its own arguments.</p> <p>A virtual table is destroyed using the ordinary <a href="lang_droptable.html">DROP TABLE</a> statement. There is no DROP VIRTUAL TABLE statement.</p> <tcl> ############################################################################## Section DELETE delete Syntax {sql-statement} { |
︙ | ︙ | |||
827 828 829 830 831 832 833 | Syntax {sql-command} { DETACH [DATABASE] <database-name> } </tcl> <p>This statement detaches an additional database connection previously | | | | | > | | > | | | 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 | Syntax {sql-command} { DETACH [DATABASE] <database-name> } </tcl> <p>This statement detaches an additional database connection previously attached using the <a href="lang_attach.html">ATTACH DATABASE</a> statement. It is possible to have the same database file attached multiple times using different names, and detaching one connection to a file will leave the others intact.</p> <p>This statement will fail if SQLite is in the middle of a transaction.</p> <tcl> ############################################################################## Section {DROP INDEX} dropindex Syntax {sql-command} { DROP INDEX [IF EXISTS] [<database-name> .] <index-name> } </tcl> <p>The DROP INDEX statement removes an index added with the <a href="lang_createindex.html"> CREATE INDEX</a> statement. The index named is completely removed from the disk. The only way to recover the index is to reenter the appropriate CREATE INDEX command.</p> <p>The DROP INDEX statement does not reduce the size of the database file in the default mode. Empty space in the database is retained for later INSERTs. To remove free space in the database, use the <a href="lang_vacuum.html">VACUUM</a> command. If AUTOVACUUM mode is enabled for a database then space will be freed automatically by DROP INDEX.</p> <tcl> ############################################################################## Section {DROP TABLE} droptable Syntax {sql-command} { DROP TABLE [IF EXISTS] [<database-name>.] <table-name> } </tcl> <p>The DROP TABLE statement removes a table added with the <a href= "lang_createtable.html">CREATE TABLE</a> statement. The name specified is the table name. It is completely removed from the database schema and the disk file. The table can not be recovered. All indices associated with the table are also deleted.</p> <p>The DROP TABLE statement does not reduce the size of the database file in the default mode. Empty space in the database is retained for later INSERTs. To remove free space in the database, use the <a href="lang_vacuum.html">VACUUM</a> command. If AUTOVACUUM mode is enabled for a database then space will be freed automatically by DROP TABLE.</p> <p>The optional IF EXISTS clause suppresses the error that would normally result if the table does not exist.</p> <tcl> ############################################################################## Section {DROP TRIGGER} droptrigger Syntax {sql-statement} { DROP TRIGGER [IF EXISTS] [<database-name> .] <trigger-name> } </tcl> <p>The DROP TRIGGER statement removes a trigger created by the <a href="lang_createtrigger.html">CREATE TRIGGER</a> statement. The trigger is deleted from the database schema. Note that triggers are automatically dropped when the associated table is dropped.</p> <tcl> ############################################################################## Section {DROP VIEW} dropview Syntax {sql-command} { DROP VIEW [IF EXISTS] <view-name> } </tcl> <p>The DROP VIEW statement removes a view created by the <a href= "lang_createview.html">CREATE VIEW</a> statement. The name specified is the view name. It is removed from the database schema, but no actual data in the underlying base tables is modified.</p> <tcl> ############################################################################## Section EXPLAIN explain |
︙ | ︙ | |||
1565 1566 1567 1568 1569 1570 1571 | name in the column list. A new entry is made in the table for every row of the SELECT result. The SELECT may be simple or compound.</p> <p>The optional conflict-clause allows the specification of an alternative constraint conflict resolution algorithm to use during this one command. See the section titled | | > | | 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 | name in the column list. A new entry is made in the table for every row of the SELECT result. The SELECT may be simple or compound.</p> <p>The optional conflict-clause allows the specification of an alternative constraint conflict resolution algorithm to use during this one command. See the section titled <a href="lang_conflict.html">ON CONFLICT</a> for additional information. For compatibility with MySQL, the parser allows the use of the single keyword <a href="lange_replace.html">REPLACE</a> as an alias for "INSERT OR REPLACE". </p> <tcl> ############################################################################## Section {ON CONFLICT clause} conflict Syntax {conflict-clause} { |
︙ | ︙ | |||
1689 1690 1691 1692 1693 1694 1695 | Syntax {sql-statement} { REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] VALUES ( <value-list> ) | REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] <select-statement> } </tcl> <p>The REPLACE command is an alias for the "INSERT OR REPLACE" variant | > | | | 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 | Syntax {sql-statement} { REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] VALUES ( <value-list> ) | REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] <select-statement> } </tcl> <p>The REPLACE command is an alias for the "INSERT OR REPLACE" variant of the <a href="lang_insert.html">INSERT</a> command. This alias is provided for compatibility with MySQL. See the <a href="lang_insert.html">INSERT</a> command documentation for additional information.</p> <tcl> ############################################################################### Section SELECT select Syntax {sql-statement} { |
︙ | ︙ | |||
1827 1828 1829 1830 1831 1832 1833 | to the right. The expressions may use the values of other columns. All expressions are evaluated before any assignments are made. A WHERE clause can be used to restrict which rows are updated.</p> <p>The optional conflict-clause allows the specification of an alternative constraint conflict resolution algorithm to use during this one command. See the section titled | | | 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 | to the right. The expressions may use the values of other columns. All expressions are evaluated before any assignments are made. A WHERE clause can be used to restrict which rows are updated.</p> <p>The optional conflict-clause allows the specification of an alternative constraint conflict resolution algorithm to use during this one command. See the section titled <a href="lang_conflict.html">ON CONFLICT</a> for additional information.</p> <tcl> ############################################################################## Section VACUUM vacuum Syntax {sql-statement} { |
︙ | ︙ |