SQLite学习笔记

前端之家收集整理的这篇文章主要介绍了SQLite学习笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

安装

在Windows上安装sqlite。

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

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

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

image-20201229222203532

sqlite命令

在命令行窗口输入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语法

sqlite不区分大小写。

注释方式:使用两个连续的"-"字符开始,到下一个换行符或直到输入结束。也可以使用C风格的/*注释内容*/

sqlite以分号结束。

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 数据,完全根据它的输入存储。
存储类 描述

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文件复制到项目文件夹中。在项目属性-

@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 禁止关闭错误消息。
序号 API & 描述

连接数据库

#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);
}

猜你在找的Sqlite相关文章