mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-11-03 16:53:36 +03:00 
			
		
		
		
	Updates to the sqlite3 command-line shell documentation. Ticket #2144. (CVS 3573)
FossilOrigin-Name: 3a422bb9eedf5357ce4d3bed68981c000eb96ee4
This commit is contained in:
		
							
								
								
									
										14
									
								
								manifest
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								manifest
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
C Add\sthe\s$(BEXE)\ssuffix\sto\severy\smention\sof\s"lemon"\sin\sthe\sMakefile.in,\nso\sthat\sthe\sbuild\swill\swork\son\sOS/2.\s\sTicket\s#2149.\s(CVS\s3571)
 | 
					C Updates\sto\sthe\ssqlite3\scommand-line\sshell\sdocumentation.\s\sTicket\s#2144.\s(CVS\s3573)
 | 
				
			||||||
D 2007-01-08T13:40:36
 | 
					D 2007-01-08T14:31:36
 | 
				
			||||||
F Makefile.in 7fa74bf4359aa899da5586e394d17735f221315f
 | 
					F Makefile.in 7fa74bf4359aa899da5586e394d17735f221315f
 | 
				
			||||||
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 | 
					F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 | 
				
			||||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
 | 
					F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
 | 
				
			||||||
@@ -94,7 +94,7 @@ F src/printf.c b179b6ed12f793e028dd169e2e2e2b2a37eedc63
 | 
				
			|||||||
F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
 | 
					F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
 | 
				
			||||||
F src/select.c 52f09127b53697b1a95835a9b0db9309cca8079f
 | 
					F src/select.c 52f09127b53697b1a95835a9b0db9309cca8079f
 | 
				
			||||||
F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
 | 
					F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
 | 
				
			||||||
F src/shell.c f270a7996e30ef997500f2447d4c4a27b8809f0c
 | 
					F src/shell.c d13ca007cd18192c07a668aeddcdd6a9fe639be9
 | 
				
			||||||
F src/sqlite.h.in 2931f7ee2415e7a49fd12f386c23575046f0f540
 | 
					F src/sqlite.h.in 2931f7ee2415e7a49fd12f386c23575046f0f540
 | 
				
			||||||
F src/sqlite3ext.h 2c2156cc32a158e2b7bd9042d42accf94bff2e40
 | 
					F src/sqlite3ext.h 2c2156cc32a158e2b7bd9042d42accf94bff2e40
 | 
				
			||||||
F src/sqliteInt.h 90dad3c0ba7a5151c48361748ccdada9ff2eff78
 | 
					F src/sqliteInt.h 90dad3c0ba7a5151c48361748ccdada9ff2eff78
 | 
				
			||||||
@@ -417,14 +417,14 @@ F www/quickstart.tcl 8708a4ca83fbf55c66af1782992626f20c3df095
 | 
				
			|||||||
F www/shared.gif 265bae80c5b311c5a86e47662821076ffaf5c6ea
 | 
					F www/shared.gif 265bae80c5b311c5a86e47662821076ffaf5c6ea
 | 
				
			||||||
F www/sharedcache.tcl 3ebec81110e606af6fd65a3c4c19562cb173b29c
 | 
					F www/sharedcache.tcl 3ebec81110e606af6fd65a3c4c19562cb173b29c
 | 
				
			||||||
F www/speed.tcl 656ed5be8cc9d536353e1a96927b925634a62933
 | 
					F www/speed.tcl 656ed5be8cc9d536353e1a96927b925634a62933
 | 
				
			||||||
F www/sqlite.tcl d048c176c42fd464fe4fa2bc712041594d48a7cc
 | 
					F www/sqlite.tcl abb87f0d74a4fe9642987466bb59fe6abada988f
 | 
				
			||||||
F www/support.tcl 7961ce16290692578d783bb11f0dc8391a9be9c3
 | 
					F www/support.tcl 7961ce16290692578d783bb11f0dc8391a9be9c3
 | 
				
			||||||
