前端之家收集整理的这篇文章主要介绍了
SQLite学习笔记,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
安装
在Windows上安装sqlite。
访问官网下载下Precompliled Binaries for Windows的两个压缩包。
创建sqlite文件夹,路径不要包含中文,把压缩包的内容解压到文件夹中。再将这个文件添加进PATH环境变量中。
此时打开命令行窗口输入sqlite3,将会出现对应提示,表示安装完成。

在命令行窗口输入sqlite3可进入sqlite命题提示符,此时可使用各种sqlite命令。
输入.help
会显示各种重要的点命令列表。
命令 |
描述 |
@H_404_34@.backup ?DB? FILE
@H_404_34@备份 DB 数据库(默认是 "main")到 FILE 文件。
@H_404_34@.bail ON|OFF
@H_404_34@发生错误后停止。默认为 OFF。
@H_404_34@.databases
@H_404_34@列出数据库的名称及其所依附的文件。
@H_404_34@.dump ?TABLE?
@H_404_34@以 sql 文本格式转储数据库。如果指定了 TABLE 表,则只转储匹配 LIKE 模式的 TABLE 表。
@H_404_34@.echo ON|OFF
@H_404_34@开启或关闭 echo 命令。
@H_404_34@.exit
@H_404_34@退出 sqlite 提示符。
@H_404_34@.explain ON|OFF
@H_404_34@开启或关闭适合于 EXPLAIN 的输出模式。如果没有带参数,则为 EXPLAIN on,即开启 EXPLAIN。
@H_404_34@.header(s) ON|OFF
@H_404_34@开启或关闭头部显示。
@H_404_34@.help
@H_404_34@显示消息。
@H_404_34@.import FILE TABLE
@H_404_34@导入来自 FILE 文件的数据到 TABLE 表中。
@H_404_34@.indices ?TABLE?
@H_404_34@显示所有索引的名称。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表的索引。
@H_404_34@.load FILE ?ENTRY?
@H_404_34@加载一个扩展库。
@H_404_34@.log FILE|off
@H_404_34@开启或关闭日志。FILE 文件可以是 stderr(标准错误)/stdout(标准输出)。
@H_404_34@.mode MODE
@H_404_34@设置输出模式,MODE 可以是下列之一:csv 逗号分隔的值column 左对齐的列html HTML 的 代码insert TABLE 表的 sql 插入(insert)语句line 每行一个值list 由 .separator 字符串分隔的值tabs 由 Tab 分隔的值tcl TCL 列表元素
@H_404_34@.nullvalue STRING
@H_404_34@在 NULL 值的地方输出 STRING 字符串。
@H_404_34@.output FILENAME
@H_404_34@发送输出到 FILENAME 文件。
@H_404_34@.output stdout
@H_404_34@发送输出到屏幕。
@H_404_34@.print STRING...
@H_404_34@逐字地输出 STRING 字符串。
@H_404_34@.prompt MAIN CONTINUE
@H_404_34@替换标准提示符。
@H_404_34@.quit
@H_404_34@退出 sqlite 提示符。
@H_404_34@.read FILENAME
@H_404_34@执行 FILENAME 文件中的 sql。
@H_404_34@.schema ?TABLE?
@H_404_34@显示 CREATE 语句。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表。
@H_404_34@.separator STRING
@H_404_34@改变输出模式和 .import 所使用的分隔符。
@H_404_34@.show
@H_404_34@显示各种设置的当前值。
@H_404_34@.stats ON|OFF
@H_404_34@开启或关闭统计。
@H_404_34@.tables ?PATTERN?
@H_404_34@列出匹配 LIKE 模式的表的名称。
@H_404_34@.timeout MS
@H_404_34@尝试打开锁定的表 MS 毫秒。
@H_404_34@.width NUM NUM
@H_404_34@为 "column" 模式设置列宽度。
@H_404_34@.timer ON|OFF
@H_404_34@开启或关闭 cpu 定时器。
使用.show
命令查看sqlite命令提示符的默认设置。
sqlite不区分大小写。
注释方式:使用两个连续的"-"字符开始,到下一个换行符或直到输入结束。也可以使用C风格的/*注释内容*/
sqlite以分号结束。
sqlite数据类型
存储类 |
描述 |
@H_404_34@NULL
@H_404_34@值是一个 NULL 值。
@H_404_34@INTEGER
@H_404_34@值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
@H_404_34@REAL
@H_404_34@值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
@H_404_34@TEXT
@H_404_34@值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
@H_404_34@BLOB
@H_404_34@值是一个 blob 数据,完全根据它的输入存储。
使用sqlite3命令来创建新的sqlite数据库。通常情况下数据库名称在RDBMS内时唯一的。
使用.databases
命令来检查是否在数据库列表中
使用.quit
退出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 & 描述 |
@H_404_34@1
@H_404_34@
sqlite3_open(const char *filename,sqlite3 **ppDb) 该例程打开一个指向 sqlite 数据库文件的连接,返回一个用于其他 sqlite 程序的数据库连接对象。如果 filename 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。
@H_404_34@2
@H_404_34@
sqlite3_exec(sqlite3*,const char *sql,sqlite_callback,void *data,char **errmsg) 该例程提供了一个执行 sql 命令的快捷方式,sql 命令由 sql 参数提供,可以由多个 sql 命令组成。在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。
@H_404_34@3
@H_404_34@
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);
}