sqlite3學習---基礎知識、增刪改查和排序和限制、打開執行關閉函數

目錄

?一、數據庫基礎知識

1.分類

2.名詞

3.嵌入式數據庫

4.特點

5.sqlite3的安裝

5.1在線安裝?

5.2編譯

5.3驗證是否安裝成功

5.4sqlite3的使用

6.創建一個數據庫

7.系統維護命令

二、數據庫的創建和刪除

1.創建一個表

1.1用法

1.2代碼示例

2.刪除一個表

2.1用法

三、數據庫的常規操作:增加,刪除,修改,查詢

1.向表中增加數據

1.1用法

1.2代碼示例

2.?刪除表中數據

2.1用法

2.2代碼示例

3.修改表中數據

3.1用法

3.2代碼示例

4.查詢表中的數據

4.1用法

4.2代碼示例

5.排序

5.1用法

5.2代碼示例

6.限制

6.1用法

6.2代碼示例

四、插入時間列

1.用法

2.代碼示例

五、自動增長列

1.用法

2.代碼示例

六、sqlite3?數據庫編程接口

1.需要的頭文件

2.編譯過程

3.編程框架

3.1?打開數據庫---sqlite3_open

3.1.1函數原型

3.1.2功能

3.1.3參數

3.1.4返回值

3.2執行操作---sqlite3_exec

3.2.1功能

3.2.2參數

3.2.3返回值

3.2.4注意

3.3?關閉數據庫---sqlite3_close

3.3.1函數原型

3.3.2功能

3.3.3參數

3.3.4返回值

4.代碼示例

?一、數據庫基礎知識

1.分類

大型????中型???? 小型
ORACLE???MYSQL/MSSQL???SQLITE??DBII?powdb
關系型數據庫????????

2.名詞

DB 數據庫?select?update?database
DBMS 數據庫管理系統
MIS?????管理信息系統
OA??????辦公自動化

3.嵌入式數據庫

sqlite3????www.sqlite.org??www.kernal.org
GNU???

4.特點

? 1)開源??C語言開發
??2)代碼量少?1萬行左右,總大小10M以內
??3)綠色軟件無需安裝
??4)文件型數據庫,可以移動。
??5)數據容量最大?2T???

5.sqlite3的安裝

LTS?long?term?support?

5.1在線安裝?

sudo?apt-get?install?sqlite3?
sudo?apt-get?install?libsqlite3-dev

5.2編譯

gcc?test.c?-lsqlite3?-lpthread

5.3驗證是否安裝成功

sqlite3?--version
sqlite3?--help

5.4sqlite3的使用

1)啟動sqlite3?
sqlite3?xxx.db??
===>用sqlite3?來打開一個名稱為test.db的本地數據庫。

2)出現如下提示符:表明數據庫管理系統啟動。
sqlite>?

3)退出數據庫:?
??? .q?命令

4)注意:如果一直出現如下符號:
...>???
則寫'? ;? '結束。

6.創建一個數據庫

1)touch??xxx.db
2)sqlite3?xxx.db

7.系統維護命令

? ? ===>?.help

出現所有相關的系統維護命令,都是以?"."開頭。

1).database??列出當前庫和系統中那個文件在關聯

2).tables????列出當期數據庫中的所有表

3).schema?xxx?列出當前指定的xxx表結構

4).dump?user???===>導出數據庫

5)重定向
sqlite3?test.db?.dump?>?123.sql
sqlite3?xxx.db?<?test.sql?===>導入數據庫

二、數據庫的創建和刪除

1.創建一個表

1.1用法

1)create?table??表名(表字段1,表字段2,...);

eg:?create?table?user(id,name,age);?????????char?

注意:以上表的表字段,支持如下數據類型。int?text?real?blob
??默認是text類型。char

2)create?table?表名?(表字段?類型,表字段?類型,。。。。);

1.2代碼示例

2.刪除一個表

2.1用法

drop?table??表名;

eg:drop?table?user;

eg: create?table?user(id?int??,name?char,age?int);

三、數據庫的常規操作:增加,刪除,修改,查詢

1.向表中增加數據

1.1用法

insert?into?表名?(字段名稱?)?values?(值名稱);

