安装
在Windows上安装SQLite。
访问官网下载下Precompliled Binaries for Windows的两个压缩包。
创建sqlite文件夹,路径不要包含中文,把压缩包的内容解压到文件夹中。再将这个文件添加进PATH环境变量中。
此时打开命令行窗口输入sqlite3,将会出现对应提示,表示安装完成。
SQLite命令
在命令行窗口输入sqlite3可进入sqlite命题提示符,此时可使用各种sqlite命令。
输入.help
会显示各种重要的点命令列表。
命令 |
描述 |
.backup ?DB? FILE |
备份 DB 数据库(默认是 "main")到 FILE 文件。 |
.bail ON|OFF |
发生错误后停止。默认为 OFF。 |
.databases |
列出数据库的名称及其所依附的文件。 |
.dump ?TABLE? |
以 SQL 文本格式转储数据库。如果指定了 TABLE 表,则只转储匹配 LIKE 模式的 TABLE 表。 |
.echo ON|OFF |
开启或关闭 echo 命令。 |
.exit |
退出 SQLite 提示符。 |
.explain ON|OFF |
开启或关闭适合于 EXPLAIN 的输出模式。如果没有带参数,则为 EXPLAIN on,即开启 EXPLAIN。 |
.header(s) ON|OFF |
开启或关闭头部显示。 |
.help |
显示消息。 |
.import FILE TABLE |
导入来自 FILE 文件的数据到 TABLE 表中。 |
.indices ?TABLE? |
显示所有索引的名称。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表的索引。 |
.load FILE ?ENTRY? |
加载一个扩展库。 |
.log FILE|off |
开启或关闭日志。FILE 文件可以是 stderr(标准错误)/stdout(标准输出)。 |
.mode MODE |
设置输出模式,MODE 可以是下列之一:csv 逗号分隔的值column 左对齐的列html HTML 的 代码insert TABLE 表的 SQL 插入(insert)语句line 每行一个值list 由 .separator 字符串分隔的值tabs 由 Tab 分隔的值tcl TCL 列表元素
.nullvalue STRING |
在 NULL 值的地方输出 STRING 字符串。 |
.output FILENAME |
发送输出到 FILENAME 文件。 |
.output stdout |
发送输出到屏幕。 |
.print STRING... |
逐字地输出 STRING 字符串。 |
.prompt MAIN CONTINUE |
替换标准提示符。 |
.quit |
退出 SQLite 提示符。 |
.read FILENAME |
执行 FILENAME 文件中的 SQL。 |
.schema ?TABLE? |
显示 CREATE 语句。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表。 |
.separator STRING |
改变输出模式和 .import 所使用的分隔符。 |
.show |
显示各种设置的当前值。 |
.stats ON|OFF |
开启或关闭统计。 |
.tables ?PATTERN? |
列出匹配 LIKE 模式的表的名称。 |
.timeout MS |
尝试打开锁定的表 MS 毫秒。 |
.width NUM NUM |
为 "column" 模式设置列宽度。 |
.timer ON|OFF |
开启或关闭 CPU 定时器。 |
使用.show 命令查看SQLite命令提示符的默认设置。
SQLite语法
sqlite不区分大小写。
注释方式:使用两个连续的"-"字符开始,到下一个换行符或直到输入结束。也可以使用C风格的/*注释内容*/
SQLite以分号结束。
SQLite数据类型
SQLite存储类
存储类 |
描述 |
NULL |
值是一个 NULL 值。 |
INTEGER |
值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL |
值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT |
值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB |
值是一个 blob 数据,完全根据它的输入存储。 |
SQLite创建数据库
使用sqlite3命令来创建新的SQLite数据库。通常情况下数据库名称在RDBMS内时唯一的。
使用.databases 命令来检查是否在数据库列表中
使用.quit 退出sqlite提示符
SQLite附加数据库
SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。
ATTACH DATABASE file_name AS database_name;
--实例
sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';
SQLite C/C++接口
DEVC++ 进行使用
首先先要生成sql.a。在官网下载x64的源码,devC++新建static lib项目,将所有源码复制进项目文件夹并添加。编译即可得到。
自己使用的程序中将生成的sql.a文件和sqlite3.h文件复制到项目文件夹中。在项目属性-
序号 |
API & 描述 |
1 |
sqlite3_open(const char *filename, sqlite3 **ppDb) 该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。如果 filename 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。 |
2 |
sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg) 该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。 |
3 |
sqlite3_close(sqlite3*) 该例程关闭之前调用 sqlite3_open() 打开的数据库连接。所有与连接相关的语句都应在连接关闭之前完成。如果还有查询没有完成,sqlite3_close() 将返回 SQLITE_BUSY 禁止关闭的错误消息。 |
连接数据库
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
exit(0);
}else{
fprintf(stderr, "Opened database successfully\n");
}
sqlite3_close(db);
}
|