- 一 数据库创建和校准函数代码实现
- 二 插入 函数
- 三 删除函数
- 四 更新函数
- 五 查询函数
数据库创建函数
校准函数
open 函数: 参数一:数据库名字 参数二 :二级指针 定义一个一级指针取地址赋值给他即可
校准函数 : 参数说明:open的指针变量 (第一个蚕食) 执行的语句:create table stu(id Integer,name char,score Integer);(第二个参数) 第三第四 参数:暂不用回调函数 直接都为NULL 第五 参数 :二级指针 定义一个一级指针取地址赋值给他即可
#include二 插入 函数#include #include #include #define sqlite_name "student.db" int main() { sqlite3 *db; char *errmsg; if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { printf("sqlite3_opne is successn"); } if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { { printf("sqlite3_exec is successn"); } return 0; }
#include#include #include #include #define sqlite_name "student.db" int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数 { int id; char name[32]={}; int score; char sql[128]={}; printf("id:"); scanf("%d",&id);//输入学号 getchar(); printf("name:"); scanf("%s",name);//输入名字 getchar(); printf("score:"); scanf("%d",&score);//输入成绩 getchar(); sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存 放在一个地址 if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("stu is successn"); } return 0; } int main() { sqlite3 *db; char *errmsg; if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { printf("sqlite3_open is successn"); } if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { { printf("sqlite3_exec is successn"); } while(1) { int com; printf("*******************n"); printf("1:inster 2:query 3:update 4:deleten"); scanf("%d",&id); getchar(); switch(com) { case 1 :do_insert(db);//插入 成绩 学号 名字 的函数 break; } } return 0; }
1 插入函数的形参和函数名 do_insert(sqlite3 *db); 2 在里面用scanf 输入 并且吸收回车 即可 3 用:sprintf存储函数 把数据放在一起 4 用 sqlite3_exec校准三 删除函数
#include四 更新函数#include #include #include #define sqlite_name "student.db" int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数 { int id; char name[32]={}; int score; char sql[128]={}; printf("id:"); scanf("%d",&id);//输入学号 getchar(); printf("name:"); scanf("%s",name);//输入名字 getchar(); printf("score:"); scanf("%d",&score);//输入成绩 getchar(); sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存 放在一个地址 if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("stu is successn"); } return 0; } int do_insert(sqlite *db) { int id; char name[32]={}; char sql[128]={}; char *errmsg; printf("delete id:"); scanf(“%d”,&id); sprintf(sql,"delete from stu where id=%d",id); if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("delete is successn"); } reurn 0; } int main() { sqlite3 *db; char *errmsg; if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { printf("sqlite3_open is successn"); } if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { { printf("sqlite3_exec is successn"); } while(1) { int com; printf("*******************n"); printf("1:inster 2:query 3:update 4:deleten"); scanf("%d",&id); getchar(); switch(com) { case 1 :do_insert(db);//插入 成绩 学号 名字 的函数 case 4:do_insert(db);//删除成绩 学号 名字 的函数 break; } } return 0; }
#include五 查询函数#include #include #include #define sqlite_name "student.db" int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数 { int id; char name[32]={}; int score; char sql[128]={}; printf("id:"); scanf("%d",&id);//输入学号 getchar(); printf("name:"); scanf("%s",name);//输入名字 getchar(); printf("score:"); scanf("%d",&score);//输入成绩 getchar(); sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存 放在一个地址 if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("stu is successn"); } return 0; } int do_update(sqlite3 *db) { int id; char name[32]={}; char sql[128]={}; char *errmsg; printf("after update id:"); scanf(“%d”,&id); getchar(); printf("after update name :"); scanf(“%s”,name); getchar(); printf("after update score:"); scanf(“%d”,&id); getchar(); sprintf(sql,"update stu set name='%s',score=%d where id=%d",name,score,id); if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("update is successn"); } reurn 0; } int do_delete( sqlite3 *db) { int id; char sql[128]={}; char *errmsg; printf("delete id:"); scanf(“%d”,&id); getchar(); sprintf(sql,"delete from stu where id=%d",id); if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("delete is successn"); } } int main() { sqlite3 *db; char *errmsg; if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { printf("sqlite3_open is successn"); } if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { { printf("sqlite3_exec is successn"); } while(1) { int com; printf("*******************n"); printf("1:inster 2:query 3:update 4:deleten"); scanf("%d",&id); getchar(); switch(com) { case 1 :do_insert(db);//插入 成绩 学号 名字 的函数 case 2:do_query(db);//查询成绩 学号 名字 的函数 case 3:do_update(db);//更新成绩 学号 名字 的函数 case 4:do_insert(db);//删除成绩 学号 名字 的函数 break; } } return 0; }
老是去数据库查 很麻烦 直接写一个
#include#include #include #include #define sqlite_name "student.db" int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数 { int id; char name[32]={}; int score; char sql[128]={}; printf("id:"); scanf("%d",&id);//输入学号 getchar(); printf("name:"); scanf("%s",name);//输入名字 getchar(); printf("score:"); scanf("%d",&score);//输入成绩 getchar(); sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存 放在一个地址 if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("stu is successn"); } return 0; } int do_update(sqlite3 *db) { int id; char name[32]={}; char sql[128]={}; char *errmsg; printf("after update id:"); scanf(“%d”,&id); getchar(); printf("after update name :"); scanf(“%s”,name); getchar(); printf("after update score:"); scanf(“%d”,&id); getchar(); sprintf(sql,"update stu set name='%s',score=%d where id=%d",name,score,id); if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("update is successn"); } reurn 0; } int do_delete( sqlite3 *db) { int id; char sql[128]={}; char *errmsg; printf("delete id:"); scanf(“%d”,&id); getchar(); sprintf(sql,"delete from stu where id=%d",id); if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("delete is successn"); } } int callback(void *para,int_f_num,char **argv,char **f_name) { int i; for(i=0;i printf(" %s ",argv[i]);//指针数组 每个地址就是一个元素 } return 0; } int do_query(sqlite3 *db) { char sql[128]={}; char *errmsg; sprintf(sql,"select *from stu"); if(sqlite3_exec(db,sql,callback,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断 { printf("%sn",errmsg); exit(1); } else//成功 打印信息 { printf("select is successn"); } return 0; } int main() { sqlite3 *db; char *errmsg; if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { printf("sqlite3_open is successn"); } if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3 不等于SQLITE_OK 就是失败 { printf("%sn",sqlite3_errmsg(db)); exit(1); } else//否则就是成功 { { printf("sqlite3_exec is successn"); } while(1) { int com; printf("*******************n"); printf("1:inster 2:query 3:update 4:deleten"); scanf("%d",&id); getchar(); switch(com) { case 1 :do_insert(db);//插入 成绩 学号 名字 的函数 case 2:do_query(db);//查询成绩 学号 名字 的函数 case 3:do_update(db);//更新成绩 学号 名字 的函数 case 4:do_insert(db);//删除成绩 学号 名字 的函数 break; } } return 0; }
总结
1 先把想实现的数据存入sprintf 再存放到sqlite3_exec函数 2 sqlite3_exec 是起到校准的作用 校准正确就可以正常操作



