sqlite3数据库归纳

前端之家收集整理的这篇文章主要介绍了sqlite3数据库归纳前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sqlite3数据库是关系型数据库,体积小,支持ACID事物。 @H_301_1@

@H_301_1@
ACID ,指数据库事务正确执行的四个基本要素的缩写。包含: 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。) @H_301_1@

@H_301_1@
/********************************************/ @H_301_1@
sqlite是一个轻量级的嵌入式数据库。 @H_301_1@
特征: @H_301_1@
1.零配置,无需安装和管理配置; @H_301_1@
2.储存在单一磁盘文件中的一个完整的数据库; @H_301_1@
3.数据库文件可以在不同字节顺序的机器间自由共享; @H_301_1@
4.支持数据库大小至2TB; @H_301_1@
5.足够小,全部源代码大致3万行c代码,250KB; @H_301_1@
6.比以前流行的大多数数据库对数据的操作要快; @H_301_1@

@H_301_1@
/*******************************************/ @H_301_1@
sqlite数据库采用模块化设计,由8个独立的模块构成,这些独立模块又构成了三个主要的子系统,模块将复杂的查询过程分解为细小的工作进行处理。 @H_301_1@

@H_301_1@

@H_301_1@

@H_301_1@
/*******************************************/ @H_301_1@
手工建数据库: @H_301_1@
linux@ubuntu:~$ sqlite3 my.db @H_301_1@

@H_301_1@
查看帮助: @H_301_1@
sqlite> .help @H_301_1@

@H_301_1@
文件存放位置: @H_301_1@
sqlite> .database @H_301_1@

@H_301_1@
退出: @H_301_1@
sqlite> .quit @H_301_1@

@H_301_1@
查看表: @H_301_1@
sqlite> .tables @H_301_1@

@H_301_1@
显示表的结构: @H_301_1@
sqlite> .schema @H_301_1@

@H_301_1@
1.建表: @H_301_1@
sqlite> create table usr(id integer primary key,name text,age integer null,gender text,salary real not null); @H_301_1@
2.删除表 @H_301_1@
sqlite> drop table usr; @H_301_1@
3.增: @H_301_1@
sqlite> insert into usr(id,name,age,salary) values(2,'liu',20,6000); @H_301_1@
4.删 @H_301_1@
sqlite> delete from usr where id = 2; @H_301_1@
5.改: @H_301_1@
sqlite> update usr set gender = 'man' where id = 3; @H_301_1@
6.查: @H_301_1@
sqlite> select * from usr where id = 2; @H_301_1@
7.在表中添加字段 @H_301_1@
sqlite>alter table usr add column country text; @H_301_1@

@H_301_1@
/******************************************/ @H_301_1@
代码创建 @H_301_1@
sqlite编程接口 @H_301_1@
1.打开sqlite数据库 @H_301_1@
int sqlite3_open(char *path,sqlite3 **db); @H_301_1@
path: 数据库文件的路径 @H_301_1@
db: 指向sqlite句柄的指针 @H_301_1@
返回值: 成功返回0,失败返回错误码(非零值) @H_301_1@

@H_301_1@
2.关闭sqlite数据库 @H_301_1@
int sqlite3_close(sqlite3 *db); @H_301_1@
返回值: 成功返回0,失败返回错误码 @H_301_1@
@H_301_1@
3. @H_301_1@
const char *sqlite3_errmsg(sqlite3 *db); @H_301_1@
返回值: 返回错误信息 @H_301_1@

@H_301_1@
程序的编译方法: @H_301_1@
gcc -o test test.c -lsqlite3 @H_301_1@

@H_301_1@
4.执行sql操作 @H_301_1@
typedef int (*sqlite3_callback)(void *,int,char **,char **); @H_301_1@

@H_301_1@
int sqlite3_exec(sqlite3 *db,const char *sql,sqlite3_callback callback,void *,char **errmsg); @H_301_1@
db: 函数库句柄 @H_301_1@
sql: sql语句 @H_301_1@
callback:回调函数 @H_301_1@
errmsg: 错误信息指针的地址 @H_301_1@
返回值: 成功返回0,失败返回错误码 @H_301_1@

@H_301_1@
5.每次找到一条记录自动执行一次回调函数 @H_301_1@
typedef int (*sqlite3_callback)(void *para,int f_num,char **f_value,char **f_name); @H_301_1@
para: 传递回调函数的参数 @H_301_1@
f_num: 记录包含的字段数目 @H_301_1@
f_value: 包含每个字段值的指针数组 @H_301_1@
f_name: 包含每个字段名称的指针数组 @H_301_1@
返回值: 成功返回0,失败返回-1 @H_301_1@

@H_301_1@
6.不使用回调函数执行sql操作 @H_301_1@
int sqlite3_get_table(sqlite3 *db,char ***resultp,int *nrow,int *ncolumn,char **errmsg); @H_301_1@
db: 数据库句柄 @H_301_1@
sql: sql语句 @H_301_1@
resultp: 用来指向sql执行结果的指针 @H_301_1@
nrow: 满足条件的记录的数目 @H_301_1@
ncolumn: 每条记录包含的字段数目 @H_301_1@
errmsg: 错误信息指针的地址 @H_301_1@
返回值: 成功返回0,失败返回错误码 @H_301_1@

猜你在找的Sqlite相关文章