Ubuntu版本:ubuntu-gnome-16.04-desktop-amd64,gnome版

sqlie:sqlite3

-----------------------------------------------------------------------------------

1. 安装

1.1 下载源码

https://www.sqlite.org/download.html

1.2 编译安装

1) ./configure

2) ./make

3) ./make install

注:如果用apt-get install sqlite3进行安装,只会安装bin文件,不会安装库、头文件等。

1.3 查看是否安装成功: sqlite3 --version

2. 测试

以下demo实现了:创建数据库、创建表格、插入数据、查询数据、删除数据

gcc -o sqlite-test sqlite-test.c -lsqlite3

注:链接加上-lsqlite3

3. 代码

// by baoli
// 2017.05.15#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>  #define _DEBUG_  int main( void )
{  sqlite3 *db = NULL;  char *zErrMsg = 0;  int rc;  rc = sqlite3_open("test.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件  if( rc )  {  fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));  sqlite3_close(db);  exit(1);  }  else printf("\nYou have opened a sqlite3 database named test.db successfully!\n\n");  //创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中  char *sql = "CREATE TABLE SensorData(ID INTEGER PRIMARY KEY, SensorID INTEGER, SiteNum INTEGER, Time VARCHAR(12), SensorParameter REAL );" ;  sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );  #ifdef _DEBUG_  if(zErrMsg != NULL) printf("zErrMsg = %s \n", zErrMsg);  #endif   //插入数据   sql = "INSERT INTO \"SensorData\" VALUES(NULL , 11 ,  1 , '201705011206', 18.9 );" ;  sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );  sql = "INSERT INTO \"SensorData\" VALUES(NULL , 23 , 45 , '201705011306', 16.4 );" ;  sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );  sql = "INSERT INTO \"SensorData\" VALUES(NULL , 34 , 45 , '201705011306', 15.4 );" ;  sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );  int nrow = 0, ncolumn = 0;  char **azResult; //二维数组存放结果  //查询数据  /* int sqlite3_get_table(sqlite3*, const char *sql,char***result , int *nrow , int *ncolumn ,char **errmsg ); result中是以数组的形式存放你所查询的数据,首先是表名,再是数据。 nrow ,ncolumn分别为查询语句返回的结果集的行数,列数,没有查到结果时返回0 */  //查询数据  sql = "SELECT * FROM SensorData ";  sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );  #ifdef _DEBUG_  if(zErrMsg != NULL) printf("zErrMsg = %s \n", zErrMsg);  #endif int i = 0 ,j = 0, k = 0  ;printf( "row=%d column=%d \n" , nrow , ncolumn );  printf( "The result of query is : \n" );  // for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )  //     printf( "azResult[%d] = %s\n", i , azResult[i] );  for(i = 0; i < nrow + 1; i++){for(j = 0; j < ncolumn; j ++){printf("%-15s  ", azResult[k++]);}printf("\n");}k = 0;//删除数据  sql = "DELETE FROM SensorData WHERE SensorID = 11 ;" ;  sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );  #ifdef _DEBUG_  if(zErrMsg != NULL) printf("zErrMsg = %s \n", zErrMsg);  #endif  sql = "SELECT * FROM SensorData ";  sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );  printf( "\n\nrow=%d column=%d " , nrow , ncolumn );  printf( "\nAfter deleting , the result of querying is :\n" );  for(i = 0; i < nrow + 1; i++){for(j = 0; j < ncolumn; j ++){printf("%-15s  ", azResult[k++]);}printf("\n");} k = 0;//释放掉  azResult 的内存空间  sqlite3_free_table( azResult );  #ifdef _DEBUG_  if(zErrMsg != NULL) printf("zErrMsg = %s \n", zErrMsg);  #endif  sqlite3_close(db); //关闭数据库  return 0;  }

