首先我们先了解sql语句的几个基本操作函数的函数原型

打开或创建数据库:

sqlite3_open(const char *filename, sqlite3 **ppDb)

如果filename为NULL或者为 ':memory:'那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。
如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。

sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。

sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)

第一个参数 :sqlite3 是打开的数据库对象。
第二个参数:sqlite_callback 是一个回调。
第三个参数:data 作为其第一个参数。
第四个参数:errmsg 将被返回用来获取程序生成的任何错误。

关闭数据库

sqlite3_close(sqlite3*)

代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>static int callback(void *notused,int argc,char **argv,char **name)
{int i;for(i=0;i<argc;i++){printf("%s=%s\n",name[i],argv[i]?argv[i]:"NULL");}printf("\n");return 0;
}int main(int argc,char **argv)
{sqlite3 *db;char *zErrMsg = 0;int  rc;char *sql;const char *data = "Callback function called";rc = sqlite3_open("t.db",&db);     //打开数据库,如果不存在,创造数据库dbif(rc){fprintf(stderr,"can't open database:%s\n",sqlite3_errmsg(db));exit(0);}fprintf(stdout,"open database successfully\n");//创建表TEMPERTUREsql = "CREATE TABLE IF NOT EXISTS TEMPERTURE(""ID             INT IDENTITY(1,1)," "NAME           CAHR(8)," "AGE            INT(4));";rc = sqlite3_exec(db,sql,callback,0,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}fprintf(stdout,"Table created successfully\n");//插入语句sql = "INSERT INTO TEMPERTURE (ID,NAME,AGE) ""VALUES (1,'Paul', 32); " "INSERT INTO TEMPERTURE (ID,NAME,AGE) "  "VALUES (2, 'Allen', 25 ); "     "INSERT INTO TEMPERTURE (ID,NAME,AGE)" "VALUES (3,'Teddy', 23 );" "INSERT INTO TEMPERTURE (ID,NAME,AGE)" "VALUES (4,'Mark', 25 );";rc=sqlite3_exec(db,sql,callback,0,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}fprintf(stdout,"insert data successfully\n");//查询语句sql = "SELECT * from TEMPERTURE";rc = sqlite3_exec(db,sql,callback,(void*)data,&zErrMsg);if(rc != SQLITE_OK){fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);exit(0);}else{fprintf(stdout,"Option done successfully\n");fprintf(stdout,data);}return 0;
}

调试结果:

C语言编写简单的sql数据库相关推荐

  1. 基于c语言的简单的mysql数据库操作

    基于c语言的简单的mysql数据库操作 最近做项目需要利用c语言对mysql进行获取数据的操作,于是我对mysql社区提供的c语言调用mysql的部分api进行了简单封装,这里做下记录,方便以后回顾. ...

  2. 实用c语言函数源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  3. VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...

  4. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc

    实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...

  5. c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  6. 心碎的图案怎么用c语言编出来,教案实验2用c语言编写简单程序.doc

    教案实验2用c语言编写简单程序 实验2 用C语言编写简单程序 2.1 基本数据处理1.调试示例 改正下列程序中的错误,求华氏温度100oF对应的摄氏温度?计算公式如下,其中:c 表示摄氏温度,f 表示 ...

  7. 用C语言编写简单的通讯录(大一课程作业)

    用C语言编写简单的通讯录(大一课程作业) 该系统概述: 因本人只学习了C语言的基础部分,所以编写该系统时只使用了一个C文件.存储通讯录信息以txt文件方式保存. 系统设计: 显示主菜单主函数:int ...

  8. VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual ...

  9. 用C语言编写简单的求解对数函数

    用C语言编写简单的对数函数 作为一个图像处理芯片公司的工程师,支持不同sensor的曝光策略是一个ISP的基本功能,但是有的sensor曝光策略复杂,还需要加上sensor厂商自己添加的补丁,而ISP ...

最新文章

  1. docker 错误 A dependency job for docker.service failed. See ‘journalctl -xe‘ for details
  2. 真香,写代码神器!32寸曲面显示器免费送
  3. excel表中怎么让隐藏的表格中不粘贴内容-制作autohotkey快捷键
  4. Http状态行和状态码介绍
  5. python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)
  6. html背景只向x轴扩散,有趣的css—简单的下雨效果2.0版
  7. 美团点评2020年测试工程师笔试题
  8. automake 框架_[]GNU_Automake_中文.pdf
  9. mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
  10. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列...
  11. python之路8-内置模块介绍
  12. solaris系统的crontab定时任务
  13. 为报复老东家,程序员编码给自己转账553笔,金额超21万元
  14. 通过 TensorFlow 实现 AI 语音降噪提升 QQ 音视频通话质量
  15. UnityShader入门精要——运动模糊
  16. JAVA必背面试题和项目面试通关要点
  17. 简单图+Havel_Hakimi定理
  18. 花卡宝藏版2020版
  19. 达梦数据库的连接(四种方式-亲测可用)达梦数据库的几大小助手工具
  20. PTA 7-10 黑白三子棋局

热门文章

  1. 身份证号码验证算法 javascript实现
  2. [附源码]JAVA+ssm计算机毕业设计电影院购票系统(程序+Lw)
  3. Python自动化开发-Day4
  4. 液化气罐油罐车储油罐用凉凉胶隔热底漆 防热防雨
  5. 基于STM32单片机智能蓝牙PWM温控风扇带定时APP控制
  6. 从企划到发售,我是如何在四个月内制作出一款好游戏?
  7. lunix mysql密码正确登录不进去,没有密码却能登进去的解决办法
  8. zc706编译及qemu启动和使用
  9. 基于MFC实现电脑录屏小程序
  10. 排列数 A(n, m) 与组合数 C(n, m) 的求法