首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3 连接各类数据库

一、 Mysql

1. 安装 PyMysql 库

2. 连接数据库的几种方法connect()方法用于连接数据库

第一种:将各类字段写上

第二种:省略字段

第三种:构建配置文件

3. 操作数据库

4. PyMysql 返回字典数据

PyMysql 默认返回是元组,有时候需要返回数据库的字段,需要把 Key 也返回及返回字典类型

5. 源码实例

6. PyMysql 参数connect() 参数

host 连接的数据库服务器主机名 默认为本地主机(localhost)

user 连接数据库的用户名 默认为当前用户

passwd 连接密码 没有默认值

db 连接的数据库名 没有默认值

conv 将文字映射到Python类型的字典默认为MySQLdb.converters.conversions

cursorclass cursor()使用的种类 默认值为MySQLdb.cursors.Cursor

compress 启用协议压缩功能

named_pipe 在windows中 与一个命名管道相连接

init_command 一旦连接建立 就为数据库服务器指定一条语句来运行

readdefaultfile 使用指定的MySQL配置文件

readdefaultgroup 读取的默认组

unix_socket 在unix中 连接使用的套接字 默认使用TCP

port 指定数据库服务器的连接端口 默认是3306

连接对象方法

连接对象的 db.close() 方法可关闭数据库连接 并释放相关资源

连接对象的 db.cursor([cursorClass]) 方法返回一个指针对象 用于访问和操作数据库中的数据

连接对象的 db.begin() 方法用于开始一个事务 如果数据库的AUTOCOMMIT已经开启就关闭它 直到事务调用commit()和rollback()结束

连接对象的 db.commit() 和db.rollback()方法分别表示事务提交和回退

指针对象方法

指针对象的 cursor.close() 方法关闭指针并释放相关资源

指针对象的 cursor.execute(query[,parameters]) 方法执行数据库查询

指针对象的 cursor.fetchall() 可取出指针结果集中的所有行 返回的结果集一个元组(tuples)

指针对象的 cursor.fetchmany([size=cursor.arraysize])从查询结果集中取出多行 我们可利用可选的参数指定取出的行数

指针对象的 cursor.fetchone() 从查询结果集中返回下一行

指针对象的 cursor.arraysize 属性指定由cursor.fetchmany()方法返回行的数目 影响fetchall()的性能 默认值为1

指针对象的 cursor.rowcount 属性指出上次查询或更新所发生行数-1表示还没开始查询或没有查询到数据

二、 Mssql1. 安装 PyMssql 库

2. 连接数据库的方法

Mssql 用字典配置不可以用,connect() 用来连接数据库

3. 操作数据库

和 Mysql 操作方法一模一样,只不过将 PyMysql 改为 PyMssql 即可,参考上面 PyMssql

4. PyMssql 返回字典数据

只需要在连接数据库时候加上一个 as_dict 字段,将值改为 True 即可

5. PyMssql 参数connect() 参数

dsn 连接字符串 主要用于与之前版本的pymssql兼容

user 用户名

password 密码

trusted 布尔值 指定是否使用windows身份认证登陆

host 主机名

database 数据库

timeout 查询超时

login_timeout 登陆超时

charset 数据库的字符集

as_dict 布尔值 指定返回值是字典还是元组

max_conn 最大连接数

操作方法

close() 关闭游标

execute(operation) 执行操作

execute(operation params) 执行操作 可以提供参数进行相应操作

executemany(operation paramsseq) 执行操作 Paramsseq 为元组

fetchone() 在结果中读取下一行

fetchmany(size=None) 在结果中读取指定数目的行

fetchall() 读取所有行

nextset() 游标跳转到下一个数据集

其他方法

autocommit(status) 布尔值 指示是否自动提交事务 默认的状态是关闭的 如果打开 你必须调用commit()方法来提交事务

close() 关闭连接

cursor() 返回游标对象 用于查询和返回数据

commit() 提交事务

rollback() 回滚事务

pymssqlCursor类 用于从数据库查询和返回数据

rowcount 返回最后操作影响的行数

connection 返回创建游标的连接对象

lastrowid 返回插入的最后一行

rownumber 返回当前数据集中的游标(通过索引)

6. PyMssql 配置文件

在开源库目录下找到 freetds.conf 打开

三、 Oracle1. 安装 cx_Oracle 库

2. 连接数据库的几种方法

第一种:Oracle 连接方法

第二种:省略字段连接方法

第三种:dsn 方法

3. 操作数据库

和 Mysql 操作方法一模一样,只不过将 PyMysql 改为 cx_Oracle 即可,参考上面 PyMssql

4. PyMssql 返回字典数据

Oracle 返回字典类型比较麻烦,因为 cx_Oracle 没有集成,所以需要我们自己写返回字典的方法

cx_Oracle 的 Cursor 对象有一个属性 rowfactory 是是用来自定义查询结果的预处理方法的,定义一个闭包

并将其注册给游标对象的rowfactory属性 得到的结果自动由元组转为字典了

但要注意,注册的动作需要在每次执行 cursor.execute 之后都重复一次。最终的方法是定义了一个类来继承 Cursor 对象,这样就不需要重复注册了

5. cx_Oracle 参数>_< 翻遍了 Google 和 度娘 都没找到完整的参数,官方都是英文文档,由于英文太烂加上时间紧迫没时间翻译,有吊大的知情人士望告知

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G0GWRW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券