久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > sqlite3數據庫詳(xiang)細(xi)介紹,為sqlite3數據庫學習加速

sqlite3數(shu)(shu)據庫詳細介紹,為sqlite3數(shu)(shu)據庫學習加速 時間:2018-08-14      來源:未知

sqlite3數(shu)(shu)據庫(ku)從sqlite系統命令,sqlite3 的使用,sqlite3 API 函(han)數(shu)(shu)接口等這些方面來詳細了解sqlite3數(shu)(shu)據庫(ku)

安裝(zhuang)數據庫(ku):sudo apt-get install sqlite3

創建數據庫:sqlite3 stu.db必(bi)須實現指定數據庫名(ming)

【1】sqlite系(xi)統(tong)命令

系統(tong)命令(ling)以 "."開頭普通命令(ling),以";"結束

.schema 查看表(biao)的結(jie)構

.quit 退(tui)出數據庫(ctrl + \ 強(qiang)制退(tui)出)

.exit 退出數(shu)據庫

.help 查看幫(bang)助(zhu)信息

.databases 查看數據庫

.table 顯示(shi)數據庫中(zhong)所(suo)有的表的表名

【2】sqlite3 的(de)使用

1)創(chuang)建一(yi)張表create table 表名(字(zi)(zi)段(duan)(duan)名稱1 字(zi)(zi)段(duan)(duan)類(lei)型(xing),字(zi)(zi)段(duan)(duan)名稱2 字(zi)(zi)段(duan)(duan)類(lei)型(xing), ....);

create table stu(id int, name char[20], sex char , score int);

2)向表中插入一(yi)條(tiao)記(ji)insert into 表名 values (字段值(zhi)1,字段值(zhi)2,...);

錄insert into stu values(1001, 'zhangsan', 'm', 89);

insert into stu (id, name, sex,score) values(1002, 'lisi', 'm', 99);

select * from stu;// 查找所(suo)有的記錄(lu)

select * from stu where id=1001;// 查找符號條件的記錄

3)查詢記(ji)錄select * from stu where name= 'zhangsan';

// 字符(fu)串需要加引號(單雙皆(jie)可(ke),功能相同)

select * from stu where name = 'zhangsan' or score=92;

4)刪除記錄(lu)delete from stu where id=1004;

5)更新記(ji)錄update stu set score=98 where id=1003;

6)刪除(chu)一張表drop table stu;

7)添(tian)加一(yi)列 alter table stu add column score int;

sqlite3 不(bu)允許直接刪除(chu)一列(lie)

①先創(chuang)建一(yi)張(zhang)新(xin)表

create table stu1 as select id , name from stu;

8)刪除一列 ②刪除原來的舊表

drop table stu;

③對新表(biao)重命名

alter table stu1 rename to stu;

9)數(shu)據(ju)庫主鍵 (既設置的數(shu)據(ju)將會是(shi)唯(wei)一存(cun)在的)

create table usr(name text primary key , passwd text);

【3】sqlite3 API 函數接口

gcc 編(bian)譯時(shi)應該連(lian)接 sqlite3 庫(靜態(tai)庫)

gcc *.c -o *** -lsqlite3

所需頭文件 #include

int sqlite3_open(

函(han)數原型(xing) const char *filename,/* Database filename (UTF-8) */

sqlite3 **ppDb/* OUT: SQLite db handle */

);

功能 創建或者打開一個數據庫(ku)

filename 數據庫名字

參數

ppdb 操作數(shu)據(ju)庫的指針,句(ju)柄。

成功 SQLITE_OK

返回值

失敗 error_code

例(li) sqlite3 *db;

if(sqlite3_open("stu.db", &db) != SQLITE_OK)

{

printf("%s\n", sqlite3_errmsg(db));

}

所需頭文件 #include

int sqlite3_exec(

sqlite3* db,/* 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語句

參數db 數據庫的句(ju)柄指針

sql 將要被執行sql語(yu)句

callback 回(hui)調(diao)函數(shu), 只有在(zai)查詢語句時,才(cai)給回(hui)調(diao)函數(shu)傳參

int (*callback)(void* arg ,int ncolumn ,char** f_value,char**

f_name)

功能:得到(dao)查詢結果

參(can)數:arg 為回調函(han)數傳遞參(can)數使(shi)用(yong)的

ncolumn 記錄(lu)中包含的字段的數(shu)目

f_value包(bao)含每個字(zi)段(duan)值的指(zhi)針數組(zu)

f_name包含每個字(zi)段(duan)名(ming)稱的指(zhi)針數組(zu)

返回值:成(cheng)功 0,出錯非0

arg 為callback 傳參的

errmsg 錯誤(wu)信息的地址

成功 SQLITE_OK

返回值

失敗 error_code

char *errmsg;

if(sqlite3_exec(db, "create table stu(id int, name char, score int)",

例子NULL, NULL, &errmsg) != SQLITE_OK)

{

printf("%s\n", errmsg);

}

所需頭文件 #include

int sqlite3_get_table(

sqlite3 *db,/* An open database */

const char *zSql,/* SQL to be evaluated */

函數(shu)原型char ***pazResult, /* Results of the query */

int *pnRow,/* Number of result rows written here */

int *pnColumn,/* Number of result columns written here */

char **pzErrmsg/* Error msg written here */

);

功能查詢(xun)數(shu)據庫,它會創建一(yi)個新的內(nei)存區域來存放查詢(xun)的結(jie)果(guo)信息

db 數據庫(ku)操作(zuo)句柄

sql 數(shu)據庫的sql語句

azResult 查詢的結(jie)果(guo)

行(xing)數,nrow的(de)值為查詢到的(de)符合條件(jian)的(de)記(ji)錄數(不包括字(zi)段(duan)名)。

參數(shu) 注意:nrow的(de)值不包括字(zi)段名,如果打印時用for (i = 0; i < nrow;

nRowi++)會(hui)打印(yin)出(chu)字段名,但是會(hui)少打印(yin)出(chu)一條(tiao)符(fu)合(he)條(tiao)件的(de)記錄。因此打

印時要用 for (i = 0; i

印出來。

nColumn列數,ncolumn的(de)值為查詢(xun)到的(de)符合(he)條(tiao)件(jian)的(de)字段數。

errmsg錯(cuo)誤消息(xi)

成功(gong)SQLITE_OK

返回值

失敗error_code

const char *sqlite3_errmsg(sqlite3* db);功能:獲取錯誤(wu)信息(xi)描述(shu)

int sqlite3_close(sqlite3* db);功能(neng):關閉(bi)一個數據庫

void sqlite3_free_table(char **result);功(gong)能(neng):釋放(fang)內存

推薦書籍:

UNIX高(gao)級環境編程

UNIX網絡編程 卷(juan)一 卷(juan)二

TCP/IP詳解 卷一 卷二 卷三

UNIX/LINUX系統編程手冊(ce)(ce) 上冊(ce)(ce) 下冊(ce)(ce)

上一篇:同步與異步的區別詳解

下一篇:Linux下網絡編程實現UDP,還有大量實例

熱點文章推薦
華清(qing)學(xue)員就業榜單
高(gao)薪學員經驗分(fen)享(xiang)
熱點(dian)新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專(zhuan)線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部