F www/table-ex1b2.gif a588d21a2d88bb2a2ef0431fcc5ed5aa48c0bbc5
 | 
					F www/table-ex1b2.gif a588d21a2d88bb2a2ef0431fcc5ed5aa48c0bbc5
 | 
				
			||||||
F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 | 
					F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 | 
				
			||||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 | 
					F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 | 
				
			||||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 | 
					F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 | 
				
			||||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
 | 
					F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
 | 
				
			||||||
P 52067937803e6b36afc8f11c5d24059414208b77
 | 
					P f5989a0bd3c218b13332896d94ef85e96befd16f
 | 
				
			||||||
R 3218b3f5f5302cf172ef4da1f54594a9
 | 
					R 0562991cec1a275683a938a14875e938
 | 
				
			||||||
U drh
 | 
					U drh
 | 
				
			||||||
Z 531a4ace40faa7f01d5bbab9bdbb6578
 | 
					Z e4c92280495704ddfa5f0558fd43c7d5
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
f5989a0bd3c218b13332896d94ef85e96befd16f
 | 
					3a422bb9eedf5357ce4d3bed68981c000eb96ee4
 | 
				
			||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
** This file contains code to implement the "sqlite" command line
 | 
					** This file contains code to implement the "sqlite" command line
 | 
				
			||||||
** utility for accessing SQLite databases.
 | 
					** utility for accessing SQLite databases.
 | 
				
			||||||
**
 | 
					**
 | 
				
			||||||
