在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

常見的數據庫管理

痞子衡嵌入式 ? 來源:痞子衡嵌入式 ? 作者:痞子衡嵌入式 ? 2022-10-10 16:19 ? 次閱讀

摘要:數據庫是用來存儲和管理數據的專用軟件,使得管理數據更加安全,方便和高效。數據庫對數據的管理的基本單位是表(table),在嵌入式linux中有時候它也需要用到數據庫,聽起來好難,其實就是幾個函數,掌握了就好。

一、常見的數據庫

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

二、安裝SQLite3

有C環境就可以調用sqlite

2.1直接用命令安裝

sudoapt-getupdate
sudoapt-getinstallsqlite3

2.2 直接編譯源碼

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

c7752a36-4858-11ed-a3b6-dac502259ad0.png解壓命令:

tarzvxfsqlite-autoconf-3380500.tar.gz

配置

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

編譯

make

安裝

makeinstall

三、SQLite的使用

新建數據庫文件
sqlite3數據庫文件的路徑//打開/創建
//比如:sqlite3 first.db
c7884382-4858-11ed-a3b6-dac502259ad0.png

3.1 基本操作命令

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

3.2 數據庫訪問的SQL語句

基本語法:

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

3.3 新建表格

createtable表名(字段名1字段類型1,字段名2字段類型2,字段名3字段類型3,...);
比如:
//創建一個stutbl的表,表中有3個字段
//分別是整數類型的學號id,字符串類型的name和整數類型的age
createtablezhiguoxin(idint,namechar[20],ageint);
//不存在則創建
createtableifnotexistszhiguoxin(idint,namechar[20],ageint);
//如果希望表中某個字段的內容不重復,可以用unique修飾該字段
createtableifnotexistszhiguoxin(idintunique,namechar[20],ageint);
c79738ba-4858-11ed-a3b6-dac502259ad0.png

3.4 刪除表格

droptable表名;
//droptablezhiguoxin;

3.5 往表格中插入數據

insertinto表名values(字段值1,字段值2,字段值3,....);
//字段值如果是字符串,必須用''(單引號)括起來
比如:
insertintozhiguoxinvalues(1001,'劉堯',18);
insertintozhiguoxinvalues(1002,'聶衍文',19);
insertintozhiguoxinvalues(1003,'楊佳晨',20);
insertintozhiguoxinvalues(1004,'馮華陽',21);
c7a4d7ea-4858-11ed-a3b6-dac502259ad0.png

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

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

3.6 查詢表中的數據

//查詢表中的所有數據

select*from表名;
//select*fromzhiguoxin;
c7b6874c-4858-11ed-a3b6-dac502259ad0.png

3.7 查看數據庫

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

https://mydown.yesky.com/pcsoft/443425.html
c7cb2a76-4858-11ed-a3b6-dac502259ad0.png

3.8 按條件查找

1.使用where指定查詢條件

select*fromzhiguoxinwhereid=1003;//查詢id值為1003的條目
select*fromzhiguoxinwhereage>=19andage<21;
select?*?from?zhiguoxin?where?age>=19orage<21;
c7dfe682-4858-11ed-a3b6-dac502259ad0.png

2.指定查詢的字段

selectid,name,agefromzhiguoxin;//只查詢id,name,age的字段
c7f59fae-4858-11ed-a3b6-dac502259ad0.png

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

select*fromzhiguoxinwherenamelike'劉%';//查找名字以劉開頭的條目
c8048802-4858-11ed-a3b6-dac502259ad0.png

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

select*fromzhiguoxinorderbyagedesc;//按年齡降序排序
select*fromzhiguoxinorderbyidasc;//按id升序排序
c8162c92-4858-11ed-a3b6-dac502259ad0.png

3.9 刪除表中的條目

deletefrom表名where條件;//刪除所有符合條件的條目
比如:
deletefromzhiguoxinwhereid=1001;
c82a5884-4858-11ed-a3b6-dac502259ad0.png

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

