文章目录
sqlite3 数据库
SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。
linux下使用步骤
1.sqlite3 数据库的安装
(1).本地安装
sudo dpkg -i *.deb
(2).在线安装
sudo apt-get install-sqlite3
2.SQLITE3 基本命令(所有数据库通用)
(1).系统命令
以 . 开头的命令
.help 帮助
.quit 退出
.exit 退出
.schema 查看创建的表的结构图 .schema <table_name>
.databases 查看打开的数据库
.table 查看当前数据库下的表格
(2).系统命令
(基本的sql不以 ,开头 以 ;结尾的命令)
创建一张数据库的表 eg:stu
create table stu (id Integer , name char , score Integer);
删除表
drop table <table_name> ;
插入一条记录
insert into stu values(1001,"zhangsan",80); 双引号与单引号效果相同
部分插入一条记录
insert into <table_name> values (value1, value2,…);
eg: insert into stu (name , score) values(1003,"wangwu");
查询所有字段记录
select * from <table_name>;
eg:select * from stu; 查询stu表中所有的字段
查询部分字段
select name , score from stu; 查询stu中的部分字段(name和score)
按条件查找
select * from <table_name> where <expression>;
eg: select * from stu where score=80;
eg: select * from stu where score=80 and name='zhangsan'; 根据部分条件查找字段同时满足两个条件
eg: select * from stu wherr score=80 or name='lisi'; 查询满足任意一个条件的字段
删除一条记录
delete from <table_name> where <expression>;
eg: delete from stu; 删除整个字段
eg: delete from stu where 80; where后跟条件 删除满足条件的字段 and和or 也可以使用
更新一条记录
update <table_name> set <f1=value1>, <f2=value2>… where <expression>;
eg: update stu set name = 'wangwu' where id =1001;
eg: undate stu set name = 'wangwu' ,score = 88 where id =1001; 同时更改多个用 , 隔开
向表中插一列
alter table <table> add column <field> <type> default …;
eg: alter table stu add colum address char; 插入新的列 address char
删除一列
sqlite3 不支持直接删除一列
删除原有的表
drop table stu;
将新表的名字改成原有的旧表的名字
alter table stu1 rename to stu;
3.SQLite编程接口
打开数据库
int sqlite3_open(char *path,sqlite3 **db);
功能:打开sqlite数据库
path:数据库文件路径
db:指向sqlite句柄的指针
返回值:成功返回0,失败返回错误码(非零值)
关闭数据库
int sqlite3_close(sqlite3 *db);
功能:关闭sqlite数据库
返回值:成功返回0,失败返回错误码
错误信息
const char *sqlite3_errmg(sqlite3 *db);
返回值:返回错误信息地址
回调函数
功能:查询的结果,是一个函数指针类型,传递一个函数名即可
Typedef int (*sqlite3_callback)(void*, int,char**, char **);
常见函数
int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
功能:执行SQL语句
db:数据库句柄
sql:SQL语句
callback:回调函数 只有sql为查询语句的时候,才会执行此语句
void * :给回调函数传参
errmasg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
int (*sqlite3_callback)(void *para, int f_num,char **f_value,char **f_name);
―功能:每找到一条记录自动执行一次回调函数
―para:传递给回调函数的参数
―f_num:记录中包含的字段数目
―f_value:包含每个字段值的指针数组
―f_name:包含每个字段名称的指针数组
―返回值:成功返回0,失败返回-1
不适用回调函数 int sqlite3_get_table(sqlite3 *db,const char *sql, char ***resultp, int*nrow, int*ncolumn,char **errmsg);
―功能:执行SQL操作
―db:数据库句柄
―sql:SQL语句
―resultp:用来指向sql执行结果的指针
―nrow:满足条件的记录的数目
―ncolumn:每条记录包含的字段数目
―errmsg:错误信息指针的地址
―返回值:成功返回0,失败返回错误码
2683

被折叠的 条评论
为什么被折叠?