** $Id: shell.c,v 1.157 2006/12/19 18:47:41 drh Exp $
 | 
					** $Id: shell.c,v 1.158 2007/01/08 14:31:36 drh Exp $
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
@@ -821,6 +821,7 @@ static int run_schema_dump_query(
 | 
				
			|||||||
** Text of a help message
 | 
					** Text of a help message
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
static char zHelp[] =
 | 
					static char zHelp[] =
 | 
				
			||||||
 | 
					  ".bail ON|OFF           Stop after hitting an error.  Default OFF\n"
 | 
				
			||||||
  ".databases             List names and files of attached databases\n"
 | 
					  ".databases             List names and files of attached databases\n"
 | 
				
			||||||
  ".dump ?TABLE? ...      Dump the database in an SQL text format\n"
 | 
					  ".dump ?TABLE? ...      Dump the database in an SQL text format\n"
 | 
				
			||||||
  ".echo ON|OFF           Turn command echo on or off\n"
 | 
					  ".echo ON|OFF           Turn command echo on or off\n"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										165
									
								
								www/sqlite.tcl
									
									
									
									
									
								
							
							
						
						
									
										165
									
								
								www/sqlite.tcl
									
									
									
									
									
								
							@@ -1,23 +1,23 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# Run this Tcl script to generate the sqlite.html file.
 | 
					# Run this Tcl script to generate the sqlite.html file.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
set rcsid {$Id: sqlite.tcl,v 1.24 2006/08/19 13:32:05 drh Exp $}
 | 
					set rcsid {$Id: sqlite.tcl,v 1.25 2007/01/08 14:31:36 drh Exp $}
 | 
				
			||||||
source common.tcl
 | 
					source common.tcl
 | 
				
			||||||
header {sqlite: A command-line access program for SQLite databases}
 | 
					header {sqlite3: A command-line access program for SQLite databases}
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<h2>sqlite: A command-line access program for SQLite databases</h2>
 | 
					<h2>sqlite3: A command-line access program for SQLite databases</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>The SQLite library includes a simple command-line utility named
 | 
					<p>The SQLite library includes a simple command-line utility named
 | 
				
			||||||
<b>sqlite</b> that allows the user to manually enter and execute SQL
 | 
					<b>sqlite3</b> that allows the user to manually enter and execute SQL
 | 
				
			||||||
commands against an SQLite database.  This document provides a brief
 | 
					commands against an SQLite database.  This document provides a brief
 | 
				
			||||||
introduction on how to use <b>sqlite</b>.
 | 
					introduction on how to use <b>sqlite3</b>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h3>Getting Started</h3>
 | 
					<h3>Getting Started</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>To start the <b>sqlite</b> program, just type "sqlite" followed by
 | 
					<p>To start the <b>sqlite3</b> program, just type "sqlite3" followed by
 | 
				
			||||||
the name the file that holds the SQLite database.  If the file does
 | 
					the name the file that holds the SQLite database.  If the file does
 | 
				
			||||||
not exist, a new one is created automatically.
 | 
					not exist, a new one is created automatically.
 | 
				
			||||||
The <b>sqlite</b> program will
 | 
					The <b>sqlite3</b> program will
 | 
				
			||||||
then prompt you to enter SQL.  Type in SQL statements (terminated by a
 | 
					then prompt you to enter SQL.  Type in SQL statements (terminated by a
 | 
				
			||||||
semicolon), press "Enter" and the SQL will be executed.</p>
 | 
					semicolon), press "Enter" and the SQL will be executed.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -39,8 +39,8 @@ proc Code {body} {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((sqlite ex1)))
 | 
					$ (((sqlite3 ex1)))
 | 
				
			||||||
SQLite version 2.0.0
 | 
					SQLite version 3.3.10
 | 
				
			||||||
Enter ".help" for instructions
 | 
					Enter ".help" for instructions
 | 
				
			||||||
sqlite> (((create table tbl1(one varchar(10), two smallint);)))
 | 
					sqlite> (((create table tbl1(one varchar(10), two smallint);)))
 | 
				
			||||||
sqlite> (((insert into tbl1 values('hello!',10);)))
 | 
					sqlite> (((insert into tbl1 values('hello!',10);)))
 | 
				
			||||||
@@ -52,13 +52,13 @@ sqlite>
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<p>You can terminate the sqlite program by typing your systems
 | 
					<p>You can terminate the sqlite3 program by typing your systems
 | 
				
			||||||
End-Of-File character (usually a Control-D) or the interrupt
 | 
					End-Of-File character (usually a Control-D) or the interrupt
 | 
				
			||||||
character (usually a Control-C).</p>
 | 
					character (usually a Control-C).</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>Make sure you type a semicolon at the end of each SQL command!
 | 
					<p>Make sure you type a semicolon at the end of each SQL command!
 | 
				
			||||||
The sqlite looks for a semicolon to know when your SQL command is
 | 
					The sqlite3 program looks for a semicolon to know when your SQL command is
 | 
				
			||||||
complete.  If you omit the semicolon, sqlite will give you a
 | 
					complete.  If you omit the semicolon, sqlite3 will give you a
 | 
				
			||||||
continuation prompt and wait for you to enter more text to be
 | 
					continuation prompt and wait for you to enter more text to be
 | 
				
			||||||
added to the current SQL command.  This feature allows you to
 | 
					added to the current SQL command.  This feature allows you to
 | 
				
			||||||
enter SQL commands that span multiple lines.  For example:</p>
 | 
					enter SQL commands that span multiple lines.  For example:</p>
 | 
				
			||||||
@@ -85,8 +85,8 @@ in an SQLite database.  For example:</p>
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((sqlite ex1)))
 | 
					$ (((sqlite3 ex1)))
 | 
				
			||||||
SQlite vresion 2.0.0
 | 
					SQlite vresion 3.3.10
 | 
				
			||||||
Enter ".help" for instructions
 | 
					Enter ".help" for instructions
 | 
				
			||||||
sqlite> (((select * from sqlite_master;)))
 | 
					sqlite> (((select * from sqlite_master;)))
 | 
				
			||||||
    type = table
 | 
					    type = table
 | 
				
			||||||
@@ -114,13 +114,13 @@ is stored in another special table named "sqlite_temp_master".  The
 | 
				
			|||||||
