在Python 3.6中,可以使用各种数据库驱动库来连接数据库。对于MySQL,可以使用mysqlconnectorpython
库;对于PostgreSQL,可以使用psycopg2
库;对于SQLite,可以使用内置的sqlite3
库。首先需要安装相应的库,然后使用库提供的API进行数据库连接和操作。
Python3.6 连接数据库的详细指南
在现代软件开发中,数据库连接和操作是基本技能之一,本文将详细介绍使用 Python 3.6 连接和操作数据库的过程,Python 提供了多种方式来连接数据库,本文将重点介绍使用 PyMySQL 和 mysqlconnectorpython 驱动程序连接 MySQL 数据库的方法。
1.安装数据库驱动
要使用 Python 连接数据库,首先需要安装适当的数据库驱动,对于 MySQL 数据库,常用的驱动有 PyMySQL 和 mysqlconnectorpython。
安装 PyMySQL
PyMySQL 是一个纯 Python 写的 MySQL 客户端,可以很好地与 Python 3.x 版本兼容,安装过程非常简单,可以通过 pip 工具来安装:
“`bash
pip3 install PyMySQL
“`
如果系统不支持 pip,可以从 GitHub 上克隆 PyMySQL 的源代码,然后进行安装:
“`bash
git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL
python3 setup.py install
“`
安装 mysqlconnectorpython
mysqlconnectorpython 是 MySQL 官方提供的驱动,同样支持 Python 3.x,安装命令如下:
“`bash
pip install mysqlconnectorpython
“`
如果遇到权限问题或指定安装目录的需求,可以参考官方文档调整安装命令。
2.建立数据库连接
安装完数据库驱动之后,接下来需要用 Python 代码连接到数据库,以下是使用 PyMySQL 和 mysqlconnector 连接本地 MySQL 数据库的示例:
使用 PyMySQL 连接
“`python
import pymysql
# 建立连接
connection = pymysql.connect(host=’localhost’,
user=’testuser’,
password=’test123′,
database=’TESTDB’,
charset=’utf8mb4′)
# 创建一个游标对象
cursor = connection.cursor()
“`
使用 mysqlconnector 连接
“`python
import mysql.connector
# 建立连接
connection = mysql.connector.connect(host=’localhost’,
user=’testuser’,
password=’test123′,
database=’TESTDB’)
# 创建一个游标对象
cursor = connection.cursor()
“`
3.创建和操作数据库表
连接数据库后,通常需要进行创建表、插入数据、查询数据等操作,以下举例说明如何创建表和插入数据:
创建表
“`python
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql_create_table = """
CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)
"""
cursor.execute(sql_create_table)
connection.close()
“`
插入数据
“`python
sql_insert = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
data = (‘Mac’, ‘Mohan’, 20, ‘M’, 2000)
cursor.execute(sql_insert, data)
connection.commit() # 提交事务
“`
4.查询和更新数据
查询数据
“`python
cursor.execute("SELECT * FROM EMPLOYEE")
rows = cursor.fetchall()
for row in rows:
print(row)
“`
更新数据
“`python
sql_update = "UPDATE EMPLOYEE SET INCOME = %s WHERE FIRST_NAME = %s"
update_data = (5000, ‘Mac’)
cursor.execute(sql_update, update_data)
connection.commit() # 提交事务
“`
5.删除数据和关闭连接
删除数据
“`python
sql_delete = "DELETE FROM EMPLOYEE WHERE FIRST_NAME = %s"
delete_data = (‘Mac’,)
cursor.execute(sql_delete, delete_data)
connection.commit() # 提交事务
“`
关闭连接
“`python
cursor.close()
connection.close()
“`
6.异常处理和事务控制
在进行数据库操作时,异常处理和事务控制非常重要,能够保证数据的一致性和完整性,以下是一个包含异常处理的插入操作示例:
try: cursor.execute(sql_insert, data) connection.commit() except Exception as e: print("发生错误:", e) connection.rollback() # 回滚事务 finally: cursor.close() connection.close()
通过上述步骤,你应该能够顺利地使用 Python 3.6 连接和操作 MySQL 数据库,下面归纳一下整个过程中的关键点和注意事项:
选择合适的数据库驱动:根据 Python 版本和数据库类型选择适当的驱动。
正确安装数据库驱动:使用 pip 工具或者源码安装,确保驱动与 Python 版本兼容。
安全连接信息:数据库连接信息应保密,避免硬编码在代码中。
异常处理:对数据库操作进行异常处理,确保程序健壮性。
事务控制:使用 commit() 和 rollback() 方法进行事务控制,保证数据一致性。
FAQs
Q1: 连接数据库时出现“Access denied for user”错误怎么办?
A1: 这个错误通常表示用户名或密码错误,或者用户没有权限访问指定的数据库,你需要确认以下几点:
确保输入的用户名和密码正确无误。
确保该用户有权限访问该数据库,可以使用 GRANT 命令为用户授权。
如果问题依旧存在,尝试在数据库管理工具中直接连接,看是否能成功,这样可以排除是代码问题还是数据库配置问题。
Q2: 执行数据库操作时出现“Lost connection to MySQL server during query”怎么处理?
A2: 这个错误可能由几个原因导致:
查询执行时间太长,导致连接超时,可以优化查询语句或增加连接超时时间。
网络不稳定导致连接中断,检查网络连接,确保网络稳定。
MySQL 服务未运行或崩溃,检查 MySQL 服务状态,并尝试重启服务。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/13985.html