eg:insert?into?user?(id,age)?values?(1,10);

? ? ?insert?into?user?values(3,"wang",11);

? ? ?insert?into?user?(age)?values?(?12);

1.2代碼示例

2.?刪除表中數據

2.1用法

delete?from?表名??滿足條件:

eg:delete?from?user?;??///刪除表中所有數據
??? ???delete?from?user?where?id??=?1;?///刪除id=1?的數據;
? ? ? ? delete?from?user?where?id?=1?and?name?=?"zhang";
? ? ? ? delete?from?user?where?id?=?1?or?id??=?2;

2.2代碼示例

3.修改表中數據

3.1用法

update?表名?set?表字段?=?值??滿足條件:

eg:?update?user?set?id?=?1?where?name?=?'li';
? ? ? ? ?update?user?set?id?=?1?where?name?=?"li"?and?passwd?=?"123";
? ? ? ? ?update?user?set?id?=?2?where?name?=?"li"?or??name?=?"zhao";

3.2代碼示例

4.查詢表中的數據

4.1用法

select?列名?from?表名??條件;

eg:select?*?from?user?;
???????select?id?from?user;
? ? ? ?select?id,name?from?user?where?not??age?<30

1)where?name

2)like?'三一'???

3)通配符:%? ?、?_?

4)and???or??&?&??||

5)asc

6)select?*from?user?where?age>20?or?age<50?order?by?age?desc?limit?2?;

4.2代碼示例

模糊查找

5.排序

5.1用法

select?*from?user order by id; 正序

select?*from?user order by id desc; 倒序

eg:select?*from?user?where?age>20?or?age<50?order?by?age?desc?limit?2?;

5.2代碼示例

6.限制

6.1用法

where?(group?by?having)?order?by?[desc]?limit;

select?*?from?user?where?id<10?order?by?id?limit?2;??

6.2代碼示例

要最后的十個

四、插入時間列

1.用法

CREATE?TABLE?user1(id?int,name?char,age?int,dt?datetime);'2022-07-01?19:00:00'

insert?into?user1?values?(2,'張三',23,datetime('now','+8?hours'));

2.代碼示例

五、自動增長列

1.用法

sqlite>?CREATE?TABLE?user3(id?INTEGER?PRIMARY?KEY?ASC,name?char,age?int,dt?datetime);??主鍵?
sqlite>?insert?into?user3?(NULL,'李四',23,datetime('now'));? ?

2.代碼示例

六、sqlite3?數據庫編程接口

1.需要的頭文件

sqlite3.h

2.編譯過程

-lsqlite3

3.編程框架

打開數據庫?==》讀寫數據庫(增,刪,改,查)?==》關閉數據庫

3.1?打開數據庫---sqlite3_open

3.1.1函數原型

int?sqlite3_open(char?*?path,sqlite3?**?db);

3.1.2功能

打開指定path路徑+文件名稱的數據庫,并將打開的地址指向db變量的句柄。

3.1.3參數

path?要打開的數據庫路徑+名稱
db??要打開的數據庫地址指針

3.1.4返回值

成功??0
失敗??-1;

3.2執行操作---sqlite3_exec

3.2.1功能

該函數用于sqlite3_exec執行select語句的
?結果集返回數據。

3.2.2參數

arg?由sqlite3_exec傳入的參數
??f_num?執行該命令所返回測結果集的字段個數。
??f_value?查詢結果集中的字段的值。
??f_name??查詢結果集中的字段的名稱。

3.2.3返回值

成功?0
失敗?非0

3.2.4注意

該回調函數必須有返回值,否則可能導致查詢異常。

3.3?關閉數據庫---sqlite3_close

3.3.1函數原型

int?sqlite3_close(sqlite3?*db);

3.3.2功能

關閉指定的數據庫

3.3.3參數

要關閉的數據庫地址

3.3.4返回值

成功??0
失敗??-1;

4.代碼示例

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

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

相關文章

Class24AlexNet

