数据库Sqlite3
???????????????????????????????????????????????????????? sqlite3 數據庫安裝
1. 本地安裝
sudo dpkg -i *.deb
2.在線安裝
sudo apt-get install sqlite3
?
?
????????????????????????????????????????????????????? SQLITE3 基本命令
?
兩種命令
1.以 . 開頭的稱之為系統命令
.help 幫助
.quit 退出
.exit 退出
.databases 查看打開的數據庫(顯示數據庫的名字和路徑)
.table 查看當前數據庫的表格
?
2. 以 , 結尾的 sql命令
創建一張數據庫表 stu :
creat table stu(Id Integer, name char, score Integer );
?
查看表的結構圖:
.schema
?
在數據表中插入數據(完全插入 所有參數必須都有)
insert into +數據表名 values(相應數據)
?
在數據表中插入數據(部分插入 部分參數就行)
insert into +數據表名((參數名一,。。。。。, 參數名N)values(參數值一, 。。。。,參數值N))
?
查看數據表中的內容(查詢全部內容)
select * from +數據表名
?
查詢數據表中的內容 (查詢部分內容)
select name, sroce from +數據表名
?
查詢數據表內容 (查詢特定內容)
select * from +數據表名 where 參數=?;(一個限定條件)
select * from +數據表名 where 參數1=? and 參數2=?;(兩個限定條件必須同時滿足)
select * from +數據表名 where 參數1=? or 參數2=?;(兩個限定條件滿足一個就行)
刪數據表中的內容
delete frm +數據表名 ;(刪除整個數據表)
delete from +數據表名 where 參數=?;(刪除特定內容)
其他和查詢內容都一樣 依然可以使用and 和or
?
設置數據表中的內容
update +數據表名 set 參數1=?where 參數2=?;
update +數據表名 set 參數1=?, 參數2=?where 參數3=? ;
?
刪除數據表
drop table 數據表名
?
給數據表重命名
alter table +原的數據表名 rename to 要改成的數據表名
給數據庫添加一列統計信息
alter table +數據表名 add column 要添加的統計信息 要添加的信息的類型;
?
sqlite不支持刪除一列信息
所以只能間接刪除 步驟如下:
1.創建一張新表
2.刪除原有的表
3.將新表的名字改成原來的表的名字
這樣舊表的內容會自動寫入到新表中
?
?
????????????????????????????????????????????????????????? API()
?
頭文件:#include <stdlib.h>
編譯指令·: gcc 文件名.c -lsqlite3
?
int sqlite3_open(const char *filename, sqlite3 **ppDb);
作用:打開一個數據庫
參數:filename 數據庫路徑
ppDb 代表數據庫的操作句柄(指針)
返回值: 成功返回 SQLITE_OK 失敗返回錯誤碼
?
int sqlite3_close(sqlite3 *db);
作用:關閉數據庫
參數: db操作數據庫的指針
返回值:成功返回SQLITE_OK 失敗返回錯誤碼
?
const char *sqlite3_errmsg(sqlite3 *db)
功能 :通過db句柄 得到數據庫操作的錯誤信息
?
int sqlite3_exec{
sqlite3 *db;
const char *sql;
int (*callback)(void *, int char **, char **);
void *arg;
char **errmsg;
};
功能:執行一條sql語句
參數: db 數據庫操作句柄
sql:一條sql語句(末尾的分號可省略)
callback:回調函數 是一個函數指針類型 傳遞的參數是函數名(只有sql為查詢語句時 才會執行回調函數)
arg:表示給回調函數傳遞的參數
errmsg 錯誤信息
?
返回值 成功SQLITE_OK
?
typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name)
功能:每找到一條記錄自動執行一次回調函數
para:傳遞給回調函數的參數
f_num: 記錄中包含的字段數目
f_value:包含每個字段值的指針數組
f_name 包含每個字段名稱的指針數組
成功返回0 失敗返回-1
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int nrow, int *ncolum, char **errmsg)
?
db:數據庫句柄
resultp: 用來指向sql執行結果的指針
nrow:滿足條件的記錄的數目
ncolumn: 每條記錄包含的字段數
errmsg:錯誤信息指針的地址
返回值: 成功返回0 失敗返回錯誤碼
?
?
代碼示例
?
功能: 建立一個數據庫 對其能進行刪減改查的操作
?
?
總結
以上是生活随笔為你收集整理的数据库Sqlite3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue2.0 props 使用的问题
- 下一篇: 【MySQL】AUTO_INCREMEN