如何在Python中连接数据库?

如何在Python中连接数据库?

在Python开发中,数据库连接是一个必不可少的部分。在大多数应用程序中,我们需要从数据源中获取数据并使用它们。在这里,我们将介绍如何在Python中连接数据库,并讨论几个常用的Python数据库驱动程序。

阅读更多:Python 教程

Python数据库驱动程序

Python支持多种SQL服务器和NoSQL数据库。以下是一些常见的Python数据库驱动程序:

  • MySQL-Python
  • PostgreSQL驱动程序
  • pyodbc
  • cx_Oracle
  • PyMongo

除此之外,还有很多其他的数据库驱动程序。在这篇文章中,我们将深入探讨两种最受欢迎的Python数据库驱动程序:MySQL-Python和pyodbc。

使用MySQL-Python连接数据库

MySQL-Python是Python连接MySQL数据库的常用模块。它提供了一个Python接口,使得连接和MySQL服务器之间的通信变得简单而直接。

安装MySQL-Python

在连接MySQL数据库之前,我们需要安装MySQL-Python模块。您可以使用pip包管理器来安装MySQL-Python,如下所示:

!pip install MySQL-Python

配置MySQL数据库

在连接到MySQL数据库之前,我们需要确保MySQL服务器已启动,并且数据库已成功连接。如果您使用的是本地MySQL服务器,则可以跳过此步骤。否则,您需要进行一些配置以确保您的Python程序可以连接到MySQL服务器。

创建数据库和表格

可以使用以下命令在MySQL命令行中创建数据库和表。请确保已安装MySQL服务器并以root用户身份登录。

mysql> CREATE DATABASE testdb;
mysql> USE testdb;
mysql> CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(20));

这将创建一个名为“testdb”的数据库以及一个名为“employees”的表,该表包含两列:id和name。id列是主键列,唯一标识每个员工。

mysql

连接到MySQL数据库

在Python中连接到MySQL数据库很容易。我们只需要使用MySQLdb模块中的connect()函数。以下是一个示例:

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "password", "testdb")

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM employees"

# 执行SQL语句
cursor.execute(sql)

# 获取所有记录列表
results = cursor.fetchall()
for row in results:
    id = row[0]
    name = row[1]
    # 打印结果
    print("id=%s,name=%s" % (id, name))

# 关闭数据库连接
db.close()

在这里,我们打开到localhost的MySQL服务器的连接,并选择testdb数据库。并使用cursor()方法获取操作游标。然后,执行SQL查询语句并获取结果。最后,我们循环遍历结果,并打印出每一条数据。

如果连接成功,则最后输出的结果应为以下内容:

id=1,name=Tom
id=2,name=Jerry
id=3,name=Kate

提交更改

在MySQL数据库中执行更新、插入或删除操作后,更改不会立即生效。相反,它们被缓冲在MySQL服务器上。要使更改生效,请使用commit()函数提交数据库更改。

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "password", "testdb")

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "INSERT INTO employees(id, name) VALUES(4, 'Mike')"
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交更改
    db.commit()
    print("数据插入成功")
except:
    # 发生错误时回滚
    db.rollback()
    print("数据插入失败")

# 关闭数据库连接db.close()

在这里,我们插入了一条新的数据,并使用commit()函数提交了更改。如果插入成功,则会输出“数据插入成功”。

错误处理

在连接到MySQL数据库时,可能会遇到许多不同类型的错误。当发生错误时,我们需要对其进行处理,以便适当地处理错误。

import MySQLdb

try:
    # 打开数据库连接
    db = MySQLdb.connect("localhost", "root", "xxxxx", "testdb")

    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()

    # SQL 查询语句
    sql = "SELECT * FROM employees"

    # 执行SQL语句
    cursor.execute(sql)

    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        id = row[0]
        name = row[1]
        # 打印结果
        print("id=%s,name=%s" % (id, name))

    # 关闭数据库连接
    db.close()

except MySQLdb.Error as e:
    print("Error %d: %s" % (e.args[0], e.args[1]))

在这里,我们使用try和except语句块来处理MySQLdb.Error异常。如果连接到MySQL服务器时出现错误,程序将打印一个错误消息。

使用pyodbc连接数据库

pyodbc是Python连接多个数据库类型的库。它可以通过ODBC驱动程序连接到各种数据库,如Microsoft SQL Server、Oracle、IBM DB2等。

安装pyodbc

在连接到数据库之前,我们需要安装pyodbc库。您可以使用pip包管理器来安装pyodbc,如下所示:

!pip install pyodbc

连接到数据库

使用pyodbc连接到数据库也很容易。我们只需要提供有关数据库和odbc驱动程序的信息即可。以下是一个使用pyodbc连接到Microsoft SQL Server数据库的示例代码:

import pyodbc

# 配置odbc驱动程序名称,DSN(Data Soource Name)和端口号
ODBC_DRIVER = '{ODBC Driver 17 for SQL Server}'
# 在SQL Server Configuration Manager中添加的DSN名称
ODBC_SERVER = 'sqlserverserver'
ODBC_PORT = '1433'
ODBC_DATABASE = 'dbname'
# SQL Server 用户名和密码
ODBC_UID = 'username'
ODBC_PWD = 'password'

try:
    # 配置数据库信息
    conn_info = 'DRIVER={driver};SERVER={server},{port};DATABASE={database};UID={username};PWD={password}'.format(
            driver=ODBC_DRIVER, server=ODBC_SERVER, port=ODBC_PORT, database=ODBC_DATABASE, username=ODBC_UID, password=ODBC_PWD)

    # 连接到数据库
    conn = pyodbc.connect(conn_info)

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

    # 执行查询
    cursor.execute("SELECT TOP 10 * FROM users")

    # 遍历结果
    for row in cursor:
        print(row)

    # 关闭连接
    conn.close()

except pyodbc.Error as ex:
    # 打印错误信息
    print(str(ex))

在这里,我们通过提供有关数据库和odbc驱动程序的信息来连接到Microsoft SQL Server数据库,并使用pyodbc建立与该数据库的连接。然后,我们创建一个游标,并执行一个查询,并使用for循环遍历查询结果。最后,我们关闭连接。

使用DSN连接到数据库

另一种方法是使用DSN(Data Source Name)连接到数据库,这是一种具有可读性的格式,可包含有关连接数据库的信息。

import pyodbc

# DSN的名称
DSN = 'odbc_datasource'
# 查询
SQL = "SELECT TOP 10 * FROM users"

try:
    # 连接到数据库
    conn = pyodbc.connect('DSN={0}'.format(DSN))

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

    # 执行查询
    cursor.execute(SQL)

    # 遍历结果
    for row in cursor:
        print(row)

    # 关闭连接
    conn.close()

except pyodbc.Error as ex:
    # 打印错误信息
    print(str(ex))

在这里,我们使用DSN连接到数据库。我们提供一个DSN的名称,然后使用pyodbc.connect()函数连接到数据库。我们创建一个游标,执行查询,并使用for循环遍历查询结果。最后,我们关闭连接。

结论

在这篇文章中,我们讨论了如何在Python中连接数据库。我们深入探讨了两种最受欢迎的Python数据库驱动程序:MySQL-Python和pyodbc。我们了解了如何安装和配置这些模块,并给出了连接到数据库的示例代码。此外,我们还研究了提交更改、错误处理以及使用DSN连接到数据库的方法。希望这篇文章能够帮助您成功地连接到数据库并提取所需的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程