Linux下的網絡編程SQLITE3詳解

常用數據庫

關系型數據庫

將復雜的數據結構簡化為二維表格形式

大型:Oracle、DB2

中型:MySql、SQLServer

小型:Sqlite

非關系型數據庫

以鍵值對存儲,且結構不固定

JSON

Redis

MongoDB

sqlite數據庫

特點

開源免費,C語言開發

代碼量少,1萬行左右,總大小10M以內

文件型數據庫,可以移動,跨平臺移植性好

理論數據容量最大2T

安裝sqlite3數據庫

版本:sqlite3.22.0

安裝命令:
sudo apt-get install sqlite3

安裝相關庫:
sudo apt-get install libsqlite3-dev

測試:
sqlite3 xxx.db

sqlite3學習

支持的數據類型

NULL:空值

INTEGER:整形

REAL:浮點型

TEXT:字符串類型

BLOB:根據輸入進行存儲

sqlite3相關的命令

.help:查看支持的命令

.tables:查看當前數據庫中的表

.headers on/off:打開或者隱藏表頭

.mode column:設置列左對齊

.quit:退出數據庫

sqlite3支持的SQL語句
注意事項

SQL語句后面必須要有分號

sqlite不區分大小寫

創建表

語法:
create table 表名(列名1 數據類型, 列名2 數據類型, 列名3 數據類型)

示例:
create table class1(id INTEGER, name TEXT, age INTEGER, score REAL)

數據插入

語法:
insert into 表名 values(值1, 值2, 值3)

示例:
insert into class1 values(1, "zhangsan", 19, 88.5)

查詢數據

查詢所有列數據:
select * from 表名

查詢指定列數據:
select 列名1, 列名2, 列名n from 表名

條件查詢:
select * from 表名 where 列 條件

關系運算符:>, <, >=, <=, =, !=, and (&&), or (||)

模糊查找(字符串):

select * from 表名 where 列 like "%梅"

select * from 表名 where 列 like "__梅"%:可以模糊匹配多個

字符_:只能模糊匹配一個字符

排序查找:

升序排序:

select * from 表名 order by 列名 ASC

降序排序:select * from 表名 order by 列名 DESC

刪除數據

語法:
delete from 表名 where 刪除的條件

示例:
delete from class1 where score < 80

修改數據

語法:
update 表名 set 列 = 新值 where 條件

示例:
update class1 set score = 100 where name = "wanger"

刪除一張表

語法:
drop table 表名

設置主鍵值自動增長列

注意:

主鍵值自動增長列必須是INTEGER類型

在創建表時,主鍵值自動增長列要增加:PRIMARY KEY AUTOINCREMENT

示例:
create table class2(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, score REAL)

插入數據時,主鍵值自動增長列給NULL,讓其自動增長

示例:
insert into class2 values(NULL, "張三", 90)

時間相關

date("now"):年-月-日

datetime("now", "+8 hours"):年-月-日 時:分:秒

sqlite的可視化工具

安裝命令:
sudo apt-get install sqlitebrowser

使用方法:
sqlitebrowser xxx.db

sqliite3提供的C/C++ API(應用程序接口)
sqlite3_open
  int sqlite3_open(const char *filename,   /* Database filename (UTF-8) */sqlite3 **ppDb          /* OUT: SQLite db handle */);

功能:打開一個數據庫文件

參數:

filename:數據庫名稱

ppDb:保存數據庫句柄的指針的地址

返回值:

成功:SQLITE_OK

失敗:錯誤碼

sqlite3_close
  int sqlite3_close(sqlite3*);

功能:關閉數據庫

sqlite3_exec
int sqlite3_exec(sqlite3*pdb,                                  /* An open database */const char *sql,                           /* SQL to be evaluated */int (*callback)(void*,int,char**,char**),  /* Callback function */void *arg,                                    /* 1st argument to callback */char **errmsg                              /* Error msg written here */);

功能:執行SQL語句

參數:

pdb:數據庫句柄

sql:要執行的sql語句

callback:執行select語句時使用的回調函數

arg:給回調函數傳遞的參數(實參)