"sqlite_temp_master" table is temporary itself.
 | 
					"sqlite_temp_master" table is temporary itself.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h3>Special commands to sqlite</h3>
 | 
					<h3>Special commands to sqlite3</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Most of the time, sqlite just reads lines of input and passes them
 | 
					Most of the time, sqlite3 just reads lines of input and passes them
 | 
				
			||||||
on to the SQLite library for execution.
 | 
					on to the SQLite library for execution.
 | 
				
			||||||
But if an input line begins with a dot ("."), then
 | 
					But if an input line begins with a dot ("."), then
 | 
				
			||||||
that line is intercepted and interpreted by the sqlite program itself.
 | 
					that line is intercepted and interpreted by the sqlite3 program itself.
 | 
				
			||||||
These "dot commands" are typically used to change the output format
 | 
					These "dot commands" are typically used to change the output format
 | 
				
			||||||
of queries, or to execute certain prepackaged query statements.
 | 
					of queries, or to execute certain prepackaged query statements.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
@@ -132,27 +132,36 @@ at any time.  For example:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
sqlite> (((.help)))
 | 
					sqlite> (((.help)))
 | 
				
			||||||
 | 
					.bail ON|OFF           Stop after hitting an error.  Default OFF
 | 
				
			||||||
.databases             List names and files of attached databases
 | 
					.databases             List names and files of attached databases
 | 
				
			||||||
.dump ?TABLE? ...      Dump the database in a text format
 | 
					.dump ?TABLE? ...      Dump the database in an SQL text format
 | 
				
			||||||
.echo ON|OFF           Turn command echo on or off
 | 
					.echo ON|OFF           Turn command echo on or off
 | 
				
			||||||
.exit                  Exit this program
 | 
					.exit                  Exit this program
 | 
				
			||||||
.explain ON|OFF        Turn output mode suitable for EXPLAIN on or off.
 | 
					.explain ON|OFF        Turn output mode suitable for EXPLAIN on or off.
 | 
				
			||||||
.header(s) ON|OFF      Turn display of headers on or off
 | 
					.header(s) ON|OFF      Turn display of headers on or off
 | 
				
			||||||
.help                  Show this message
 | 
					.help                  Show this message
 | 
				
			||||||
 | 
					.import FILE TABLE     Import data from FILE into TABLE
 | 
				
			||||||
.indices TABLE         Show names of all indices on TABLE
 | 
					.indices TABLE         Show names of all indices on TABLE
 | 
				
			||||||
.mode MODE             Set mode to one of "line(s)", "column(s)", 
 | 
					.load FILE ?ENTRY?     Load an extension library
 | 
				
			||||||
                       "insert", "list", or "html"
 | 
					.mode MODE ?TABLE?     Set output mode where MODE is one of:
 | 
				
			||||||
.mode insert TABLE     Generate SQL insert statements for TABLE
 | 
					                         csv      Comma-separated values
 | 
				
			||||||
.nullvalue STRING      Print STRING instead of nothing for NULL data
 | 
					                         column   Left-aligned columns.  (See .width)
 | 
				
			||||||
 | 
					                         html     HTML <table> code
 | 
				
			||||||
 | 
					                         insert   SQL insert statements for TABLE
 | 
				
			||||||
 | 
					                         line     One value per line
 | 
				
			||||||
 | 
					                         list     Values delimited by .separator string
 | 
				
			||||||
 | 
					                         tabs     Tab-separated values
 | 
				
			||||||
 | 
					                         tcl      TCL list elements
 | 
				
			||||||
 | 
					.nullvalue STRING      Print STRING in place of NULL values
 | 
				
			||||||
.output FILENAME       Send output to FILENAME
 | 
					.output FILENAME       Send output to FILENAME
 | 
				
			||||||
.output stdout         Send output to the screen
 | 
					.output stdout         Send output to the screen
 | 
				
			||||||
