PyQt5快速入门(八)PyQt5数据库操作
一、SQLite数据库
1、SQLite简介
SQLite是一个轻量级的数据库,实现了自给自足、无服务器、零配置、事务性的SQL数据库引擎,主要作为手机应用的数据库以及小型桌面应用的数据库。
官方网站:
https://www.sqlite.org
2、SQLite常用操作
创建数据库文件,创建后进行入SQLite命令行模式。sqlite3 DatabaseName.db
查看已经存在的数据库文件,在SQLite命令行模式执行:.databases
打开已经存在的数据库文件,如果数据库文件不存在,则创建。sqlite3 DatabaseName.db
查看帮助信息,在SQLite命令行模式执行:.help
创建表,在SQLite命令行模式执行:create table person(id integer primary key, name text);
插入数据到表:insert into person(id, name) values(1, "zhangsan");
查询操作:select * from person;
查询表的结构:.schema person
3、SQLite管理工具
SQLite有多个开源且优秀的DBMS(数据库管理系统),提供了界面操作SQLite数据库。
SQLiteStudio是一款非常专业的SQLite数据库管理软件,体积小巧,功能强大,支持中文,免安装。
SQLiteStudio下载:
https://sqlitestudio.pl/index.rvt?act=download
二、连接数据库
1、数据库驱动类型
PyQt中,QSqlDatabase类用于连接数据库,可以使用数据库驱动与不同的数据库进行交互,一个QSqlDatabase实例代表一次数据库连接。可用数据库驱动类型如下:
QDB2 IBM DB2驱动程序
QMYSQL MySQL驱动程序
QOCI Oracle调用接口驱动程序
QODBC ODBC驱动程序(包括MS SQL Server)
QPSQL PostgreSQL驱动程序
QSQLITE SQLite3驱动程序
QSQLITE2 SQLite2驱动程序
2、QSqlDatabase常用方法
QSqlDatabase常用方法如下:
addDataBase:设置连接数据库的数据库驱动类型
setDatabaseName:设置所连接的数据库名称
setHostName:设置数据库所在的主机名称
setUserName:指定连接的用户名
setPassword:设置连接对象的密码
commit:提交事务,如果执行成功返回True。
rollback:回滚数据库事务
close:关闭数据库连接
3、数据库连接实例
import sys
from PyQt5.QtSql import QSqlDatabase
from PyQt5.QtCore import *
if __name__ == "__main__":
app = QCoreApplication(sys.argv)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("/home/user/test.db")
if db.open():
print("open DB success.")
sys.exit(app.exec_())
三、执行SQL语句
QSqlQuery具有执行和操作SQL语句的功能,可以执行DDL和DML类型的SQL查询,QSqlQuery.exec_()
用于执行SQL操作。
import sys
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from PyQt5.QtCore import *
def createDB():
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("/home/user/test.db")
if db.open():
query = QSqlQuery()
query.exec_("create table person(id int primary key, name varchar(20), address varchar(30))")
query.exec_("insert into person values(1, 'Bauer', 'beijing')")
query.exec_("insert into person values(2, 'Jack', 'shanghai')")
query.exec_("insert into person values(3, 'Alex', 'ch