目錄
?一、數據庫基礎知識
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;