update表名set字段名1=字段值1,字段名2=字段值2...where條件;//修改符合條件的條目
比如:
updatezhiguoxinsetage=100whereid=1002;
c83a71b0-4858-11ed-a3b6-dac502259ad0.png

3.11 SQLite中字段類型

數字:

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

字符串:

char----------非unicode定長字符串

四、SQLite的C語言訪問接口

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

4.1 打開 sqlite3_open

intsqlite3_open(
constchar*filename,/*數據庫的文件路徑*/
sqlite3**ppDb/*輸出參數:傳出代表打開數據庫的句柄*/
);
//成功返回SQLITE_OK,否則打開失敗char ----------非unicode定長字符串< 8000
varchar :非unicode變長字符串?

4.2 關閉 sqlite3_close

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

4.3 編譯方法

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

4.4 執行SQL語句的接口 sqlite3_exec

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

幾個例子

//連接數據庫
intConnection_Sqlite3DataBase()
{
rc=sqlite3_open("./face_database/face.db",&db);
if(rc!=SQLITE_OK)
{
fprintf(stderr,"Can'topendatabase:%s
",sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else
printf("Youhaveopenedasqlite3databasenamedbind.dbsuccessfully!
Congratulation!Havefun!
");
return0;
}
//將圖片插入到數據庫
voidinsert_face_data_toDataBase(constchar*name,MByte*face_feature,MInt32featureSize)
{
sqlite3_prepare(db,"insertintoface_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);
}
c84c9bd8-4858-11ed-a3b6-dac502259ad0.png
審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5119

    文章

    19397

    瀏覽量

    312181
  • 數據庫
    +關注

    關注

    7

    文章

    3874

    瀏覽量

    65424
  • 函數
    +關注

    關注

    3

    文章

    4361

    瀏覽量

    63614

原文標題:手把手教你在嵌入式設備中使用SQLite3

文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數據庫復制的設計和管理

    【摘 要】 介紹數據庫復制在分布式數據庫系統中的應用、設計和管理,給出了設計步驟和設計時考慮的因素。對設計和應用中出現的沖突問題進行了分析并給出了解決辦法。對
    發表于 05-11 19:35 ?798次閱讀

    數據庫管理系統層次安全技術

    數據庫管理系統層次安全技術 數據庫系統的安全性很大程度上依賴于數據庫管理系統。如果數據庫
    發表于 06-17 07:45 ?734次閱讀

    Informix數據庫管理

    Informix數據庫管理: 一、Informix數據庫的安裝
    發表于 08-01 15:29 ?1359次閱讀

    數據庫管理系統(DBMS)是什么意思

    數據庫管理系統(DBMS)是什么意思 數據庫管理系統提供了定義數
    發表于 03-18 15:21 ?1.1w次閱讀

    保護MySQL數據倉庫的最佳實踐

    數據倉庫中最常見數據庫管理系統可能就是開源的MySQL數據庫。以下5個小技巧重點介紹了一些保護MySQL
    發表于 09-27 14:10 ?0次下載

    數據庫教程之數據庫的創建與管理詳細資料免費下載

    本文檔的主要內容詳細介紹的是數據庫教程之數據庫的創建與管理詳細資料免費下載。內容包括了:SQL Server數據庫概述, 創建數據庫,修改
    發表于 10-19 10:41 ?18次下載
    <b class='flag-5'>數據庫</b>教程之<b class='flag-5'>數據庫</b>的創建與<b class='flag-5'>管理</b>詳細資料免費下載

    數據庫有哪些常見的應用結構數據庫應用結構的使用資料概述

    本文檔的主要內容詳細介紹的是數據庫有哪些常見的應用結構數據庫應用結構的使用資料概述 數據庫常見的應用結構有:1.集中式結構2.文件服務器結構
    發表于 10-31 16:57 ?11次下載
    <b class='flag-5'>數據庫</b>有哪些<b class='flag-5'>常見</b>的應用結構<b class='flag-5'>數據庫</b>應用結構的使用資料概述

    數據庫管理系統的功能

    本視頻主要詳細介紹了數據庫管理系統的功能,分別是數據定義、數據操作、數據庫的運行管理
    的頭像 發表于 02-22 15:52 ?6077次閱讀

    數據庫系統的常見用戶

    數據庫管理員(DatabaseAdministrator,簡稱DBA),是從事管理和維護數據庫管理系統(DBMS)的相關工作人員的統稱,屬于
    的頭像 發表于 02-22 16:28 ?9478次閱讀

    數據庫教程之SQL Server數據庫管理的詳細資料說明

    本文檔詳細介紹的是數據庫教程之SQL Server數據庫管理的詳細資料說明主要內容包括了:1.了解SQL Server 的安裝、功能和特點;2.使用企業管理器、查詢分析器和在線幫助;3
    發表于 03-01 11:00 ?26次下載
    <b class='flag-5'>數據庫</b>教程之SQL Server<b class='flag-5'>數據庫</b><b class='flag-5'>管理</b>的詳細資料說明

    常見MySQL數據庫管理工具的介紹

    最初MySQL本身沒有提供非常方便的圖形管理工具,日常的開發和維護均在類似DOS窗口中,用命令行進行數據庫的操作。所以對于開發和測試同學來說,上手略微有點困難,增加了學習成本。 本文詳細給出了幾款常見MySQL
    的頭像 發表于 03-29 13:55 ?3540次閱讀
    <b class='flag-5'>常見</b>MySQL<b class='flag-5'>數據庫</b><b class='flag-5'>管理</b>工具的介紹

    數據庫建立|數據庫創建的方法?

    數據庫是一個存儲關鍵數據的文件系統。利用數據庫管理系統建立每個人的數據庫可以更好地提供安全。 數據庫
    的頭像 發表于 07-14 11:15 ?1433次閱讀

    MySQL數據庫管理與應用

    MySQL數據庫管理與應用 MySQL是一種廣泛使用的關系型數據庫管理系統,被認為是最流行和最常見的開源
    的頭像 發表于 08-28 17:15 ?1127次閱讀

    redis與mysql的區別

    Redis與MySQL是兩種常見數據庫管理系統,兩者在很多方面存在差異,本文將詳細分析Redis與MySQL的區別。 數據模型: Redis是一種基于鍵值對的NoSQL
    的頭像 發表于 11-16 11:21 ?1189次閱讀

    常見的存儲Idea數據庫的地方

    Idea的數據庫被存儲在許多不同的地方,取決于應用程序和使用的技術。下面將詳細描述一些常見的存儲Idea數據庫的地方。 關系型數據庫(RDBMS):關系型
    的頭像 發表于 12-06 14:15 ?1178次閱讀
    主站蜘蛛池模板: 色五月激情小说 | 深爱激情五月网 | 玖玖在线 | 日本一级成人毛片免费观看 | 中文字幕在线永久在线视频2020 | 欧美一级特黄aaaaaa在线看片 | 亚洲综合色就色手机在线观看 | 亚洲最新在线 | 亚洲综合激情六月婷婷在线观看 | 欧美日韩精品乱国产538 | 色在线视频网站 | 精品无码中出一区二区 | 亚洲成人网在线观看 | 国产99久久九九精品免费 | 日本一卡二卡3卡四卡网站精品 | 中文字幕在线乱码免费毛片 | 国产小视频在线免费观看 | 一级一级一片免费高清 | 欧美成人高清性色生活 | 欧美日韩一级视频 | 午夜精品在线免费观看 | 日本高清视频wwww色 | 欧美ww| 久久青草国产手机看片福利盒子 | 亚洲色播永久网址大全 | 人人爽天天爽夜夜爽曰 | 亚洲hhh | 久久国产乱子伦精品免 | 速度与激情在线 | 97一区二区三区 | 播五月综合 | 69ww免费视频播放器 | 国产美女视频黄a视频全免费网站 | 大尺度视频在线 | 精品久久天干天天天按摩 | 日本黄色生活片 | 日本大片免费播放网站 | 一级一片免费视频播放 | 天天爽夜夜爽人人爽曰喷水 | 免费国产黄网站在线观看视频 | 国产高清免费 |