.prompt MAIN CONTINUE  Replace the standard prompts
 | 
					.prompt MAIN CONTINUE  Replace the standard prompts
 | 
				
			||||||
.quit                  Exit this program
 | 
					.quit                  Exit this program
 | 
				
			||||||
.read FILENAME         Execute SQL in FILENAME
 | 
					.read FILENAME         Execute SQL in FILENAME
 | 
				
			||||||
.schema ?TABLE?        Show the CREATE statements
 | 
					.schema ?TABLE?        Show the CREATE statements
 | 
				
			||||||
.separator STRING      Change separator string for "list" mode
 | 
					.separator STRING      Change separator used by output mode and .import
 | 
				
			||||||
.show                  Show the current values for various settings
 | 
					.show                  Show the current values for various settings
 | 
				
			||||||
.tables ?PATTERN?      List names of tables matching a pattern
 | 
					.tables ?PATTERN?      List names of tables matching a LIKE pattern
 | 
				
			||||||
.timeout MS            Try opening locked tables for MS milliseconds
 | 
					.timeout MS            Try opening locked tables for MS milliseconds
 | 
				
			||||||
.width NUM NUM ...     Set column widths for "column" mode
 | 
					.width NUM NUM ...     Set column widths for "column" mode
 | 
				
			||||||
sqlite> 
 | 
					sqlite> 
 | 
				
			||||||
@@ -161,8 +170,9 @@ sqlite>
 | 
				
			|||||||
