初学sqlite3

这个东西不是属于ios的,但是是在学习ios的时候学习到的,所以也放在这里了。

 

1,今天看了SQLite数据库的东西,以前没有接触过这个数据库,这是一个嵌入式数据库,不需要配置。每一个statement都和一个connection关联,一个connection可以包含多个statement,而且每个连接有一个与数据库关联的B-tree和一个Paper。对数据库的任何操作,一个连接存在于一个事务下,一个连接决不会同时存在多个事务下。


2,SQLite支持事务,触发器,不支持存储过程,对于多条数据的插入没有专门的语句,只能在程序中使用循环插入。


3,触发器支持insert,update,delete,例子:
Drop Trigger If Exists MAIN.[tggr_xtmp];
Create Trigger MAIN.[tggr_xtmp] AFTER INSERT On [data_info] FOR EACH ROW
begin
insert into data_info values(‘aaaaaaaaaaa');
end;

这样,只要插入一条数据,就会再插入一条aaaaaaaaaaa


4,使用SQLite3的基本步骤:
1)建立连接:
int result = sqlite3_open([realPath UTF8String], &dbPointer);//打开可写路径文件
2)生成一个可执行的对象:
sqlite3_stmt *stmt;
3)需要执行的语句:
int result = sqlite3_prepare_v2(db, "SELECT * FROM data_info", -1, &stmt, NULL);
4)关闭stmt:
sqlite3_finalize(stmt);
5)关闭连接:
int result = sqlite3_close(dbPointer);


5,一些常用API:
INT sqlite3_prepare(sqlite3*, const CHAR*, INT, sqlite3_stmt**, const CHAR**);
INT sqlite3_bind_double(sqlite3_stmt*, INT, DOUBLE);
INT sqlite3_bind_int(sqlite3_stmt*, INT, INT);
INT sqlite3_bind_int64(sqlite3_stmt*, INT, long long INT);
INT sqlite3_bind_null(sqlite3_stmt*, INT);
INT sqlite3_bind_text(sqlite3_stmt*, INT, const CHAR*, INT n, void(*)(void*));
INT sqlite3_bind_text16(sqlite3_stmt*, INT, const void*, INT n, void(*)(void*));
INT sqlite3_step(sqlite3_stmt*);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值