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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux下轻量级数据库-SQLite3(嵌入式设备)

發布時間:2023/12/15 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下轻量级数据库-SQLite3(嵌入式设备) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

數據庫是用來存儲和管理數據的專用軟件,使得管理數據更加安全,方便和高效。數據庫對數據的管理的基本單位是表(table)。

二、常見的數據庫

大型數據庫(大型機) —————- Oracle(億級)
中型數據庫(分布式超大型) ———— mysql(百萬級)
輕型數據庫(嵌入式設備) ———— sqlite(萬級)
訪問數據庫使用SQL語句,適用于所有的數據庫。

三、安裝SQLite3

有C環境就可以調用sqite

3.1直接用命令安裝

sudo apt-get update sudo apt-get install sqlite3

3.2 直接編譯源碼

將源碼拷貝到Ubuntu的非共享目錄解壓

解壓命令:

tar zvxf sqlite-autoconf-3380500.tar.gz

配置

cd sqlite-snapshot-201708031550 ./configure --prefix=/home/gec/sqlite

編譯

make

安裝

make install

四、SQLite的使用

新建數據庫文件 sqlite3 數據庫文件的路徑 //打開/創建 //比如:sqlite3 first.db //打開數據庫進入命令行

4.1 基本操作命令

.exit/.quit -------- 退出數據庫命令行 .help -------------- 幫助說明信息 .tables ------------ 查看當前數據庫中所有的表

4.2 數據庫訪問的SQL語句

基本語法:

所有的SQL語句都以分號(;)結束 不區分大小寫

4.3 新建表格

create table 表名(字段名1 字段類型1,字段名2 字段類型2,字段名3 字段類型3,...); 比如: //創建一個stutbl的表,表中有3個字段 //分別是整數類型的學號id,字符串類型的name和整數類型的age create table zhiguoxin(id int,name char[20],age int); //不存在則創建 create table if not exists zhiguoxin(id int,name char[20],age int); //如果希望表中某個字段的內容不重復,可以用unique修飾該字段 create table if not exists zhiguoxin(id int unique,name char[20],age int);

4.4 刪除表格

drop table 表名; //drop table zhiguoxin;

4.5 往表格中插入數據

insert into 表名 values(字段值1,字段值2,字段值3,....); //字段值如果是字符串,必須用''(單引號)括起來 比如: insert into zhiguoxin values(1001,'劉堯',18); insert into zhiguoxin values(1002,'聶衍文',19); insert into zhiguoxin values(1003,'楊佳晨',20); insert into zhiguoxin values(1004,'馮華陽',21);

完成插入之后,zhiguoxin 的表格內容如下:

idnameage
1001劉堯18
1002聶衍文19
1003楊佳晨20
1004馮華陽21

4.6 查詢表中的數據

//查詢表中的所有數據

select * from 表名; //select * from zhiguoxin;

4.7 查看數據庫

可以把first.db數據庫文件拷貝至windows下,使用SQLite Developer打開即可看到。
SQLite Developer下載地址

https://mydown.yesky.com/pcsoft/443425.html

4.8 按條件查找

1.使用where指定查詢條件

select * from zhiguoxin where id=1003;//查詢id值為1003的條目 select * from zhiguoxin where age>=19 and age<21; select * from zhiguoxin where age>=19 or age<21;

2.指定查詢的字段

select id,name,age from zhiguoxin;//只查詢id,name,age的字段

3.使用where+like實現模糊查詢

select * from zhiguoxin where name like '劉%';//查找名字以劉開頭的條目

4.使用order by實現查詢結果按某個字段的值升序/降序輸出

select * from zhiguoxin order by age desc;//按年齡降序排序 select * from zhiguoxin order by id asc; //按id升序排序

4.9 刪除表中的條目

delete from 表名 where 條件;//刪除所有符合條件的條目 比如: delete from zhiguoxin where id=1001;

4.10 更新(修改)表中的條目

update 表名 set 字段名1=字段值1,字段名2=字段值2... where 條件;//修改符合條件的條目 比如: update zhiguoxin set age=100 where id=1002;

4.11 SQLite中字段類型

數字:

int ------- 整型 smallint ---- 短整型 tinyint ----- 微型整數(0~255) bit --------- 0 or 1 float ------ 單精度浮點型 real ------- 雙精度浮點型

字符串:

char ---------- 非unicode定長字符串 < 8000 varchar ------- 非unicode變長字符串 < 8000 text ---------- 非unicode變長字符串 < 2^32-1nchar ---------- unicode定長字符串 < 8000 nvarchar ------- unicode變長字符串 < 8000 ntext ---------- unicode變長字符串 < 2^32-1

五、SQLite的C語言訪問接口

sqlite本身自帶C語言訪問接口,在C語言的環境下可以直接使用,使用這些接口的代碼需要 sqlite的源碼編譯進可執行程序 或者 編譯時鏈接sqlite的庫。

5.1 打開 sqlite3_open

int sqlite3_open(const char *filename, /* 數據庫的文件路徑 */sqlite3 **ppDb /* 輸出參數:傳出代表打開數據庫的句柄 */ ); //成功返回SQLITE_OK,否則打開失敗char ---------- 非unicode定長字符串 < 8000 varchar ------- 非unicode變長字符串 < 8000 text ---------- 非unicode變長字符串 < 2^32-1nchar ---------- unicode定長字符串 < 8000 nvarchar ------- unicode變長字符串 < 8000 ntext ---------- unicode變長字符串 < 2^32-1

