• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-06-23 09:42 Aet 隐藏边栏 |   抢沙发  3 
文章评分 1 次,平均分 5.0

简述

SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程。

SQL语句是SQL操作的指令,我们用C/C++访问数据库时,需要用char*C字符串来保存SQL语句,然后调用相应sqlite3库的函数,传入C字符串,来执行SQL指令。

下载

使用

  • 把下载的源码中如下文件添加到工程源文件目录
    • sqlite3.c
    • sqlite3.h
    • sqlite3ext.h
    • sqlite3.def
  • 配置属性->预处理器->预处理器定义,添加:
    • SQLITE_ENABLE_RTREE
    • SQLITE_ENABLE_COLUMN_METADATA
  • 配置属性->链接器->输入->模块定义文件,添加:
    • sqlite3.def

操作

数据定义

  • 新建表
    • create table table_name(字段名1 字段类型1,字段名2 字段类型2,...)
    • create table if not exists table_name(字段名1 字段类型1,字段名2 字段类型2,...)
  • 删除表
    • drop table table_name
    • drop table if exists table_name

数据操作

  • 添加
    • insert into table_name (name,age) values ('aet',18);
  • 修改
    • update table_name set name = 'aet' ,age = 20;
    • update table_name set age = 20 where name = 'aet';
  • 删除
    • delete from table_name
    • delete from table_name where age = 20;
    • delete from table_name where age > 12 and age < 20;

数据查询

  • select

存储类型

  • integer
  • real
  • text
  • blob

字段约束

  • not null
    • 字段值不能为空
  • unique
    • 字段值唯一
  • default
    • 指定字段默认值
  • primary key
    • 主键
    • 作为唯一标识
    • 可以是一个或多个字段
    • 默认包含not nullunique两个约束
  • autoincrement
    • 当主键是integer类型时,添加autoincrement可以实现主键值的自动增长
  • foreign key

sqlite3库函数

打开数据库

int sqlite3_open_v2(const char* filename,sqlite3** ppDb,int flags,const char* zVfs);

  • 数据库文件路径
  • 数据库实例
  • 标识
    • SQLITE_OPEN_NOMUTEX: 设置数据库连接运行在多线程模式
    • SQLITE_OPEN_FULLMUTEX:设置数据库连接运行在串行模式
    • SQLITE_OPEN_SHAREDCACHE:设置运行在共享缓存模式
    • SQLITE_OPEN_PRIVATECACHE:设置运行在非共享缓存模式
    • SQLITE_OPEN_READWRITE:指定数据库连接可以读写
    • SQLITE_OPEN_CREATE:如果数据库不存在,则创建
  • 数据库虚拟机的名字
    • 不需要:NULL

检查sql语句合法性

int sqlite3_prepare_v2(sqlite3* db,const char* zSql,int nByte,sqlite3_stmt** ppStmt,const char** pzTail);

  • 数据库实例
  • 需要检查的sql语句
  • sql语句的最大字节长度
    • -1自动计算
  • stmt句柄,存储sql stmt指令

执行stmt句柄

int sqlite3_step(sqlite3_stmt* stmt);

  • stmt句柄

获取第iCol字段的值

示例

创建数据库

增加删除修改

查询

关闭数据库连接

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享