sqlite3 数据库的简单实用示例

sqlite3 数据库的简单实用示例,第1张

概述1、创建数据库 sqlite3 *db = NULL; int result = sqlite3_open(db_name,&db); //数据库的名字,和一个sqlite3类型变量 2、创建标头 sprintf(sql,"create table %s (id int,name varchar,score int)",db_name); sqlite3_exec(db,sql,NULL,NULL 1、创建数据库 sqlite3 *db = NulL; int result = sqlite3_open(db_name,&db); //数据库的名字,和一个sqlite3类型变量
2、创建标头 sprintf(sql,"create table %s (ID int,name varchar,score int)",db_name); sqlite3_exec(db,sql,NulL,&errmsg);
3、插入 sprintf(sql,"insert into %s values (%d,\"%s\",%d)", db_name,stu->ID,stu->name,stu->score); //插入的时候,有几列就必须写几样,否则写入不进去数据库 sqlite3_exec(db,&errmsg);
4、打印 (1)sprintf(sql,"select * from %s",db_name); sqlite3_exec(db,show_myinfo,&errmsg); (2)sprintf(sql,db_name); sqlite3_get_table(db,&dbResult,&row,&col,&errmsg);
5、删除 sprintf(sql,"delete from %s where ID=%d",db_name,ID); sqlite3_exec(db,&errmsg);
6、查找 (1)sprintf(sql,"select * from %s where name='%s'",name);//查找名字%s必须要加上'',[]加不加都可以,from千万别打错了 sqlite3_exec(db,(voID *)sql,"select * from %s where [ID]='%d'",ID); sqlite3_get_table(db,&errmsg);
7、排序 (1)sprintf(sql,"select * from %s order by name","select * from %s order by ID",&errmsg);
8、关闭数据库 sqlite3_close(db); demo示例

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include"sqlite3.h"

typedef struct str
{
int ID;
char name[30];
int score;
}STU;

/****************************************************
*语法格式:int show_myinfo(voID *para,int n_column,
char **column_value,char **column_name)
*功能描述:是回调函数指针,当这条语句 执行之后,sqlite3会去调用你提供的这个函数。
*参数类型:para=当执行sqlite3_exec的时候传递给回 调函数的参数。
n_column=结果集的列数
column_value=结果集中某一行信息的一维数组 的地址。
column_name=结果集中每列列名的数组的地址。 回调函数的返回值:若为非0值,则通知 sqlite3_exec终止回调。
*返回描述:整形
******************************************************/
int show_myinfo(voID *para,
char **column_value,char **column_name)
{
int i = 0;
//printf("para = %d\n",*((int *)para));
//printf("n_column=%d\n",n_column);
//for(i=0;i<n_column;i++)
//{
//printf("%s\t",column_name[i]);
//}

for(i=0;i<n_column;i++)
{
printf("%s\t",column_value[i]);
}
printf("\n");
return 0;
}

/****************************************************
*语法格式:sqlite3 *create_db(char *db_name)
*功能描述:打开数据库
*参数类型:db_name=数据库文件名,必需是(UTF-8)编码。
*返回描述:返回数据指针
******************************************************/
sqlite3 *create_db(char *db_name)
{
sqlite3 *db = NulL;
int result = sqlite3_open(db_name,&db);
if(result)
{
printf("sqlite3_open %s error\n",db_name);
sqlite3_close(db);
_exit(-1);
}
else
{
printf("create %s succeed!\n",db_name);
}
return db;
}

/****************************************************
*语法格式:voID create_db_table(sqlite3 *db,char *db_name)
*功能描述:创建表头 ID name score
*参数类型:db=数据库指针,db_name=数据库名
*返回描述:无
******************************************************/
voID create_db_table(sqlite3 *db,char *db_name)
{
char sql[100] = "";
char *errmsg = NulL;
sprintf(sql,db_name);
sqlite3_exec(db,&errmsg);

}

/****************************************************
*语法格式:voID insert_db(sqlite3 *db,char *db_name,STU *stu)
*功能描述:插入数据
*参数类型:db=数据库指针,db_name=数据库名,stu=插入数据的结构体
*返回描述:无
******************************************************/
voID insert_db(sqlite3 *db,STU *stu)
{
char sql[100] = "";
char *errmsg = NulL;
sprintf(sql,
db_name,stu->score);//插入的时候,有几列就必须写几样,否则写入不进去数据库。不应该啊??

sqlite3_exec(db,&errmsg);

}

