Qt下使用SQLite基礎(一)

2021-10-10 05:06:39 字數 3807 閱讀 6225

通常使用sqlite3這個工具使用資料庫。

常用命令

**

sqlite3 mydatabase.db	                        建立乙個資料庫,檔名稱為mydatabase

.tables 顯示當前資料庫中,所有表有哪些

create table userinfo

(username, password) 建立乙個表,名稱是userinfo

insert into userinfo

(username, password)

values

("xiaoming"

,123

); 向資料表userinfo中插入,username為xiaoming, password為123

select * from userinfo; 查詢userinfo表中的所有資料。

update 表名稱 set 更新資料庫中所有的資料記錄用

update userinfo set password=

111; 更新所有行的password欄位的值

update userinfo set password=

111 where username=

"shiqianjun"

; 更新某些制定的記錄物件的password,此時要用where語句進行篩選定位

delete from userinfo; 清空某張表

detele from userinfo where username=

"xiaoming"

; 清空指定行的記錄,用where語句

引入sql類庫:

在pro工程檔案中引入sql,引用方法 qt+=sql

或在原來的基礎上拼接,引用方法是用空格在後面加上sql: qt += core gui sql

在窗體標頭檔案.h 中引入

#include

//資料庫使用

#include

//可以執行資料庫語句(建立表,增刪減改)

*oracle對大級別資料庫,mysql是中量, sqlite是輕量。

在標頭檔案.h 中的 private: 下建立乙個引入資料庫的變數db

qsqldatabase db;

//建立資料庫使用db

qsqlquery *sql;

//執行資料庫語句使用sql,要加*用指標變數。因為要先建立資料庫才能使用(就是先得執行db的adddatabase和setdatabasename。這個時候用指標就沒關係。

然後在cpp檔案中

db = qsqldatabase::

adddatabase

("qsqlite");

//建立資料庫型別為sqlte3

db.setdatabasename

("userinfo.db");

//通過這個方法來建立資料庫

db.open()

;//只有開啟一次,才能在電腦資料夾中顯示這個userinfo.db檔案

sql =

newqsqlquery()

;//得先new乙個才能用sql

sql-

>

exec

("create table userinfo(username ,password)");

sql-

>

exec

("insert into userinfo(username,password) values(123,456)"

);

*qt操作的sqlite如果資料庫或是表已經存在,那麼不會再次建立,而是開啟。

*exec()這個不推薦使用,不安全以及擴充套件性不好(注入問題)。應該先使用prepare(),再bindvalue()

sql-

>

prepare

("insert into userinfo values(:username, :password, :confirm_password, :realname)");

sql-

>

bindvalue

(":username"

, username)

;sql-

>

bindvalue

(":password"

, password)

;sql-

>

bindvalue

(":confirm_password"

, confirm_password)

;sql-

>

bindvalue

(":realname"

, realname)

;

tableview控制項顯示資料庫中的內容為 **行

修改窗體的標題屬性lwindowtitle

#include

private

:qsqlquerymodel *qmodel;

//指標型別

通過資料模型來渲染**

qmodel =

newqsqlquerymodel()

;qmodel-

>

setquery

("select * from userinfo");

ui->tableview-

>

setmodel

(qmodel)

:

qtableview控制項

通過qsqlquerymodel來渲染資料

通過setmodel的形式加入qsqlquerymodel物件

通過qsqlquerymodel來從資料庫中查詢出需要的資料

如要要修改顯示的表頭

qmodel-

>

setquery

("select username as 使用者名稱,password as 「密碼」from userinfo"

);

第二種方法:通過qsqlquerymodel的設定表頭的方法來實現

qmodel-

>

setheaderdata(0

,qt::horizontal,

"使用者名稱");

qmodel-

>

setheaderdata(1

,qt::horizontal,

"密碼"

);

*插入完資料後,需要重新查詢一次才可以實時更新顯示

qmodel-

>

setquery

("select * from userinfo)

;

請打賞一點點就好^^

在QT中使用sqlite

sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...

QT簡單使用SQLITE3

pro檔案 qt sql 件 qsqldatabase m pdatabase qsqlquery m psqlquery cpp檔案 tr user login.db 路徑一定要準確,這裡使用相對路徑 也就是在專案生成的debug目錄下 qfileinfo file dbfilename 用於判斷...

python下的sqlite使用

環境 python2.7 在sqlite中有64位的 rowid,rowid預設是自增的。我們用這個特性,來處理我們的增量資料。建立乙個sqlite記錄資料 coding utf 8 import sqlite3 conn0 sqlite3.connect local info.db 獲取表名列表 ...