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指向的记录在结果集中的编号。

 

 

 

你可能感兴趣的:(PyQt5)