puts {
 | 
					puts {
 | 
				
			||||||
<h3>Changing Output Formats</h3>
 | 
					<h3>Changing Output Formats</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>The sqlite program is able to show the results of a query
 | 
					<p>The sqlite3 program is able to show the results of a query
 | 
				
			||||||
in five different formats: "line", "column", "list", "html", and "insert".
 | 
					in eight different formats: "csv", "column", "html", "insert",
 | 
				
			||||||
 | 
					"line", "tabs", and "tcl".
 | 
				
			||||||
You can use the ".mode" dot command to switch between these output
 | 
					You can use the ".mode" dot command to switch between these output
 | 
				
			||||||
formats.</p>
 | 
					formats.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -287,7 +297,7 @@ sqlite>
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<p>The last output mode is "html".  In this mode, sqlite writes
 | 
					<p>The last output mode is "html".  In this mode, sqlite3 writes
 | 
				
			||||||
the results of the query as an XHTML table.  The beginning
 | 
					the results of the query as an XHTML table.  The beginning
 | 
				
			||||||
<TABLE> and the ending </TABLE> are not written, but
 | 
					<TABLE> and the ending </TABLE> are not written, but
 | 
				
			||||||
all of the intervening <TR>s, <TH>s, and <TD>s
 | 
					all of the intervening <TR>s, <TH>s, and <TD>s
 | 
				
			||||||
@@ -298,7 +308,7 @@ CGI.</p>
 | 
				
			|||||||
puts {
 | 
					puts {
 | 
				
			||||||
<h3>Writing results to a file</h3>
 | 
					<h3>Writing results to a file</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>By default, sqlite sends query results to standard output.  You
 | 
					<p>By default, sqlite3 sends query results to standard output.  You
 | 
				
			||||||
can change this using the ".output" command.  Just put the name of
 | 
					can change this using the ".output" command.  Just put the name of
 | 
				
			||||||
an output file as an argument to the .output command and all subsequent
 | 
					an output file as an argument to the .output command and all subsequent
 | 
				
			||||||
query results will be written to that file.  Use ".output stdout" to
 | 
					query results will be written to that file.  Use ".output stdout" to
 | 
				
			||||||
@@ -319,7 +329,7 @@ $
 | 
				
			|||||||
puts {
 | 
					puts {
 | 
				
			||||||
<h3>Querying the database schema</h3>
 | 
					<h3>Querying the database schema</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>The sqlite program provides several convenience commands that
 | 
					<p>The sqlite3 program provides several convenience commands that
 | 
				
			||||||
are useful for looking at the schema of the database.  There is
 | 
					are useful for looking at the schema of the database.  There is
 | 
				
			||||||
nothing that these commands do that cannot be done by some other
 | 
					nothing that these commands do that cannot be done by some other
 | 
				
			||||||
means.  These commands are provided purely as a shortcut.</p>
 | 
					means.  These commands are provided purely as a shortcut.</p>
 | 
				
			||||||
@@ -336,16 +346,19 @@ sqlite>
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<p>The ".tables" command is the same as setting list mode then
 | 
					<p>The ".tables" command is similar to setting list mode then
 | 
				
			||||||
executing the following query:</p>
 | 
					executing the following query:</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<blockquote><pre>
 | 
					<blockquote><pre>
 | 
				
			||||||
SELECT name FROM sqlite_master WHERE type='table' 
 | 
					SELECT name FROM sqlite_master 
 | 
				
			||||||
UNION ALL SELECT name FROM sqlite_temp_master WHERE type='table'
 | 
					WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
 | 
				
			||||||
ORDER BY name;
 | 
					UNION ALL 
 | 
				
			||||||
 | 
					SELECT name FROM sqlite_temp_master 
 | 
				
			||||||
 | 
					WHERE type IN ('table','view') 
 | 
				
			||||||
 | 
					ORDER BY 1
 | 
				
			||||||
</pre></blockquote>
 | 
					</pre></blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>In fact, if you look at the source code to the sqlite program
 | 
					<p>In fact, if you look at the source code to the sqlite3 program
 | 
				
			||||||
(found in the source tree in the file src/shell.c) you'll find
 | 
					(found in the source tree in the file src/shell.c) you'll find
 | 
				
			||||||
exactly the above query.</p>
 | 
					exactly the above query.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -395,16 +408,27 @@ want the schema for a single table, the query looks like this:</p>
 | 
				
			|||||||
SELECT sql FROM
 | 
					SELECT sql FROM
 | 
				
			||||||
   (SELECT * FROM sqlite_master UNION ALL
 | 
					   (SELECT * FROM sqlite_master UNION ALL
 | 
				
			||||||
    SELECT * FROM sqlite_temp_master)
 | 
					    SELECT * FROM sqlite_temp_master)
 | 
				
			||||||
WHERE tbl_name LIKE '%s' AND type!='meta'
 | 
					WHERE type!='meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'
 | 
				
			||||||
ORDER BY type DESC, name
 | 
					ORDER BY substr(type,2,1), name
 | 
				
			||||||
</pre></blockquote>
 | 
					</pre></blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>The <b>%s</b> in the query above is replaced by the argument
 | 
					<p>
 | 
				
			||||||
to ".schema", of course.  Notice that the argument to the ".schema"
 | 
					You can supply an argument to the .schema command.  If you do, the
 | 
				
			||||||
command appears to the right of an SQL LIKE operator.  So you can
 | 
					query looks like this:
 | 
				
			||||||
use wildcards in the name of the table.  For example, to get the
 | 
					</p>
 | 
				
			||||||
schema for all tables whose names contain the character string
 | 
					
 | 
				
			||||||
"abc" you could enter:</p>}
 | 
					<blockquote><pre>
 | 
				
			||||||
 | 
					SELECT sql FROM
 | 
				
			||||||
 | 
					   (SELECT * FROM sqlite_master UNION ALL
 | 
				
			||||||
 | 
					    SELECT * FROM sqlite_temp_master)
 | 
				
			||||||
 | 
					WHERE tbl_name LIKE '%s'
 | 
				
			||||||
 | 
					  AND type!='meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'
 | 
				
			||||||
 | 
					ORDER BY substr(type,2,1), name
 | 
				
			||||||
 | 
					</pre></blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>The "%s" in the query is replace by your argument.  This allows you
 | 
				
			||||||
 | 
					to view the schema for some subset of the database.</p>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
sqlite> (((.schema %abc%)))
 | 
					sqlite> (((.schema %abc%)))
 | 
				
			||||||
@@ -436,13 +460,13 @@ puts {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<p>Use the ".dump" command to convert the entire contents of a
 | 
					<p>Use the ".dump" command to convert the entire contents of a
 | 
				
			||||||
database into a single ASCII text file.  This file can be converted
 | 
					database into a single ASCII text file.  This file can be converted
 | 
				
			||||||
back into a database by piping it back into <b>sqlite</b>.</p>
 | 
					back into a database by piping it back into <b>sqlite3</b>.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>A good way to make an archival copy of a database is this:</p>
 | 
					<p>A good way to make an archival copy of a database is this:</p>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((echo '.dump' | sqlite ex1 | gzip -c >ex1.dump.gz)))
 | 
					$ (((echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz)))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
@@ -452,37 +476,18 @@ machine.  To reconstruct the database, just type:</p>
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((zcat ex1.dump.gz | sqlite ex2)))
 | 
					$ (((zcat ex1.dump.gz | sqlite3 ex2)))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<p>The text format used is the same as used by
 | 
					<p>The text format is pure SQL so you
 | 
				
			||||||
<a href="http://www.postgresql.org/">PostgreSQL</a>, so you
 | 
					 | 
				
			||||||
can also use the .dump command to export an SQLite database
 | 
					can also use the .dump command to export an SQLite database
 | 
				
			||||||
into a PostgreSQL database.  Like this:</p>
 | 
					into other popular SQL database engines.  Like this:</p>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((createdb ex2)))
 | 
					$ (((createdb ex2)))
 | 
				
			||||||
$ (((echo '.dump' | sqlite ex1 | psql ex2)))
 | 
					$ (((sqlite3 ex1 .dump | psql ex2)))
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
puts {
 | 
					 | 
				
			||||||
<p>You can almost (but not quite) go the other way and export
 | 
					 | 
				
			||||||
a PostgreSQL database into SQLite using the <b>pg_dump</b> utility.
 | 
					 | 
				
			||||||
Unfortunately, when <b>pg_dump</b> writes the database schema information,
 | 
					 | 
				
			||||||
it uses some SQL syntax that SQLite does not understand.
 | 
					 | 
				
			||||||
So you cannot pipe the output of <b>pg_dump</b> directly 
 | 
					 | 
				
			||||||
into <b>sqlite</b>.
 | 
					 | 
				
			||||||
But if you can recreate the
 | 
					 | 
				
			||||||
schema separately, you can use <b>pg_dump</b> with the <b>-a</b>
 | 
					 | 
				
			||||||
option to list just the data
 | 
					 | 
				
			||||||
of a PostgreSQL database and import that directly into SQLite.</p>
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Code {
 | 
					 | 
				
			||||||
$ (((sqlite ex3 <schema.sql)))
 | 
					 | 
				
			||||||
$ (((pg_dump -a ex2 | sqlite ex3)))
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
@@ -521,33 +526,33 @@ addr  opcode        p1     p2     p3
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>The ".timeout" command sets the amount of time that the <b>sqlite</b>
 | 
					<p>The ".timeout" command sets the amount of time that the <b>sqlite3</b>
 | 
				
			||||||
program will wait for locks to clear on files it is trying to access
 | 
					program will wait for locks to clear on files it is trying to access
 | 
				
			||||||
before returning an error.  The default value of the timeout is zero so
 | 
					before returning an error.  The default value of the timeout is zero so
 | 
				
			||||||
that an error is returned immediately if any needed database table or
 | 
					that an error is returned immediately if any needed database table or
 | 
				
			||||||
index is locked.</p>
 | 
					index is locked.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>And finally, we mention the ".exit" command which causes the
 | 
					<p>And finally, we mention the ".exit" command which causes the
 | 
				
			||||||
sqlite program to exit.</p>
 | 
					sqlite3 program to exit.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h3>Using sqlite in a shell script</h3>
 | 
					<h3>Using sqlite3 in a shell script</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
One way to use sqlite in a shell script is to use "echo" or
 | 
					One way to use sqlite3 in a shell script is to use "echo" or
 | 
				
			||||||
"cat" to generate a sequence of commands in a file, then invoke sqlite 
 | 
					"cat" to generate a sequence of commands in a file, then invoke sqlite3
 | 
				
			||||||
while redirecting input from the generated command file.  This
 | 
					while redirecting input from the generated command file.  This
 | 
				
			||||||
works fine and is appropriate in many circumstances.  But as
 | 
					works fine and is appropriate in many circumstances.  But as
 | 
				
			||||||
an added convenience, sqlite allows a single SQL command to be
 | 
					an added convenience, sqlite3 allows a single SQL command to be
 | 
				
			||||||
entered on the command line as a second argument after the
 | 
					entered on the command line as a second argument after the
 | 
				
			||||||
database name.  When the sqlite program is launched with two
 | 
					database name.  When the sqlite3 program is launched with two
 | 
				
			||||||
arguments, the second argument is passed to the SQLite library
 | 
					arguments, the second argument is passed to the SQLite library
 | 
				
			||||||
for processing, the query results are printed on standard output
 | 
					for processing, the query results are printed on standard output
 | 
				
			||||||
in list mode, and the program exits.  This mechanism is designed
 | 
					in list mode, and the program exits.  This mechanism is designed
 | 
				
			||||||
to make sqlite easy to use in conjunction with programs like
 | 
					to make sqlite3 easy to use in conjunction with programs like
 | 
				
			||||||
"awk".  For example:</p>}
 | 
					"awk".  For example:</p>}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Code {
 | 
					Code {
 | 
				
			||||||
$ (((sqlite ex1 'select * from tbl1' |)))
 | 
					$ (((sqlite3 ex1 'select * from tbl1' |)))
 | 
				
			||||||
> ((( awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }')))
 | 
					> ((( awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }')))
 | 
				
			||||||
<tr><td>hello<td>10
 | 
					<tr><td>hello<td>10
 | 
				
			||||||
<tr><td>goodbye<td>20
 | 
					<tr><td>goodbye<td>20
 | 
				
			||||||
@@ -561,17 +566,17 @@ puts {
 | 
				
			|||||||
SQLite commands are normally terminated by a semicolon.  In the shell 
 | 
					SQLite commands are normally terminated by a semicolon.  In the shell 
 | 
				
			||||||
you can also use the word "GO" (case-insensitive) or a slash character 
 | 
					you can also use the word "GO" (case-insensitive) or a slash character 
 | 
				
			||||||
"/" on a line by itself to end a command.  These are used by SQL Server 
 | 
					"/" on a line by itself to end a command.  These are used by SQL Server 
 | 
				
			||||||
and Oracle, respectively.  These won't work in <b>sqlite_exec()</b>, 
 | 
					and Oracle, respectively.  These won't work in <b>sqlite3_exec()</b>, 
 | 
				
			||||||
because the shell translates these into a semicolon before passing them 
 | 
					because the shell translates these into a semicolon before passing them 
 | 
				
			||||||
to that function.</p>
 | 
					to that function.</p>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
puts {
 | 
					puts {
 | 
				
			||||||
<h3>Compiling the sqlite program from sources</h3>
 | 
					<h3>Compiling the sqlite3 program from sources</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The sqlite program is built automatically when you compile the
 | 
					The sqlite3 program is built automatically when you compile the
 | 
				
			||||||
sqlite library.  Just get a copy of the source tree, run
 | 
					SQLite library.  Just get a copy of the source tree, run
 | 
				
			||||||
"configure" and then "make".</p>
 | 
					"configure" and then "make".</p>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
footer $rcsid
 | 
					footer $rcsid
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user