pyqt5打开oracle,PyQt5快速入门(八)PyQt5数据库操作

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', 'chengdu')")

db.close()

if __name__ == "__main__":

app = QCoreApplication(sys.argv)

createDB()

sys.exit(app.exec_())

执行完SQL语句后,如果

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值