日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu上使用sqlite3

發布時間:2023/12/15 Ubuntu 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。