sqlite3 select查询一列_一眼就会的sqlite3数据库
一、SQLite數據庫簡介
SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite 是在世界上最廣泛部署的 SQL 數據庫引擎。
二、SQLite數據庫安裝
目前,幾乎所有版本的 Linux 操作系統都附帶 SQLite。所以,只要使用下面的命令來檢查您的機器上是否已經安裝了 SQLite。
如果沒安裝在Ubuntu下輸入如下命令:sudo apt-get install sqlite3三、SQLite數據庫使用
1-- 安裝數據庫:
sudo apt-get install sqlite32-- 創建數據庫
sqlite3 stu.db3-- sqlite命令
系統命令 以 "."開頭普通命令 ,以";"結束 .schema 查看表的結構.quit 退出數據庫.exit 退出數據庫.help 查看幫助信息.databases 查看數據庫.tables 顯示數據庫中所有的表的表名4-- sqlite3 的使用
1-- 創建一張表
create table 表名(字段名稱1 字段類型,字段名稱2 字段類型, ....);
create table stu(id int, name char, sex char , score int);2-- 向表中插入一條記錄
insert into 表名 values (字段值1,字段值2,...);
insert into stu values(1001, 'zhangsan', 'm', 89);insert into stu (id, name, sex,score) values(1002, 'lisi', 'm', 99);3-- 查詢記錄
select * from stu; // 查找所有的記錄select * from stu where id=1001; // 查找符號條件的記錄select * from stu where id=1001 and name='zhangsan'; // 字符串需要加引號select * from stu where name = 'zhangsan' or score=92;4-- 刪除記錄
delete from stu where id=1004;5-- 更新記錄
update stu set score=98 where id=1003;6-- 刪除一張表
drop table stu;7-- 添加一列
alter table stu add column score int;8-- 刪除一列
sqlite3 不允許直接刪除一列
1)先創建一張新表
create table stu1 as select id , name from stu;2)刪除原來的舊表
drop table stu;3)對新表重命名
alter table stu1 rename to stu;9-- 數據庫主鍵(既設置的數據將會是唯一存在的)
create table usr(name text primary key , passwd text);5-- sqlite3 API 函數接口
(1)int sqlite3_open( const char *filename, /* Database filename (UTF-8) */sqlite3 **ppDb /* OUT: SQLite db handle */);功能:打開一個數據庫參數:filename 數據庫名字ppdb 操作數據庫的指針,句柄。返回值:成功 SQLITE_OK , 失敗 error_code(2)const char *sqlite3_errmsg(sqlite3* db);功能:獲取錯誤信息描述(3)int sqlite3_close(sqlite3* db);功能:關閉一個數據庫(4)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 數據庫的句柄指針sql 將要被執行sql語句callback 回調函數, 只有在查詢語句時,才給回調函數傳參arg 為callback 傳參的errmsg 錯誤信息的地址返回值:成功 SQLITE_OK出錯 errcode 錯誤碼***********************************************************int (*callback)(void* arg ,int ncolumn ,char** f_value,char** f_name)功能:得到查詢結果參數:arg 為回調函數傳遞參數使用的ncolumn 記錄中包含的字段的數目f_value 包含每個字段值的指針數組f_name 包含每個字段名稱的指針數組返回值:成功 0,出錯 非0*********************************************************(5)int sqlite3_get_table(sqlite3 *db, /* An open database */const char *zSql, /* SQL to be evaluated */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 */);功能:查詢數據庫,它會創建一個新的內存區域來存放查詢的結果信息參數:db 數據庫操作句柄sql 數據庫的sql語句azResult 查詢的結果nRow 行數nColumn 列數errmsg 錯誤消息返回值:成功 0出錯 errcodenrow的值為查詢到的符合條件的記錄數(不包括字段名)。ncolumn的值為查詢到的符合條件的字段數。注意:nrow的值不包括字段名,如果打印時用for (i = 0; i < nrow; i++)會打印出字段名,但是會少打印出一條符合條件的記錄。因此打印時要用 for (i = 0; i <nrow + 1; i++);將包括字段名在內的數據都打印出來。(6)void sqlite3_free_table(char **result);功能:釋放內存備注:
于作者水平,難免有理解和描述上有疏漏或者錯誤的地方,歡迎共同交流;部分參考已經在正文和參考文獻中列表注明,但仍有可能有疏漏的地方,有任何侵權或者不明確的地方,歡迎指出,必定及時更正或者刪除;文章供于學習交流,轉載注明出處。
總結
以上是生活随笔為你收集整理的sqlite3 select查询一列_一眼就会的sqlite3数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习如何计算特征的重要性_干货 :机
- 下一篇: qt中实现息屏开平mousepress_