sqlite3是单个文件类型的小型数据库,他只有单单的10mb,所以经常用于嵌入式设备当中,那对于sqlite3如何与c语言进行联系呢,下文就来介绍一下。

sqlite3本身就是c语言所写出来的数据库,所以我们直接下载它的源文件。

在下载好压缩包后进行解压,我这里是linux系统,所以使用命令

sudo  tar -zxvf sqlite3-xxxx.tar.gz

解压完成之后,我们将文件夹里面的sqlite3.h和sqllite3.c拿出来,他就是我们要使用的库函数。

在创建新文件,我们要把头文件引入

#include "sqlite3.h"
#include<stdio.h>

这样就可以使用sqlite3为我们提供的函数了。

打开

使用下列函数

sqlite3 *db; //创建一个数据库句柄变量
//这个句柄胡数据类型就是sqlite3类型胡
//相当于文件描述符,我们打开一个数据库并且打开数据库给到db
//接下来对db操作就是 对这个数据库文件操作
int ret=sqlite3_open("cmc.db",&db);
//将cmc.db放入了对象db当中
if(ret!=SQLITE_OK){
//失败
printf("打开失败!!\n");
}else{
printf("打开成功!!\n");
}

关闭


int ret=sqlite3_close(db);
if(ret!=SQLITE_OK){
//失败
printf("关闭失败!!\n");
}else{
printf("关闭成功!!\n");
}

更改系列sql语句


char table_name[20]="";
printf("请输入你要创建的表名称:\n");
scanf("%s",&table_name);
char sql[100]="";
sprintf(sql,"create table  %s( id integer, name test, username test)",table_name);
char *error_msg="";
sqlite3_exec(db,sql,NULL,NULL,&error_msg);

if(error_msg!=NULL){
printf("表创建错误%s\n",error_msg);
}

查询系列sql语句


SQLITE_API int sqlite3_get_table(
sqlite3 *db,          / 你要给哪个数据库发送,一个打开了的db/
const char *zSql,     / 你要发什么用于读操作的sql语句字符串/
char ***pazResult,    /存储   查询得到的结果集合表指针   的地址/
int* pnRow,           / 存储    查询得到的结果集表的有效数据行数     的地址/
int* pnColumn,        / 存储    查询得到的结果集表的有效数据列数     的地址/
char ** pzErrmsg       / 存储    错误信息字符串指针    的地址/
);
char table_name[20]="";
char sql[100]="";
sprintf(sql,"select * from user");
char *error_msg="";
int r=0,c=0;
char **table=NULL;
sqlite3_get_table(db,sql,&table,&r,&c,&error_msg);

for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
printf("%s\t",table[(i)*c+j]);
}
printf("\n");
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