非常教程

Sqlite参考手册

C界面 | C Interface

Database Connection Configuration Options

#define SQLITE_DBCONFIG_MAINDBNAME            1000 /* const char* */
#define SQLITE_DBCONFIG_LOOKASIDE             1001 /* void* int int */
#define SQLITE_DBCONFIG_ENABLE_FKEY           1002 /* int int* */
#define SQLITE_DBCONFIG_ENABLE_TRIGGER        1003 /* int int* */
#define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */
#define SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION 1005 /* int int* */
#define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE      1006 /* int int* */
#define SQLITE_DBCONFIG_ENABLE_QPSG           1007 /* int int* */

这些常量是可用的整数配置选项,可以作为第二个参数传递给sqlite3_db_config()接口。

新的配置选项可能会在未来的SQLite版本中添加。现有配置选项可能会停止。应用程序应检查来自sqlite3_db_config()的返回码以确保该调用正常工作。如果调用停止或不支持的配置选项,sqlite3_db_config()接口将返回一个非零的错误代码。

SQLITE_DBCONFIG_LOOKASIDE此选项接受另外三个参数,用于确定数据库连接的后备内存分配器配置。第一个参数(第三个参数来sqlite3_db_config()是一个指针,指向存储器缓冲器以用于后备存储器中。在SQLITE_DBCONFIG_LOOKASIDE动词之后的第一个参数可以是NULL在这种情况下的SQLite将使用sqlite3_malloc(分配后备缓冲器本身)。该第二个参数是每个后备缓冲槽的大小,第三个参数是槽数,第一个参数中缓冲区的大小必须大于或等于第二个和第三个参数的乘积,缓冲区必须对齐转换为8字节边界如果SQLITE_DBCONFIG_LOOKASIDE的第二个参数不是8的倍数,它被内部四舍五入为8的更小倍数。数据库连接的后备内存配置只能在该连接当前不使用后备存储器时更改,换句话说,当sqlite3_db_status返回的“当前值”(D ,SQLITE_CONFIG_LOOKASIDE ...)为零。当正在使用后备内存时,任何尝试更改后备内存配置都会使配置保持不变,并返回SQLITE_BUSY.SQLITE_DBCONFIG_ENABLE_FKEY此选项用于启用或禁用外键约束的实施。应该有两个额外的参数。第一个参数是一个0来禁用FK强制执行的整数,正向启用FK强制执行或负向强制FK强制执行不变。第二个参数是指向一个写入0或1的整数的指针,以指示在此调用之后FK执行是关闭还是开启。第二个参数可能是一个NULL指针,在这种情况下,FK强制设置不会被报告回来。SQLITE_DBCONFIG_ENABLE_TRIGGER该选项用于启用或禁用触发器。应该有两个额外的参数。第一个参数是一个整数,它是0来禁用触发器,积极启用触发器或消极设置保持不变。第二个参数是指向一个写入0或1的整数的指针,以指示在此调用之后是否禁用或启用了触发器。第二个参数可能是NULL指针,在这种情况下触发器设置不会被报告回来。SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER此选项用于启用或禁用作为FTS3全文本搜索引擎扩展的一部分的fts3_tokenizer()函数的双参数版本。应该有两个额外的参数。第一个参数是一个0表示禁用fts3_tokenizer()的整数,或者表示启用fts3_tokenizer()的积极参数,否则保持设置不变。第二个参数是指向一个写入0或1的整数的指针,以指示在此调用之后fts3_tokenizer是否被禁用或启用。第二个参数可能是一个NULL指针,在这种情况下,新的设置不会被报告回来。SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION该选项用于独立于load_extension()SQL函数来启用或禁用sqlite3_load_extension()接口。sqlite3_enable_load_extension()API启用或禁用C-API sqlite3_load_extension()和SQL函数load_extension()。应该有两个额外的参数。当此接口的第一个参数为1时,则只启用C-API,并且SQL功能保持禁用状态。如果此接口的第一个参数为0,那么C-API和SQL函数都将被禁用。如果第一个参数是-1,则不会更改C-API或SQL函数的状态。第二个参数是指向一个写入0或1的整数的指针,以指示在此调用之后sqlite3_load_extension()接口是禁用还是启用。第二个参数可能是一个NULL指针,在这种情况下,新的设置不会被报告回来。SQLITE_DBCONFIG_MAINDBNAME此选项用于更改“ 第二个参数是一个指向写入0或1的整数的指针,用于指示checkpoint-on-close是否被禁用 - 如果它们未被禁用则为0,如果它们为1则指示为1。SQLITE_DBCONFIG_ENABLE_QPSG SQLITE_DBCONFIG_ENABLE_QPSG选项激活或取消激活查询计划程序稳定性保证(QPSG)。当QPSG处于活动状态时,单个SQL查询语句将始终使用相同的算法,而不管绑定参数的值如何。QPSG禁用某些查询优化,查看绑定参数的值,这可以使某些查询更慢。但QPSG具有更可预测行为的优势。在QPSG处于活动状态时,SQLite将始终在该字段中使用与实验室测试期间使用的查询计划相同的查询计划。SQLITE_DBCONFIG_ENABLE_QPSG SQLITE_DBCONFIG_ENABLE_QPSG选项激活或取消激活查询计划程序稳定性保证(QPSG)。当QPSG处于活动状态时,单个SQL查询语句将始终使用相同的算法,而不管绑定参数的值如何。QPSG禁用某些查询优化,查看绑定参数的值,这可以使某些查询更慢。但QPSG具有更可预测行为的优势。在QPSG处于活动状态时,SQLite将始终在该字段中使用与实验室测试期间使用的查询计划相同的查询计划。SQLITE_DBCONFIG_ENABLE_QPSG SQLITE_DBCONFIG_ENABLE_QPSG选项激活或取消激活查询计划程序稳定性保证(QPSG)。当QPSG处于活动状态时,单个SQL查询语句将始终使用相同的算法,而不管绑定参数的值如何。QPSG禁用某些查询优化,查看绑定参数的值,这可以使某些查询更慢。但QPSG具有更可预测行为的优势。在QPSG处于活动状态时,SQLite将始终在该字段中使用与实验室测试期间使用的查询计划相同的查询计划。这可以使一些查询变慢。但QPSG具有更可预测行为的优势。在QPSG处于活动状态时,SQLite将始终在该字段中使用与实验室测试期间使用的查询计划相同的查询计划。这可以使一些查询变慢。但QPSG具有更可预测行为的优势。在QPSG处于活动状态时,SQLite将始终在该字段中使用与实验室测试期间使用的查询计划相同的查询计划。

C界面 | C Interface相关

1.64-Bit Integer Types
2.A Handle To An Open BLOB
3.An Introduction To The SQLite C/C++ Interface
4.Application Defined Page Cache
5.Attempt To Free Heap Memory
6.Authorizer Action Codes
7.Authorizer Return Codes
8.Automatically Load Statically Linked Extensions
9.Binding Values To Prepared Statements
10.C/C++ Interface For SQLite Version 3
11.C/C++ Interface For SQLite Version 3 (old)
12.Cancel Automatic Extension Loading
13.Checkpoint a database
14.Checkpoint Mode Values
15.Close A BLOB Handle
16.Closing A Database Connection
17.Collation Needed Callbacks
18.Column Names In A Result Set
19.Commit And Rollback Notification Callbacks
20.Compare the ages of two snapshot handles
21.Compile-Time Authorization Callbacks
22.Compile-Time Library Version Numbers
23.Compiling An SQL Statement
24.Configuration Options
25.Configure an auto-checkpoint
26.Configure database connections
27.Configuring The SQLite Library
28.Conflict resolution modes
29.Constants Defining Special Destructor Behavior
30.Convenience Routines For Running Queries
31.Copy And Free SQL Values
32.Count The Number Of Rows Modified
33.Create Or Redefine SQL Functions
34.Custom Page Cache Object
35.Data Change Notification Callbacks
36.Database Connection For Functions
37.Database Connection Handle
38.Database Connection Status
39.Database Snapshot
40.Declare The Schema Of A Virtual Table
41.Declared Datatype Of A Query Result
42.Define New Collating Sequences
43.Deprecated Functions
44.Deprecated Soft Heap Limit Interface
45.Destroy A Prepared Statement Object
46.Destroy a snapshot
47.Determine if a database is read-only
48.Determine If A Prepared Statement Has Been Reset
49.Determine If An SQL Statement Is Complete
50.Determine If An SQL Statement Writes The Database
51.Determine The Virtual Table Conflict Policy
52.Device Characteristics
53.Dynamically Typed Value Object
54.Enable Or Disable Extended Result Codes
55.Enable Or Disable Extension Loading
56.Enable Or Disable Shared Pager Cache
57.Error Codes And Messages
58.Error Logging Interface
59.Evaluate An SQL Statement
60.Experimental Interfaces
61.Extended Result Codes
62.Extract Metadata About A Column Of A Table
63.File Locking Levels
64.Find The Database Handle Of A Prepared Statement
65.Find the next prepared statement
66.Finding The Subtype Of SQL Values
67.Flags For File Open Operations
68.Flags for the xAccess VFS method
69.Flags for the xShmLock VFS method
70.Flush caches to disk mid-transaction
71.Formatted String Printing Functions
72.Free Memory Used By A Database Connection
73.Function Auxiliary Data
74.Function Flags
75.Fundamental Datatypes
76.Impose A Limit On Heap Size
77.Index Of A Parameter With A Given Name
78.Initialize The SQLite Library
79.Interrupt A Long-Running Query
80.Introduction
81.Last Insert Rowid
82.List Of SQLite Constants
83.List Of SQLite Functions
84.List Of SQLite Objects
85.Load An Extension
86.Loadable Extension Thunk
87.Low-Level Control Of Database Files
88.Low-level system error code
89.Maximum xShmLock index
90.Memory Allocation Routines
91.Memory Allocation Subsystem
92.Memory Allocator Statistics
93.Move a BLOB Handle to a New Row
94.Mutex Handle
95.Mutex Methods Object
96.Mutex Types
97.Mutex Verification Routines
98.Mutexes
99.Name Of A Host Parameter
100.Name Of The Folder Holding Database Files
Sqlite

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来

主页 https://sqlite.org/
源码 https://www.sqlite.org/src/
发布版本 3.21.0

Sqlite目录

1.C界面 | C Interface
2.C Interface: Session Module
3.CLI
4.数据库文件表 | Database File Format
5.数据类 | Datatypes
6.动态内存分配 | Dynamic Memory Allocation
7.外键约束 | Foreign Key Constraints
8.全文索引 | Full-Text Search
9.损坏方式 | How To Corrupt
10.JSON
11.语言 | Language
12.局限性 | Limits
13.锁定和并发 | Locking and Concurrency
14.其他 | Miscellaneous
15.PRAGMA Statements
16.查询计划程序 | Query Planner
17.R*Tree Module
18.RBU Extension
19.语法图 | Syntax Diagrams
20.Tcl Interface
21.虚拟表机制 | Virtual Table Mechanism
22.预写日志 | Write-Ahead Logging
23.SQL 教程
24.SQL 简介
25.SQL 语法
26.SQL DELETE 语句
27.SQL UPDATE 语句
28.SQL NOT NULL 约束
29.SQL 约束
30.SQL CREATE TABLE 语句
31.SQL CREATE DATABASE 语句
32.SQL INSERT INTO SELECT 语句
33.SQL SELECT INTO 语句
34.SQL CREATE VIEW、REPLACE VIEW、 DROP VIEW 语句
35.SQL AUTO INCREMENT 字段
36.SQL ALTER TABLE 语句
37.SQL 撤销索引、表以及数据库
38.SQL CREATE INDEX 语句
39.SQL DEFAULT 约束
40.SQL CHECK 约束
41.SQL FOREIGN KEY 约束
42.SQL PRIMARY KEY 约束
43.SQL UNIQUE 约束
44.SQL 通用数据类型
45.SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
46.SQL NULL 值 – IS NULL 和 IS NOT NULL
47.SQL Server 和 MySQL 中的 Date 函数
48.SQL MS Access、MySQL 和 SQL Server 数据类型
49.SQL 函数
50.SQL 总结
51.SQL 主机
52.SQL 快速参考
53.SQL ROUND() 函数
54.SQL Server GETDATE() 函数
55.MySQL DATE_FORMAT() 函数
56.MySQL DATEDIFF() 函数
57.MySQL DATE_SUB() 函数
58.MySQL DATE_ADD() 函数
59.MySQL EXTRACT() 函数
60.MySQL DATE() 函数
61.MySQL CURTIME() 函数
62.MySQL CURDATE() 函数
63.MySQL NOW() 函数
64.SQL Server CONVERT() 函数
65.SQL Server DATEDIFF() 函数
66.SQL Server DATEADD() 函数
67.SQL Server DATEPART() 函数
68.SQLite 命令
69.SQLite 安装
70.SQLite 简介
71.SQLite 运算符
72.SQLite Select 语句
73.SQLite 删除表
74.SQLite 创建表
75.SQLite Insert 语句
76.SQLite 分离数据库
77.SQLite 附加数据库
78.SQLite 创建数据库
79.SQLite 数据类型
80.SQLite 语法
81.SQLite Order By
82.SQLite Limit 子句
83.SQLite Glob 子句
84.SQLite Like 子句
85.SQLite Delete 语句
86.SQLite Update 语句
87.SQLite AND/OR 运算符
88.SQLite Where 子句
89.SQLite 表达式
90.SQLite Distinct 关键字
91.SQLite Having 子句
92.SQLite Group By
93.SQLite Join
94.SQLite 约束
95.SQLite PRAGMA
96.SQLite 事务
97.SQLite 视图
98.SQLite Truncate Table
99.SQLite Alter 命令
100.SQLite Indexed By