/****************************************************
*语法格式:voID print_db_exec(sqlite3 *db,char *db_name)
*功能描述:使用sqlite3_exec函数获取数据库信息,并打印出来
*参数类型:db=数据库指针,db_name=数据库名,
*返回描述:无
******************************************************/
voID print_db_exec(sqlite3 *db,&errmsg);

}
/****************************************************
*语法格式:voID print_db_get_table(sqlite3 *db,char *db_name)
*功能描述:使用sqlite3_get_table函数获取数据库信息,并打印出来
*参数类型:db=数据库指针,db_name=数据库名,
*返回描述:无
******************************************************/
voID print_db_get_table(sqlite3 *db,char *db_name)
{
char sql[100] = "";
char *errmsg = NulL;
char **dbResult = NulL;
int row = 0,col = 0,i = 0,j = 0,index = 0;
sprintf(sql,db_name);
sqlite3_get_table(db,&errmsg);
//printf("ddddddddddrow=%d,col=%d\n",row,col);
for(i=0;i<row+1;i++)
{
for(j=0;j<col;j++)
{
printf("%s\t",dbResult[index]);
++index;
}
printf("\n");
}
}

/****************************************************
*语法格式:voID delete_db_by_ID(sqlite3 *db,int ID)
*功能描述:通过ID号删除数据库中的一行数据
*参数类型:db=数据库指针,db_name=数据库名,ID=数据库中的ID号
*返回描述:无
******************************************************/
voID delete_db_by_ID(sqlite3 *db,int ID)
{
char sql[100] = "";
char *errmsg = NulL;
sprintf(sql,ID);
sqlite3_exec(db,&errmsg);

}
/****************************************************
*语法格式:voID find_db_by_name_exec(sqlite3 *db,char *name)
*功能描述:使用sqlite3_exec函数,通过名字查找数据库中的内容
*参数类型:db=数据库指针,db_name=数据库名,name=数据库中的name号
*返回描述:无
******************************************************/
voID find_db_by_name_exec(sqlite3 *db,char *name)
{
char sql[100] = "";
char *errmsg = NulL;
sprintf(sql,from千万别打错了
sqlite3_exec(db,&errmsg);
}
/****************************************************
*语法格式:voID find_db_by_ID_get_table(sqlite3 *db,int ID)
*功能描述:使用sqlite3_get_table函数,通过ID号查找数据库中的内容
*参数类型:db=数据库指针,db_name=数据库名,ID=数据库中的ID号
*返回描述:无
******************************************************/
voID find_db_by_ID_get_table(sqlite3 *db,int ID)
{
char sql[100] = "";
char *errmsg = NulL;
char **dbResult = NulL;
int row,col,i,j;
int index = 0;
sprintf(sql,ID);
sqlite3_get_table(db,&errmsg);

//printf("row=%d,col=%d,errmsg=%s\n",errmsg);
for(i=0;i<row+1;i++)
{
for(j=0;j<col;j++)
{
printf("%s\t",dbResult[index++]);
}
printf("\n");
}
}
/****************************************************
*语法格式:voID order_db_by_name_exec(sqlite3 *db,char *db_name)
*功能描述:使用sqlite3_exec函数,通过名字排序数据库中的内容
*参数类型:db=数据库指针,db_name=数据库名
*返回描述:无
******************************************************/
voID order_db_by_name_exec(sqlite3 *db,&errmsg);
}
/****************************************************
*语法格式:voID order_db_by_ID_get_table(sqlite3 *db,char *db_name)
*功能描述:使用sqlite3_get_table函数,通过ID号排序数据库中的内容
*参数类型:db=数据库指针,db_name=数据库名
*返回描述:无
******************************************************/
voID order_db_by_ID_get_table(sqlite3 *db,char *db_name)//排序之后不会改变原来数据中数据的位置
{
char sql[100] = "";
char *errmsg = NulL;
char **dbResult = NulL;
int row,col;
sprintf(sql,&errmsg);

print_db_get_table(db,db_name);
}

int main(voID)
{
sqlite3 *db = NulL;

STU stu;
stu.ID = 76;
strcpy(stu.name,"halo");
stu.score = 55;

db = create_db("../test/aaaaaa.db");
create_db_table(db,"aaaaaa");
insert_db(db,"aaaaaa",&stu);

//print_db_exec(db,"aaaaaa");

printf("**********************************\n");

//delete_db_by_ID(db,stu.ID);

print_db_get_table(db,"aaaaaa");

//printf("\n**********************************\n");
//find_db_by_name_exec(db,"lihuibo");
//find_db_by_ID_get_table(db,1);

printf("\n**********************************\n");
//order_db_by_name_exec(db,"aaaaaa");

order_db_by_ID_get_table(db,"aaaaaa"); sqlite3_close(db); return 0; }

总结

以上是内存溢出为你收集整理的sqlite3 数据库的简单实用示例全部内容,希望文章能够帮你解决sqlite3 数据库的简单实用示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1174567.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-02
下一篇2022-06-02

发表评论

登录后才能评论

评论列表(0条)

    保存