Class24AlexNet AlexNet AlexNet于2012年ImageNet 圖像識別挑戰賽&#xff08;ILSVRC-2012&#xff09;中以 top-5 錯誤率15.3%獲得冠軍&#xff0c;遠遠領先第二名。它首次在大型圖像數據集上證明了深層卷積神經網絡的強大能力。 AlexNet 的總體結構 AlexNet 總共有 8 層具有學…

枚舉中間位置高級篇

參考資料來源靈神在力扣所發的題單&#xff0c;僅供分享學習筆記和記錄&#xff0c;無商業用途。 核心思路&#xff1a;參考枚舉中間位置基礎篇-CSDN博客 力扣題單練習(靈神題單中摘取題目) 447. 回旋鏢的數量 核心思路&#xff1a; 因給出的點都不相同&#xff0c;所以不會…

主數據管理系統能代替數據中臺嗎?

目錄 一、主數據管理系統≠數據中臺 1. 主數據管理系統&#xff1a;管的是 “不變的核心數據” 2. 數據中臺&#xff1a;管的是 “流動中的價值” 二、為什么企業更該先建 MDM&#xff1f; 1. 數據中臺解決不了數據本身問題 2. MDM 可以解決常見的基礎問題 3. 數字化轉型…

Nmap 終極教程:安裝、常用命令及法律法規指南

Nmap 終極教程&#xff1a;安裝、常用命令及法律法規指南 Nmap&#xff08;Network Mapper&#xff09;是一款強大的 網絡掃描和安全審計工具&#xff0c;廣泛用于滲透測試、網絡探測和系統管理。本教程涵蓋 安裝方法、常用命令詳解、輸出解析 以及 法律法規注意事項&#xff…

開源嵌入式數組引擎TileDB的簡單使用

TileDB 是C編寫的存儲和訪問通用多維數組引擎&#xff0c;它的官方Github網站https://github.1git.de/TileDB-Inc/TileDB 1.下載源代碼和二進制庫 源代碼https://github.1git.de/TileDB-Inc/TileDB/archive/refs/tags/2.28.1.tar.gz 選擇符合你的機器CPU架構和操作系統的庫 二進…

AI對服務器行業的沖擊與啟示:從挑戰走向重構

更多云服務器知識&#xff0c;盡在hostol.comAI&#xff08;人工智能&#xff09;技術的迅猛發展&#xff0c;已深刻影響了多個行業&#xff0c;服務器行業亦不例外。在過去&#xff0c;服務器的主要任務是簡單地提供存儲、計算和傳輸數據的服務。然而&#xff0c;隨著AI的崛起…

基于三臺主機搭建 Web 服務環境:Nginx、NFS 與 DNS 配置全流程

基于三臺主機搭建 Web 服務環境&#xff1a;Nginx、NFS 與 DNS 配置全流程 一、引言 在當今數字化的時代&#xff0c;搭建一個穩定、高效的 Web 服務環境是許多開發者和運維人員的常見需求。本文將詳細介紹如何利用三臺主機搭建一個包含 Nginx、NFS 和 DNS 服務的 Web 環境&…

MySQL——MVCC

1.為什么需要MVCC在并發場景下&#xff0c;讀寫操作會面臨嚴重的沖突問題&#xff1a;1.讀操作如果遇到寫操作&#xff0c;要么“讀到未提交的臟數據”&#xff0c;要么“被寫操作阻塞&#xff08;等待鎖釋放&#xff09;”&#xff1b;2.寫操作如果遇到讀操作&#xff0c;要么…

數據結構第2問:什么是算法?

算法 算法是一組用于解決具體問題的、明確的、有序的步驟或規則&#xff0c;能夠在有限的時間內通過這些步驟得到問題的答案。 算法的5個重要特性&#xff1a; 有窮性&#xff1a;算法必須在有限的步驟內結束&#xff0c;不能無限循環&#xff0c;保證最終能夠得到結果。確定性…

12-大語言模型—Transformer 打地基,下游任務蓋出百樣房,指標來驗收|下游任務白話指南

目錄 1、核心邏輯&#xff1a;Transformer 的 “語言處理閉環” 2、轉導與感知 → 模型咋 “理解語言”&#xff1f; 2.1、 人類 vs 機器的 “語言理解邏輯” 2.2、 自注意力機制&#xff1a;模型 “理解語言” 的數學核心 2.2.1、通俗拆解 2.2.1.1、是什么&#xff1f; …