ubuntu上使用sqlite3相关推荐

  1. 数据可视化组件Grafana详细解读--Debian/Ubuntu上的安装

    数据可视化演示: PS:您可以在目标服务器上运行数据可视化组件,监控数据服务器,Web服务器,网络文件服务器等等服务器的各种运行状态,DevOps的必不可少的组件. 在Debian / Ubuntu上 ...

  2. Ubuntu上通过 RVM 安装 多版本 Ruby/Rails

    2019独角兽企业重金招聘Python工程师标准>>> Rails 3 RC 版半个月前就已经发布,而正式版据说会在未来几周内面世.相对于 2.3 版,Rails 3 差不多在各个方 ...

  3. Ubuntu 上安装 ibus云拼音输入法

    ibus云拼音  是一个可以利用在线词库的ibus 输入法.目前 Ubuntu 11.04 默认的输入法框架就是ibus.安装方法参考wiki ,不过需要仔细看评论.我说一下目前我已知的  Ubunt ...

  4. linux wireshark使用教程,技术|Ubuntu 上 Wireshark 的安装与使用

    在本教程中,你将学习如何在 Ubuntu 和其它基于 Ubuntu 的发行版上安装最新的 Wireshark.同时你也将学习如何在没有 sudo 的情况下来运行 Wireshark,以及如何设置它来进 ...

  5. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

    再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...

  6. 在CentOS 7.5上升级SQLite3过程实录

    业务起因 我在CentOS 7.5上安装python3.7+Django 3.1.7并创建项目时,发现启动demo例子出错了,出错信息如下: django.core.exceptions.Improp ...

  7. 使用Windows7上的VS Code打开远程机Ubuntu上的文件操作步骤

    之前在https://blog.csdn.net/fengbingchun/article/details/118991855 中介绍过在Windows10通过VS Code打开Ubuntu 16.0 ...

  8. 通过Windows10上的VS Code打开远端Ubuntu上的项目操作步骤

    Ubuntu版本要求是16.04及以上版本.这里以16.04为例. 在Ubuntu上安装OpenSSH server,执行:$ sudo apt-get install openssh-server ...

  9. Ubuntu上配置VS Code调试C++

    直接使用GDB在Ubuntu上调试C++ code,有时不是很方便,这里介绍下在Ubuntu上通过Visual Studio Code调试C++ code操作步骤,通过CMake编译. 安装所需依赖: ...

最新文章

  1. 深度丨机器人会伤害你?科学家做了实验并回答了七个问题
  2. 乐山电子计算机职业学院,学校介绍
  3. 第三次学JAVA再学不好就吃翔(part28)--猜数字小游戏
  4. [vue] v-on可以绑定多个方法吗?
  5. QingStor分布式存储全线升级:自研需要勇气,成功还要看实力
  6. [安卓] 19、一个蓝牙4.0安卓DEMO
  7. 《linux核心应用命令速查》连载十一:pstree:显示进程状态树
  8. Java 面试——数据类型计算与拆箱装箱
  9. 计算机毕业论文指导过程记录表6,毕业论文指导记录表范文
  10. opencv实现图片及视频流(摄像头)的人脸检测
  11. 服务器硬盘坏道修复教程视频,坏道和坏块什么区别?硬盘高级修复教程来了
  12. 小菜鸟szx的测试博文
  13. ssdt函数索引号_【转】SSDT索引号的获取
  14. 11月29日做题截图
  15. 阿里数据港张北数据中心项目本月底运营
  16. Python技法-序列拆分
  17. python实现bili手机客户端上下载的文件转成mp4
  18. 23西南大学电子信息专硕经验贴——常见问题
  19. 传统项目之OA平台介绍
  20. 150398-22-4,三肽Phe-Arg-Arg

热门文章

  1. C#基础第三天-作业-集合-冒泡排序-模拟名片
  2. 使用U盘安装操作系统
  3. ASP.Net中怎样获得存储过程传出的参数。
  4. python新版下载安装_各种版本的Python下载安装教程
  5. html中字体,特殊字符和标签如何显示呢?
  6. 卷积神经网络(CNN)详解及TensorFlow2代码实现
  7. redis php ismember,Spring StringRedisTemplate 配置
  8. mongodb查询值不为空_NoSQL之MongoDB——BSON与JSON类型
  9. react 引入html文件_React起手式
  10. delete from表名和truncate table 表名的区别