sqlite 在麒麟下安装、编译
sqlite 在麒麟下安装
1、登录官方网站,查看下载地址,下载,安装
https://www.sqlite.org/download.html
1 2 3 4 | $ wget http: //www.sqlite.org/sqlite-3******.tar.gz $ ./configure $ make $ sudo make install |
2、验证
1 2 | $ sqlite3 $ sqlite |
3、程序验证
首先要编译好
sqlite的库文件 :
libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig
可执行文件 :
sqlite3
本次测试:
sqlite3的库文件目录是:/usr/local/lib
可执行文件 sqlite3 的目录是: /usr/local/bin
头文件 sqlite3.h 的目录是: /usr/local/include
用ls命令查看如下:
[root@localhost config]# ls /usr/local/lib
libclamav.a libclamunrar_iface.a libclamunrar.so libsqlite3.so
libclamav.la libclamunrar_iface.la libclamunrar.so.5 libsqlite3.so.0
libclamav.so libclamunrar_iface.so libclamunrar.so.5.0.3 libsqlite3.so.0.8.6
libclamav.so.5 libclamunrar_iface.so.5 libmstring.so pkgconfig
libclamav.so.5.0.3 libclamunrar_iface.so.5.0.3 libsqlite3.a
libclamunrar.a libclamunrar.la libsqlite3.la
此目录下包含库文件:
libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #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( "zieckey.db" , &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件 if ( rc ) { fprintf (stderr, "Can't open database: %s/n" , sqlite3_errmsg(db)); sqlite3_close(db); exit (1); } else printf ( "You have opened a sqlite3 database named zieckey.db successfully!/nCongratulations! Have fun ! ^-^ /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_ printf ( "zErrMsg = %s /n" , zErrMsg); #endif //插入数据 sql = "INSERT INTO /" SensorData/ " VALUES(NULL , 1 , 1 , '200605011206', 18.9 );" ; sqlite3_exec( db , sql , 0 , 0 , &zErrMsg ); sql = "INSERT INTO /" SensorData/ " VALUES(NULL , 23 , 45 , '200605011306', 16.4 );" ; sqlite3_exec( db , sql , 0 , 0 , &zErrMsg ); sql = "INSERT INTO /" SensorData/ " VALUES(NULL , 34 , 45 , '200605011306', 15.4 );" ; sqlite3_exec( db , sql , 0 , 0 , &zErrMsg ); int nrow = 0, ncolumn = 0; char **azResult; //二维数组存放结果 //查询数据 sql = "SELECT * FROM SensorData " ; sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg ); int i = 0 ; printf ( "row:%d column=%d /n" , nrow , ncolumn ); printf ( "/nThe result of querying is : /n" ); for ( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ ) printf ( "azResult[%d] = %s/n" , i , azResult[i] ); //删除数据 sql = "DELETE FROM SensorData WHERE SensorID = 1 ;" ; sqlite3_exec( db , sql , 0 , 0 , &zErrMsg ); #ifdef _DEBUG_ printf ( "zErrMsg = %s /n" , zErrMsg); #endif sql = "SELECT * FROM SensorData " ; sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg ); printf ( "/n/n/n/nrow:%d column=%d " , nrow , ncolumn ); printf ( "/nAfter deleting , the result of querying is : /n" ); for ( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ ) printf ( "azResult[%d] = %s/n" , i , azResult[i] ); //释放掉 azResult 的内存空间 sqlite3_free_table( azResult ); #ifdef _DEBUG_ printf ( "zErrMsg = %s /n" , zErrMsg); #endif sqlite3_close(db); //关闭数据库 return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)