SQLite学习笔记

摘要:
安装在Windows上安装SQLite。SQLite命令在命令行窗口输入sqlite3可进入sqlite命题提示符,此时可使用各种sqlite命令。.quit退出SQLite提示符。使用.show命令查看SQLite命令提示符的默认设置。SQLite语法sqlite不区分大小写。SQLite数据类型SQLite存储类存储类描述NULL值是一个NULL值。使用.databases命令来检查是否在数据库列表中使用.quit退出sqlite提示符SQLite附加数据库SQLite的ATTACHDATABASE语句是用来选择一个特定的数据库,使用该命令后,所有的SQLite语句将在附加的数据库下执行。
安装

在Windows上安装SQLite。

访问官网下载下Precompliled Binaries for Windows的两个压缩包。

创建sqlite文件夹,路径不要包含中文,把压缩包的内容解压到文件夹中。再将这个文件添加进PATH环境变量中。

此时打开命令行窗口输入sqlite3,将会出现对应提示,表示安装完成。

image-20201229222203532

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 & 描述
1sqlite3_open(const char *filename, sqlite3 **ppDb) 该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。如果 filename 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。
2sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg) 该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。
3sqlite3_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
", sqlite3_errmsg(db));
      exit(0);
   }else{
      fprintf(stderr, "Opened database successfully
");
   }
   sqlite3_close(db);
}

免责声明:文章转载自《SQLite学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++构造函数简单用法单色三角形(hdu-5072下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何配置Drupal数据库信息?

Drupal的数据库连接信息通过文件settings.php中的变量$databases设置。变量$databases是一个二维的数组,第一维称为key,第二维称为target。使用这种方式可以处理多数据库和主从分离这样复杂的情况。 例如,假设有这样的配置: $databases['default']['default'] = array( 'dat...

FireDAC 下的 Sqlite [1]

很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动、振奋.Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了.让我最高兴地是 FireDAC 对 Sqlite 的支持!优秀的 Sqlite 早就有很多 Delphi 的包装(http://www.sqlite.org/cv...

开源物联网平台(Thingsboard)-运行

环境准备 已经编译过的代码环境,可参考前篇 编译 IDE Idea或Eclipse,本文使用Idea PG数据库 Postgresql 12+,本文使用Docker初始化 docker run --name tb_pg -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:12   支持Html5...

[转]ORA00257解决

 原:http://blog.chinaunix.net/u/26381/showart_373304.html 从Oracle9i开始,借助于UNDO日志文件提供了闪回查询的功能,由于功能也有一定的局限性,也就是说依赖于UNDO日志的事务不能被覆盖,所以在Oracle10g开始又采用了一种新的FlashBack日志来实现这个功能,而且更为强大,可以将数据...

SQL Server 2000详细安装过程及配置

说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,虽然现如今SQL Server 2000软件早已经过时了,但仍然有一部分人在使用它,尤其是某些高校的学生在做毕业设计或者课程设计的时候可能会使用到,所以就把该软件的安装过程保留在这里吧。 另外,此SQL Server 2000软件只能在Wind...

Linux高级编程--04.GDB调试程序(查看数据)

查看栈信息 当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。 下面是一些查看函数调用栈信息的GDB命令: backtrace / bt :打印当前的函数调用栈的所有信息。如: (gdb) bt #0...