PyQt5中使用內置的QSqlQuery對象對mysql數據庫的連接和查詢,插入操作

1、數據庫連接
self.db = QSqlDatabase.addDatabase('QMYSQL')
self.db.setHostName('localhost')
self.db.setDatabaseName('bigpeng')
self.db.setUserName('root')
self.db.setPassword('')
if not self.db.open():# 判斷數據庫是否打開
    QMessageBox.critical(None, ('無法打開數據庫'), ('無法建立連接,需要配置'), QMessageBox.Cancel)
    return False

2、實例化一個QSqlQuery對象,然後創建創建一個people表,往表中插入數據
query = QSqlQuery()
query.exec('create table people(id int primary key,name varchar(20),address varchar(30))')
query.exec("insert into people values(1,'zhangsan','beijing')")
query.exec("insert into people values(2,'li','ag')")
query.exec("insert into people values(3,'wang','aghas')")

3、實例化一個QSqlQuery對象,然後就行查詢操作
使用query.exec(“select* from student”);來查詢出表中所有的內容,便獲得了相應的執行結果,
因爲獲得的結果可能不止一條記錄,所以我們稱之爲結果集。注意這個集合中的記錄是從0開始編號的),
需要說明,當剛執行完query.exec(“select * from student”);這行代碼時,query是指向結果集以外的,
我們可以利用query.next(),當第一次執行這句代碼時,query便指向了結果集的第一條記錄。
具體操作如下:
query = QSqlQuery()
query.exec("select * from df_user WHERE username='%s'"%user)
while(query.next()): # 判斷是否有下一條記錄
    print(query.value(4))# 取出每一條記錄中的每一列的值,這裏是第四列,這個集合中的記錄是從0開始編號的
最常用query函數的有:
seek(int n) :query指向結果集的第n條記錄。
first() :query指向結果集的第一條記錄。
last() :query指向結果集的最後一條記錄。
next() :query指向下一條記錄,每執行一次該函數,便指向相鄰的下一條記錄。
previous() :query指向上一條記錄,每執行一次該函數,便指向相鄰的上一條記錄。
record() :獲得現在指向的記錄。
size():返回查詢結果中的記錄數。
value(int n) :獲得屬性的值。其中n表示你查詢的第n個屬性
at() :獲得現在query指向的記錄在結果集中的編號。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章