五分钟或更短时间熟悉SQLite--关于SQLite编程的快速简介
2014-03-30 20:40
239 查看
五分钟或更短时间熟悉SQLite--关于SQLite编程的快速简介
本篇介绍如何尝试使用SQLite,而不需要进行大量冗长乏味的阅读和配置。
下载代码
下载一份你机器要用的预编译完成的二进制库文件,或下载一份源码,并自行编译。访问下载页以获得更多的信息。
创建新的数据库
在命令解释程序(shell)或DOS中,敲入:"sqlite3test.db"。该命令将创建一个以"test.db"命名的新的数据库(当然你可以用你想要一个不同的名字)。
在命令提示符后敲入SQ命令以设计和构造新建的数据库。
参阅,参考文档“Command Line Shell ForSQLite”。
用SQLite编写程序
如下是一个简单的TCL
程序,以展示如何使用TCL
接口来交互SQLite。该程序执行作为第二个参数的SQL
语句,来操作由第一个参数定义的数据库。指令集等待第7行的sqlite3
命令,该命令打开一个SQLite
数据库,同时创建一个新的以“db”命名的对象以连接到刚才的数据库。第8行的命令使用db对象的eval成员函数来运行对刚才数据库的SQL命令。脚本的最后一行则是关闭数据库连接。
01
#!/usr/bin/tclsh
02
if {$argc!=2} {
03
puts stderr "Usage: %s DATABASESQL-STATEMENT"
04
exit 1
05
}
06
package require sqlite3
07
sqlite3 db [lindex $argv 0]
08
db eval [lindex $argv 1] x {
09
foreach v $x(*) {
10
puts "$v = $x($v)"
11
}
12
puts ""
13
}
14
db close
如下是一短简单的C语言,以展示如何使用C/C++来交互SQLite。第一个参数给出数据库的名字,第二个参数是一条或多条对数据库进行操作的SQL语句。在此,需要关注的函数调用是:22行的sqlite3_open()打开数据库。28行的sqlite3_exec()执行操作数据库的SQL
命令。33行的sqlite3_close()关闭数据库连接。
另请参阅“Introduction To The SQLite C/C++ Interface”以获得对几十个SQLite接口函数的介绍性的概述和路线图
01
#include<stdio.h>
02
#include<sqlite3.h>
03
04
static intcallback(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(intargc, char **argv){
14
sqlite3*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 = sqlite3_open(argv[1],&db);
23
if( rc ){
24 fprintf(stderr, "Can't open database: %s\n",sqlite3_errmsg(db));
25
sqlite3_close(db);
26
return(1);
27
}
28
rc = sqlite3_exec(db,argv[2], callback, 0, &zErrMsg);
29
if(rc!=SQLITE_OK ){
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
31
sqlite3_free(zErrMsg);
32
}
33
sqlite3_close(db);
34
return 0;
35
}
本篇介绍如何尝试使用SQLite,而不需要进行大量冗长乏味的阅读和配置。
下载代码
下载一份你机器要用的预编译完成的二进制库文件,或下载一份源码,并自行编译。访问下载页以获得更多的信息。
创建新的数据库
在命令解释程序(shell)或DOS中,敲入:"sqlite3test.db"。该命令将创建一个以"test.db"命名的新的数据库(当然你可以用你想要一个不同的名字)。
在命令提示符后敲入SQ命令以设计和构造新建的数据库。
参阅,参考文档“Command Line Shell ForSQLite”。
用SQLite编写程序
如下是一个简单的TCL
程序,以展示如何使用TCL
接口来交互SQLite。该程序执行作为第二个参数的SQL
语句,来操作由第一个参数定义的数据库。指令集等待第7行的sqlite3
命令,该命令打开一个SQLite
数据库,同时创建一个新的以“db”命名的对象以连接到刚才的数据库。第8行的命令使用db对象的eval成员函数来运行对刚才数据库的SQL命令。脚本的最后一行则是关闭数据库连接。
01
#!/usr/bin/tclsh
02
if {$argc!=2} {
03
puts stderr "Usage: %s DATABASESQL-STATEMENT"
04
exit 1
05
}
06
package require sqlite3
07
sqlite3 db [lindex $argv 0]
08
db eval [lindex $argv 1] x {
09
foreach v $x(*) {
10
puts "$v = $x($v)"
11
}
12
puts ""
13
}
14
db close
如下是一短简单的C语言,以展示如何使用C/C++来交互SQLite。第一个参数给出数据库的名字,第二个参数是一条或多条对数据库进行操作的SQL语句。在此,需要关注的函数调用是:22行的sqlite3_open()打开数据库。28行的sqlite3_exec()执行操作数据库的SQL
命令。33行的sqlite3_close()关闭数据库连接。
另请参阅“Introduction To The SQLite C/C++ Interface”以获得对几十个SQLite接口函数的介绍性的概述和路线图
01
#include<stdio.h>
02
#include<sqlite3.h>
03
04
static intcallback(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(intargc, char **argv){
14
sqlite3*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 = sqlite3_open(argv[1],&db);
23
if( rc ){
24 fprintf(stderr, "Can't open database: %s\n",sqlite3_errmsg(db));
25
sqlite3_close(db);
26
return(1);
27
}
28
rc = sqlite3_exec(db,argv[2], callback, 0, &zErrMsg);
29
if(rc!=SQLITE_OK ){
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
31
sqlite3_free(zErrMsg);
32
}
33
sqlite3_close(db);
34
return 0;
35
}
相关文章推荐
- 使用Libevent的快速可移植非阻塞网络编程:异步IO简介 (一)
- 快速熟悉Linux/Unix 网络套接字编程总结版(原一)
- iOS关于SQLite存取时间数据类型的两条常用方法。
- postgres 关于时间类型的快速查找
- 翻译:使用Libevent的快速可移植非阻塞网络编程:异步IO简介 (一) (转
- 关于量子编程中主函数的的优化之减少中断时间:qvanilla
- 快速提高编程能力——一年时间可以改变很多事
- 编程前,关于时间的想法
- Linux下C语言编程入门-7关于时间的操作
- 翻译:使用Libevent的快速可移植非阻塞网络编程:异步IO简介 (一)
- 关于Linux下时间编程的问题
- sqlite3编程使用简介
- 关于Perfect和Swift进行编程的文档简介链接地址
- 关于Libevent的快速可移植非阻塞网络编程(block-》select-》poll-》epoll-》libevent)
- XP下关于快速切换用户功能的相关编程
- 嵌入式 关于sqlite多线程编程相关小结
- 关于Dos命令批处理编程简介
- 快速提高编程能力---一年时间可以改变很多事
- sqlite关于时间的处理
- 编程前,关于时间的想法2