📜  如何在Python连接数据库(1)

📅  最后修改于: 2023-12-03 14:52:52.201000             🧑  作者: Mango

如何在Python连接数据库

Python是一种高级编程语言,具有广泛的应用领域,包括数据科学、网络编程、Web开发等。在很多应用中,我们需要使用到数据库进行数据的存储和管理。本文将介绍如何在Python中连接数据库,以及如何使用Python来进行数据库操作。

1. 安装 Python 数据库驱动(Python Database Driver)

在Python中连接数据库前,我们需要先安装相应的Python数据库驱动。Python有很多不同的数据库驱动供我们选择,具体使用哪个驱动需要根据不同的数据库类型和版本来选择。常用的Python数据库驱动有:

  • MySQL: mysql-connector-python
  • PostgreSQL: psycopg2
  • SQLite: sqlite3
  • Oracle: cx_Oracle

以MySQL数据库为例,我们可以使用mysql-connector-python驱动,它是Python的MySQL官方客户端驱动。我们可以通过pip安装:

pip install mysql-connector-python
2. 连接 MySQL 数据库

在Python中连接MySQL数据库,我们需要使用mysql-connector-python提供的连接类MySQLConnection。我们可以根据连接的不同配置参数,创建不同的连接对象实例。下面是连接MySQL数据库的示例代码:

import mysql.connector

# 建立连接
mysql_config = {
    'user': 'username',
    'password': 'password',
    'host': 'hostname',
    'database': 'database_name'
}
conn = mysql.connector.connect(**mysql_config)

# 关闭连接
conn.close()

以上代码中,我们通过mysql.connector.connect()方法创建了一个MySQLConnection连接对象,并将连接参数以字典形式传递给方法。然后我们可以通过close()方法关闭连接。

3. 执行 SQL 语句

连接到数据库之后,我们可以使用cursor()方法创建一个游标对象。游标对象可以用来执行SQL语句并返回结果。下面是使用游标对象执行SELECT语句的示例代码:

import mysql.connector

# 建立连接
mysql_config = {
    'user': 'username',
    'password': 'password',
    'host': 'hostname',
    'database': 'database_name'
}
conn = mysql.connector.connect(**mysql_config)

# 创建游标
cursor = conn.cursor()

# 执行SELECT语句
sql = 'SELECT * FROM table_name'
cursor.execute(sql)

# 获取所有结果
result = cursor.fetchall()
for row in result:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

以上代码中,我们使用游标对象执行了SELECT语句,并通过fetchall()方法获取了所有查询结果。然后我们可以遍历所有结果并将其打印出来。最后,我们通过close()方法关闭游标和连接。

4. 事务处理

在MySQL中,我们可以使用commit()rollback()方法来处理事务。事务是指一组SQL操作,要么全部执行完成,要么全部不执行。

下面是一个简单的事务处理示例代码:

import mysql.connector

# 建立连接
mysql_config = {
    'user': 'username',
    'password': 'password',
    'host': 'hostname',
    'database': 'database_name'
}
conn = mysql.connector.connect(**mysql_config)

# 创建游标
cursor = conn.cursor()

# 开始事务
cursor.execute('START TRANSACTION')

try:
    # 执行SQL语句1
    cursor.execute(sql1)

    # 执行SQL语句2
    cursor.execute(sql2)

    # 提交事务
    conn.commit()
except Exception as e:
    print(e)
    # 回滚事务
    conn.rollback()

# 关闭游标和连接
cursor.close()
conn.close()

以上代码中,我们在执行多个SQL操作前,先使用START TRANSACTION语句开启一个事务。然后依次执行需要执行的SQL语句,如果执行失败则使用rollback()回滚事务,否则使用commit()提交事务。