errmsg:保存出錯信息

返回值:

成功:SQLITE_OK

失敗:錯誤碼

回調函數

功能:執行select語句時調用的回調函數

參數:

arg:sqlite3_exec傳遞的第四個參數

column:查詢到的數據的列數

column_values:指針數組,多個指針分別指向每一列數據的字符串

column_name:指針數組,多個指針指向每一列的列名

注意:回調函數成功的話必須要有返回值,返回0

從數據庫查詢出來的數據,統統是字符串類型

從數據庫中查詢數據,查到幾條,回調函數就會被執行幾次

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94695.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

適配openai

openai 腳本 stream腳本import os from openai import OpenAIclient OpenAI(base_url"http://127.0.0.1:9117/api/v1",api_keyos.environ["ACCESS_TOKEN"], )stream client.chat.completions.create(model "Qwen/Qwen2-7B-Instruct",messages…

一天認識一個神經網絡之--CNN卷積神經網絡

CNN 是一種非常強大的深度學習模型&#xff0c;尤其擅長處理像圖片這樣的網格結構數據。你可以把它想象成一個系統&#xff0c;它能像我們的大腦一樣&#xff0c;自動從圖片中學習并識別出各種特征&#xff0c;比如邊緣、角落、紋理&#xff0c;甚至是更復雜的物體部分&#xf…

13 SQL進階-InnoDB引擎(8.23)

一、邏輯存儲結構&#xff08;1&#xff09;表空間&#xff08;ibd文件&#xff09;&#xff1a;一個mysql實例可以對應多個表空間&#xff0c;用于存儲記錄、索引等數據。cd /var/lib/mysql&#xff08;2&#xff09;段&#xff0c;分為數據段&#xff08;leaf node segment&a…

MTK Linux DRM分析(二十四)- MTK mtk_drm_plane.c

一、代碼分析 mtk_drm_plane.h 和 mtk_drm_plane.c 兩個文件,并生成基于文本的函數調用圖,我將首先解析文件中的主要函數及其功能,然后根據代碼中的調用關系整理出調用圖。由于文件內容較長,我會專注于關鍵函數及其相互調用關系,并以清晰的文本形式呈現。 文件分析 1. …

滾珠導軌如何賦能精密制造?

在智能制造發展的趨勢下&#xff0c;新興行業對高精度、高穩定性的運動控制需求激增。作為直線傳動領域的“精密紐帶”&#xff0c;滾珠導軌憑借低摩擦、長壽命、高剛性優勢&#xff0c;廣泛應用于精密傳動領域&#xff0c;成為產業升級的關鍵。新能源汽車制造領域&#xff1a;…

醫療 AI 的 “破圈” 時刻:輔助診斷、藥物研發、慢病管理,哪些場景已落地見效?

一、引言在科技迅猛發展的當下&#xff0c;醫療領域正經歷著深刻變革&#xff0c;人工智能&#xff08;AI&#xff09;技術宛如一顆璀璨新星&#xff0c;強勢 “破圈” 闖入&#xff0c;為醫療行業帶來了前所未有的機遇與活力。從輔助醫生精準診斷病情&#xff0c;到助力藥企高…

【項目思維】編程思維學習路線(推薦)

本篇博客是一份系統性、分階段的 編程思維學習路線圖推薦&#xff0c;從零基礎小白到系統架構級別&#xff0c;幫助你全面建立和提升編程思維能力。 &#x1f6a6; 階段 0&#xff1a;思維準備&#xff08;理解編程是什么&#xff09; &#x1f3af; 學習目標&#xff1a; 理…

vue3+antd實現華為云OBS文件拖拽上傳詳解

1、文件上傳核心流程 選擇文件??&#xff1a;用戶通過拖拽或點擊選擇文件手動觸發上傳??&#xff1a;點擊"確定"按鈕后開始上傳&#xff08;阻止自動上傳&#xff09;??獲取上傳憑證??&#xff1a;從后端獲取華為云OBS的上傳配置構建表單數據??&#xff1…

Mac 開發環境與配置操作速查表

Mac 開發環境與配置操作速查表 安裝和配置 nvm / Node 安裝 Homebrew Homebrew 安裝參考文章 如果沒有VPN&#xff0c;不要使用此命令安裝&#xff01; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew --v…

【論文簡讀】MuGS

今天讀一篇ICCV 2025的文章&#xff0c;關注的是Generalizable Gaussian Splatting&#xff0c;作者來自華中科技大學。 文章鏈接&#xff1a;arxiv 代碼倉庫&#xff1a;https://github.com/EuclidLou/MuGS&#xff08;摘要中的鏈接&#xff0c;但暫時404&#xff09; 文章目…

基于SpringBoot和百度人臉識別API開發的保安門禁系統

角色&#xff1a; 管理員、保安 技術&#xff1a; Spring Boot, MyBatis, MySQL, PageHelper, Bootstrap, jQuery, JavaScript, CSS3, HTML5, JSP, 百度人臉識別API 核心功能&#xff1a; 小區保安門禁系統是一個基于Spring Boot技術棧開發的綜合性平臺&#xff0c;旨在實現小區…

抖音電商首創最嚴珠寶玉石質檢體系,推動行業規范與消費擴容

8月27日&#xff0c;“抖音電商開放日質檢專場”活動在廣州華林國際舉行。活動上&#xff0c;抖音電商首次對外介紹了質檢倉配一體化中心&#xff08;QIC&#xff09;的運作流程&#xff0c;并發布了服務升級計劃。這一行業首創的“先鑒定后發貨”模式&#xff0c;被認為推動了…

SpringBoot整合Spring WebFlux棄用自帶的logback,使用log4j2,并啟動異步日志處理

第一步&#xff1a;修改pom文件<!-- Spring Boot Starter WebFlux (排除默認日志) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId><version>${spring-boot.vers…

理解虛擬 DOM:前端開發中的高效渲染利器

在前端開發中&#xff0c;我們經常聽到 虛擬 DOM&#xff08;Virtual DOM&#xff09; 這個概念。它是 React、Vue 等框架的核心機制之一&#xff0c;用來提升性能和簡化開發。那么&#xff0c;虛擬 DOM 到底是什么&#xff1f;為什么要用它&#xff1f;又是如何工作的呢&#…

GraphRAG數據可視化

GraphRAG數據可視化

vue/react項目如何跳轉到一個已經寫好的html頁面

如果是一個你copy的別人的網站&#xff0c;某些頁面是已經可以直接使用的&#xff0c;但是有些頁面需要在vue/react項目中重新二次調整加工&#xff0c;這個時候&#xff0c;就需要將html文件和vue/react項目結合&#xff0c;當某些頁面可以直接使用&#xff0c;就直接跳轉到這…

MYSQL-表的約束(下)

目錄 自增長 唯一鍵 外鍵 自增長 MySQL自增長&#xff08;Auto-Increment&#xff09; 是一種字段屬性&#xff0c;用于為表中的記錄自動生成唯一的連續整數&#xff0c;常作為主鍵或唯一標識字段使用&#xff0c;避免手動輸入重復值。 核心特性 1. 自動賦值&#xff1a…

《UE5_C++多人TPS完整教程》學習筆記44 ——《P45 傾斜與側向移動(Leaning And Strafing)》

本文為B站系列教學視頻 《UE5_C多人TPS完整教程》 —— 《P45 傾斜與側向移動&#xff08;Leaning And Strafing&#xff09;》 的學習筆記&#xff0c;該系列教學視頻為計算機工程師、程序員、游戲開發者、作家&#xff08;Engineer, Programmer, Game Developer, Author&…

使用docker搭建嵌入式Linux開發環境

文章目錄1、前言2、安裝docker3、編寫容器管理腳本4、創建容器1、前言 在日常開發全志、rk等不同平臺時&#xff0c;大多數時候只有一個編譯主機&#xff0c;但不同sdk所需要的編譯環境可能不同。所以本文將記錄使用docker為每個平臺創建獨立的開發環境。 2、安裝docker # 1…

【開題答辯全過程】以基于Android的校園跳蚤市場交易系統的設計與實現為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…