5.2 關閉 sqlite3_close

int sqlite3_close(sqlite3 *pDb); //傳入要關閉的數據庫的句柄

5.3 編譯方法(必須鏈接pthread庫和dl庫)

1.直接編譯源碼gcc sqlite3.c sqlite_test.c -pthread -ldl -o sqlite_test 2.鏈接sqlite3的動態庫gcc sqlite_test.c -pthread -ldl -lsqlite3 -L /home/gec/sqlite/lib -o sqlite_test //如果運行時找不到sqlite3的庫,可以將編譯出來的庫文件拷貝到/usr/lib目錄下(cp -r)

5.4 執行SQL語句的接口 sqlite3_exec

int sqlite3_exec(sqlite3 *pDb, /* 打開的數據庫的句柄 */const char *sql, /* 要執行的SQL語句 */int (*callback)(void *arg,int col,char **str,char **name), /* 回調函數,處理SQL語句執行返回的結果(查詢),一條結果調用一次 arg - exec的第四個參數col - 本條結果的字段數str - 記錄字段值的數組name - 記錄字段名的數組回調函數必須返回SQLITE_OK */void *arg, /* 傳遞給回調函數的第一個參數 */char **errmsg /* 錯誤信息 */ ); //成功返回SQLITE_OK,否則執行失敗

幾個例子

//連接數據庫 int Connection_Sqlite3DataBase() {rc = sqlite3_open("./face_database/face.db", &db);if (rc != SQLITE_OK){fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));sqlite3_close(db);exit(1);}elseprintf("You have opened a sqlite3 database named bind.db successfully!\nCongratulation! Have fun!\n");return 0; } //將圖片插入到數據庫 void insert_face_data_toDataBase(const char *name, MByte *face_feature, MInt32 featureSize) {sqlite3_prepare(db, "insert into face_data_table(name,face_feature,feature_size) values (?,?,?);", -1, &stmt, NULL);sqlite3_bind_text(stmt, 1, name, strlen(name), NULL);sqlite3_bind_blob(stmt, 2, face_feature, featureSize, NULL);sqlite3_bind_int(stmt, 3, featureSize);sqlite3_step(stmt); }

總結

以上是生活随笔為你收集整理的Linux下轻量级数据库-SQLite3(嵌入式设备)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 男人的网站在线观看 | 91色影院| 午夜8888 | 四虎4hu永久免费网站影院 | av网站在线免费观看 | 日批在线视频 | 国产精品网址 | 欧美亚洲第一区 | 日韩一区二区三区四区 | 久热久操 | 成人欧美一区 | sese亚洲 | 日韩极品视频在线观看 | 精品少妇theporn| 91免费黄视频 | 成人久久精品 | av最新网| 夜夜操夜夜骑 | 国产一级做a爰片久久毛片男 | 草草影院第一页 | 欧美精品第一页 | aaaaa级少妇高潮大片免费看 | 欧美壮男野外gaytube | 久久视频免费 | 亚洲国产看片 | 成人黄色小视频在线观看 | 久久老司机精品视频 | 久久婷婷精品 | 天天夜夜爽| 国语对白一区二区 | 椎名由奈在线观看 | 国产精品破处 | wwwxxxx欧美 | 成人性生生活性生交3 | 日本一区二区网站 | 免费在线h | 国产在线一区二区三区 | 日本xxx高清| 国产亚洲一区二区三区 | 欧美色涩 | 久久久精品视频在线 | 人人射人人射 | 亚洲天堂男人av | 欧美中文字幕在线播放 | 性欧美精品 | 色秀视频在线观看 | 午夜影院一区二区三区 | 亚洲深夜福利 | 国产欧美精品一区二区色综合朱莉 | 精品三级av | 在线成人av| 韩国一区二区三区四区 | 国产一卡二卡三卡 | 8090理论片午夜理伦片 | 久久一视频 | 嫩草影院中文字幕 | 日韩免费在线视频观看 | 初尝人妻少妇中文字幕 | 黄色a级网站 | 91精品久久久久 | 天堂资源在线观看 | 一区二区视频在线看 | 精品人妻无码一区二区色欲产成人 | 男操女视频免费 | 97色在线| 国产资源在线看 | 香蕉久久夜色精品国产使用方法 | 日本一级一片免费视频 | 在线观看无码精品 | 日操操| 饥渴少妇伦色诱公 | 性视频免费 | 免费欧美黄色片 | 国产伦理片在线观看 | 国产精品扒开腿做爽爽爽男男 | 亚洲精品国产乱伦 | 欧美国产视频一区 | 亚洲小视频在线 | 国产在线欧美日韩 | 香蕉视频在线观看免费 | 97av在线视频| 久久狠 | 久99精品 | 亚洲精品第五页 | 亚洲国产精品va在线看黑人 | 国产成人啪精品午夜在线观看 | 久久久久久9 | 日日噜噜夜夜狠狠久久波多野 | 老子影院午夜伦不卡大全 | 国产精品成人免费视频 | 日韩一区二区三区久久 | 嫩草av91| 国产区一区二 | 淫欲少妇| 成人做爰www看视频软件 | 亚洲一区 视频 | 亚洲色欧美另类 | 精品香蕉视频 | 大陆女明星乱淫合集 |