深入探索爬蟲與自動化腳本:釋放效率的利器

在當今信息爆炸的時代&#xff0c;高效獲取和處理數據已成為核心競爭力。爬蟲與自動化腳本正是解決這一痛點的關鍵技術——它們如同數字世界的勤勞助手&#xff0c;幫我們自動完成繁瑣重復的任務。下面我們來系統了解這兩項技術的核心要點、應用場景和最佳實踐。一、爬蟲與自動…

React函數組件的“生活管家“——useEffect Hook詳解

&#x1f3af; React函數組件的"生活管家"——useEffect Hook詳解 1. &#x1f31f; 開篇&#xff1a;從生活中的"副作用"說起 嘿&#xff0c;各位掘友們&#xff01;今天咱們來聊聊React函數組件里的一個“大管家”——useEffect Hook。你可能會問&#x…

python基礎:request請求Cookie保持登錄狀態、重定向與歷史請求、SSL證書校驗、超時和重試失敗、自動生成request請求代碼和案例實踐

Cookie保持登錄狀態cookie session鑒權機制 cookie是由web服務器保存在用戶瀏覽器&#xff08;客戶端&#xff09;上的小文本文件&#xff0c;他可以包含有關用戶的信息。無論何時用戶訪問到服務器&#xff0c;都會帶上該服務器的cookie信息&#xff0c;一般cookie都是有有效期…

Vulkan入門教程 | 第二部分:創建實例

前言&#xff1a;本教程為筆者依據教程https://docs.vulkan.net.cn/spec/latest/index.html#_about進行Vulkan學習并結合自己的理解整理的筆記&#xff0c;供大家學習和參考。 &#xff08;注意&#xff1a;代碼僅為片段&#xff0c;非完整程序&#xff09; 學習前提&#xff1…

PHP云原生架構:容器化、Kubernetes與Serverless實踐

引言 隨著云計算的普及,PHP應用也在向云原生架構演進。本文將深入探討PHP在云原生環境中的最佳實踐,包括容器化部署、Kubernetes編排、Serverless架構以及云原生監控與日志方案,幫助開發者構建現代化、可擴展的PHP應用。 容器化PHP應用 基礎Dockerfile優化 # 多階段構建…

【華為機試】5. 最長回文子串

文章目錄5. 最長回文子串描述示例 1示例 2示例 3示例 4提示解題思路方法一&#xff1a;中心擴展法&#xff08;推薦&#xff09;方法二&#xff1a;動態規劃方法三&#xff1a;Manacher算法方法四&#xff1a;暴力解法代碼實現復雜度分析測試用例完整題解代碼5. 最長回文子串 …

【圖像處理基石】如何對遙感圖像進行實例分割?

遙感圖像實例分割是指在遙感影像中&#xff0c;不僅要識別出不同類別的目標&#xff08;如建筑物、車輛、道路等&#xff09;&#xff0c;還要區分同一類別中的不同個體&#xff08;如建筑物1、建筑物2&#xff09;&#xff0c;并為每個實例生成精確的像素級掩碼。 一、遙感圖…

電子電氣架構 --- 軟件bug的管理模式

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

【每日一錯】Oracle 19c CDB中如何啟動一個PDB

文章目錄題目擴展學習CDB與PDB的概念CDB&#xff0c;PDB結構優勢總結題目 擴展學習 CDB與PDB的概念 在Oracle 12c及以上版本&#xff0c;Oracle引入了多租戶架構&#xff0c;這種架構讓數據庫的管理和資源使用更加高效。它由兩種主要組成部分組成&#xff1a; CDB&#xff0…

Android studio自帶的Android模擬器都是x86架構的嗎,需要把arm架構的app翻譯成x86指令?

Android studio自帶的Android模擬器都是x86架構的嗎&#xff0c;需要把arm架構的app翻譯成x86指令&#xff1f; deepseek回答&#xff1a; Android Studio 自帶的官方模擬器&#xff08;Android Emulator&#xff09;主要提供基于 x86 架構的系統鏡像。當運行 ARM 架構的應用…