ubuntu上使用sqlite3
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相关推荐
- 数据可视化组件Grafana详细解读--Debian/Ubuntu上的安装
数据可视化演示: PS:您可以在目标服务器上运行数据可视化组件,监控数据服务器,Web服务器,网络文件服务器等等服务器的各种运行状态,DevOps的必不可少的组件. 在Debian / Ubuntu上 ...
- Ubuntu上通过 RVM 安装 多版本 Ruby/Rails
2019独角兽企业重金招聘Python工程师标准>>> Rails 3 RC 版半个月前就已经发布,而正式版据说会在未来几周内面世.相对于 2.3 版,Rails 3 差不多在各个方 ...
- Ubuntu 上安装 ibus云拼音输入法
ibus云拼音 是一个可以利用在线词库的ibus 输入法.目前 Ubuntu 11.04 默认的输入法框架就是ibus.安装方法参考wiki ,不过需要仔细看评论.我说一下目前我已知的 Ubunt ...
- linux wireshark使用教程,技术|Ubuntu 上 Wireshark 的安装与使用
在本教程中,你将学习如何在 Ubuntu 和其它基于 Ubuntu 的发行版上安装最新的 Wireshark.同时你也将学习如何在没有 sudo 的情况下来运行 Wireshark,以及如何设置它来进 ...
- [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二
再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...
- 在CentOS 7.5上升级SQLite3过程实录
业务起因 我在CentOS 7.5上安装python3.7+Django 3.1.7并创建项目时,发现启动demo例子出错了,出错信息如下: django.core.exceptions.Improp ...
- 使用Windows7上的VS Code打开远程机Ubuntu上的文件操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/118991855 中介绍过在Windows10通过VS Code打开Ubuntu 16.0 ...
- 通过Windows10上的VS Code打开远端Ubuntu上的项目操作步骤
Ubuntu版本要求是16.04及以上版本.这里以16.04为例. 在Ubuntu上安装OpenSSH server,执行:$ sudo apt-get install openssh-server ...
- Ubuntu上配置VS Code调试C++
直接使用GDB在Ubuntu上调试C++ code,有时不是很方便,这里介绍下在Ubuntu上通过Visual Studio Code调试C++ code操作步骤,通过CMake编译. 安装所需依赖: ...
最新文章
- 深度丨机器人会伤害你?科学家做了实验并回答了七个问题
- 乐山电子计算机职业学院,学校介绍
- 第三次学JAVA再学不好就吃翔(part28)--猜数字小游戏
- [vue] v-on可以绑定多个方法吗?
- QingStor分布式存储全线升级:自研需要勇气,成功还要看实力
- [安卓] 19、一个蓝牙4.0安卓DEMO
- 《linux核心应用命令速查》连载十一:pstree:显示进程状态树
- Java 面试——数据类型计算与拆箱装箱
- 计算机毕业论文指导过程记录表6,毕业论文指导记录表范文
- opencv实现图片及视频流(摄像头)的人脸检测
- 服务器硬盘坏道修复教程视频,坏道和坏块什么区别?硬盘高级修复教程来了
- 小菜鸟szx的测试博文
- ssdt函数索引号_【转】SSDT索引号的获取
- 11月29日做题截图
- 阿里数据港张北数据中心项目本月底运营
- Python技法-序列拆分
- python实现bili手机客户端上下载的文件转成mp4
- 23西南大学电子信息专硕经验贴——常见问题
- 传统项目之OA平台介绍
- 150398-22-4,三肽Phe-Arg-Arg
热门文章
- C#基础第三天-作业-集合-冒泡排序-模拟名片
- 使用U盘安装操作系统
- ASP.Net中怎样获得存储过程传出的参数。
- python新版下载安装_各种版本的Python下载安装教程
- html中字体,特殊字符和标签如何显示呢?
- 卷积神经网络(CNN)详解及TensorFlow2代码实现
- redis php ismember,Spring StringRedisTemplate 配置
- mongodb查询值不为空_NoSQL之MongoDB——BSON与JSON类型
- react 引入html文件_React起手式
- delete from表名和truncate table 表名的区别