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下安裝sqlite3UbuntuSQLite
- Ubuntu 上 Wireshark 的安裝與使用Ubuntu
- 在Ubuntu上使用Jetty部署War包UbuntuJetty
- 在Ubuntu上安裝OpenShift並使用Ubuntu
- 如何在Ubuntu上使用FreeFileSync同步檔案Ubuntu
- 如何在Ubuntu上使用HMCL遊玩MinecraftUbuntuRaft
- Ubuntu上使用QT creator執行cuda程式UbuntuQT
- 在 Ubuntu 上使用原始碼安裝 OpenRestyUbuntu原始碼REST
- 怎樣在sqlite3上執行SQL語句SQLite
- Python資料庫模組(sqlite3,SQLite3)Python資料庫SQLite
- 如何在 Ubuntu 上使用 ZFS 檔案系統Ubuntu
- 如何在 Ubuntu 上安裝和使用 R 語言Ubuntu
- 【Ubuntu】在Ubuntu上安裝微信Ubuntu
- SQLite 命令列客戶端 sqlite3 使用指南SQLite命令列客戶端
- 在Ubuntu上使用Netdata設定實時效能監控Ubuntu
- 入門系列之在Ubuntu 16.04上安裝和使用TensorFlowUbuntu
- qcad qt ecmajavascript sqlite3QTJavaScriptSQLite
- windows安裝sqlite3WindowsSQLite
- 初次使用UbuntuUbuntu
- Ubuntu20.04 vim複製貼上,使用系統剪下板Ubuntu
- 在ubuntu上安裝docker, 使用國內的安裝源UbuntuDocker
- ubuntu上的基本應用Ubuntu
- 在virtualbox上安裝ubuntuUbuntu
- Ubuntu 16.04 上安裝 OrientDB!Ubuntu
- ubuntu上的軟體源Ubuntu
- 在Ubuntu上安裝MariaDBUbuntu
- sqlite3資料庫操作SQLite資料庫
- Ubuntu18 上使用 docker 的 nginx 容器模擬負載均衡UbuntuDockerNginx負載
- 如何在 Ubuntu 和其他 Linux 發行版上使用 7ZipUbuntuLinux
- Ubuntu使用記錄Ubuntu
- [ubuntu] 使用 apple musicUbuntuAPP
- 如何在 Ubuntu 上為使用者授予和移除 sudo 許可權Ubuntu
- SQLite3 匯出 CSV 檔案SQLite
- CentOS6.5安裝sqlite3CentOSSQLite
- Peewee Sqlite3 中文模糊查詢SQLite
- lazarus 開啟 sqlite3資料SQLite
- 【知識點】SQLite3總結SQLite
- ubuntu18.04 上安裝jdkUbuntuJDK