1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 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 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
|
<!DOCTYPE html>
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="sqlite.css" rel="stylesheet">
<title>SQLite In 5 Minutes Or Less</title>
<!-- path= -->
</head>
<body>
<div class=nosearch>
<a href="index.html">
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
</a>
<div><!-- IE hack to prevent disappearing logo --></div>
<div class="tagline desktoponly">
Small. Fast. Reliable.<br>Choose any three.
</div>
<div class="menu mainmenu">
<ul>
<li><a href="index.html">Home</a>
<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
<li class='wideonly'><a href='about.html'>About</a>
<li class='desktoponly'><a href="docs.html">Documentation</a>
<li class='desktoponly'><a href="download.html">Download</a>
<li class='wideonly'><a href='copyright.html'>License</a>
<li class='desktoponly'><a href="support.html">Support</a>
<li class='desktoponly'><a href="prosupport.html">Purchase</a>
<li class='search' id='search_menubutton'>
<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
</ul>
</div>
<div class="menu submenu" id="submenu">
<ul>
<li><a href='about.html'>About</a>
<li><a href='docs.html'>Documentation</a>
<li><a href='download.html'>Download</a>
<li><a href='support.html'>Support</a>
<li><a href='prosupport.html'>Purchase</a>
</ul>
</div>
<div class="searchmenu" id="searchmenu">
<form method="GET" action="search">
<select name="s" id="searchtype">
<option value="d">Search Documentation</option>
<option value="c">Search Changelog</option>
</select>
<input type="text" name="q" id="searchbox" value="">
<input type="submit" value="Go">
</form>
</div>
</div>
<script>
function toggle_div(nm) {
var w = document.getElementById(nm);
if( w.style.display=="block" ){
w.style.display = "none";
}else{
w.style.display = "block";
}
}
function toggle_search() {
var w = document.getElementById("searchmenu");
if( w.style.display=="block" ){
w.style.display = "none";
} else {
w.style.display = "block";
setTimeout(function(){
document.getElementById("searchbox").focus()
}, 30);
}
}
function div_off(nm){document.getElementById(nm).style.display="none";}
window.onbeforeunload = function(e){div_off("submenu");}
/* Disable the Search feature if we are not operating from CGI, since */
/* Search is accomplished using CGI and will not work without it. */
if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
document.getElementById("search_menubutton").style.display = "none";
}
/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
function hideorshow(btn,obj){
var x = document.getElementById(obj);
var b = document.getElementById(btn);
if( x.style.display!='none' ){
x.style.display = 'none';
b.innerHTML='show';
}else{
x.style.display = '';
b.innerHTML='hide';
}
return false;
}
var antiRobot = 0;
function antiRobotGo(){
if( antiRobot!=3 ) return;
antiRobot = 7;
var j = document.getElementById("mtimelink");
if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href");
}
function antiRobotDefense(){
document.body.onmousedown=function(){
antiRobot |= 2;
antiRobotGo();
document.body.onmousedown=null;
}
document.body.onmousemove=function(){
antiRobot |= 2;
antiRobotGo();
document.body.onmousemove=null;
}
setTimeout(function(){
antiRobot |= 1;
antiRobotGo();
}, 100)
antiRobotGo();
}
antiRobotDefense();
</script>
<p>Here is what you do to start experimenting with SQLite without having
to do a lot of tedious reading and configuration:</p>
<h2>Download The Code</h2>
<ul>
<li><p>Get a copy of the prebuilt binaries for your machine, or get a copy
of the sources and compile them yourself. Visit
the <a href="download.html">download</a> page for more information.</p></li>
</ul>
<h2>Create A New Database</h2>
<ul>
<li><p>At a shell or DOS prompt, enter: "<b>sqlite3 test.db</b>". This will
create a new database named "test.db". (You can use a different name if
you like.)</p></li>
<li><p>Enter SQL commands at the prompt to create and populate the
new database.</p></li>
<li><p>Additional documentation is available <a href="cli.html">here</a>.</li>
</ul>
<h2>Write Programs That Use SQLite</h2>
<ul>
<li><p>Below is a simple
<a href="http://www.tcl-lang.org">TCL program</a> that demonstrates how to use
the TCL interface to SQLite. The program executes the SQL statements
given as the second argument on the database defined by the first
argument. The commands to watch for are the <b>sqlite3</b> command
on line 7 which opens an SQLite database and creates
a new object named "<b>db</b>" to access that database, the
use of the <a href="tclsqlite.html#eval">eval method</a> on the <b>db</b> object on line 8 to run
SQL commands against the database, and the closing of the database connection
on the last line of the script.</p>
<blockquote><pre>
01 #!/usr/bin/tclsh
02 if {$argc!=2} {
03 puts stderr "Usage: %s DATABASE SQL-STATEMENT"
04 exit 1
05 }
06 package require sqlite3
07 <b>sqlite3</b> db [lindex $argv 0]
08 <b>db</b> eval [lindex $argv 1] x {
09 foreach v $x(*) {
10 puts "$v = $x($v)"
11 }
12 puts ""
13 }
14 <b>db</b> close
</pre></blockquote>
</li>
<li><p>Below is a simple C program that demonstrates how to use
the <a href="c3ref/intro.html">C/C++ interface</a> to SQLite. The name of a database is given by
the first argument and the second argument is one or more SQL statements
to execute against the database. The function calls to pay attention
to here are the call to <a href="c3ref/open.html">sqlite3_open()</a> on line 22 which opens
the database, <a href="c3ref/exec.html">sqlite3_exec()</a> on line 28 that executes SQL
commands against the database, and <a href="c3ref/close.html">sqlite3_close()</a> on line 33
that closes the database connection.</p>
<p>See also the <a href="cintro.html">Introduction To The SQLite C/C++ Interface</a> for
an introductory overview and roadmap to the dozens of SQLite interface
functions.</p>
<blockquote><pre>
01 #include <stdio.h>
02 #include <sqlite3.h>
03
04 static int callback(void *NotUsed, int argc, char **argv, char **azColName){
05 int i;
06 for(i=0; i<argc; i++){
07 printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
08 }
09 printf("\n");
10 return 0;
11 }
12
13 int main(int argc, char **argv){
14 <b>sqlite3</b> *db;
15 char *zErrMsg = 0;
16 int rc;
17
18 if( argc!=3 ){
19 fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
20 return(1);
21 }
22 rc = <b>sqlite3_open</b>(argv[1], &db);
23 if( rc ){
24 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
25 <b>sqlite3_close</b>(db);
26 return(1);
27 }
28 rc = <b>sqlite3_exec</b>(db, argv[2], callback, 0, &zErrMsg);
29 if( rc!=SQLITE_OK ){
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
31 <b>sqlite3_free</b>(zErrMsg);
32 }
33 <b>sqlite3_close</b>(db);
34 return 0;
35 }
</pre></blockquote>
<p>See the <a href="howtocompile.html">How To Compile SQLite</a> document for instructions and hints on
how to compile the program shown above.
</li>
</ul>
<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/quickstart.in?m=9a18ba58fb">2024-07-25 15:06:57</a> UTC </small></i></p>
|