注册

Python连接DB2数据库

连接DB2数据库可以使用Python中的DB2驱动程序。在这里我们将详细介绍连接DB2数据库的完整攻略,并提供两个示例,演示如何使用Python连接DB2数据库。

步骤1:安装DB2驱动程序

要在Python中连接DB2数据库,必须先安装DB2驱动程序。DB2驱动程序可在IBM官网上下载。您需要根据您的运行环境下载适当的驱动程序。将下载的文件解压缩到您选择的目录中。

步骤2:安装Python DB2驱动

要在Python中使用DB2驱动程序,您需要安装Python DB2驱动。最常用的Python DB2驱动程序是ibm_db。您可以在命令行中使用以下命令安装:

pip install ibm_db

步骤3:建立DB2数据库连接

在Python中使用ibm_db.connect()函数建立DB2数据库连接。该函数需要以下参数:

  • host_name:数据库服务器的主机名或IP地址。
  • port_number:数据库服务器的端口号。
  • user_id:用于连接数据库的用户名。
  • password:用于连接数据库的密码。
  • database_name:要连接的数据库的名称。

以下是连接DB2数据库的示例代码:

import ibm_db

# Set up DB2 connection parameters
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "database_name"          
dsn_hostname = "database_server_name" 
dsn_port = "50000"            
dsn_protocol = "TCPIP"        

# Create database connection
dsn = (
    "DRIVER={0};"
    "DATABASE={1};"
    "HOSTNAME={2};"
    "PORT={3};"
    "PROTOCOL={4};"
    "UID={5};"
    "PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, username, password)

try:
    conn = ibm_db.connect(dsn, "", "")
    print("Connection succeeded.")

except Exception as ex:
    print(str(ex))

步骤4:执行数据库查询

在成功建立数据库连接之后,可以使用ibm_db.exec_immediate()函数执行数据库查询。以下是一个使用ibm_db.exec_immediate()函数执行查询的示例:

import ibm_db

# Establish a database connection
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "database_name"          
dsn_hostname = "database_server_name" 
dsn_port = "50000"            
dsn_protocol = "TCPIP"        
username = "user_name"
password = "password"
dsn = (
    "DRIVER={0};"
    "DATABASE={1};"
    "HOSTNAME={2};"
    "PORT={3};"
    "PROTOCOL={4};"
    "UID={5};"
    "PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, username, password)

# Connect to the database
conn = ibm_db.connect(dsn, "", "")

# Execute the query
stmt = ibm_db.exec_immediate(conn, "SELECT * FROM your_table")

# Fetch the query results
ibm_db.fetch_both(stmt)

示例

以下是一个完整的示例,演示如何使用Python连接DB2数据库:

import ibm_db

# Set up DB2 connection parameters
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "database_name"          
dsn_hostname = "database_server_name" 
dsn_port = "50000"            
dsn_protocol = "TCPIP"        
username = "user_name"
password = "password"
dsn = (
    "DRIVER={0};"
    "DATABASE={1};"
    "HOSTNAME={2};"
    "PORT={3};"
    "PROTOCOL={4};"
    "UID={5};"
    "PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, username, password)

try:
    # Connect to the database
    conn = ibm_db.connect(dsn, "", "")
    print("Connection succeeded.")

    # Execute the query
    stmt = ibm_db.exec_immediate(conn, "SELECT * FROM your_table")

    # Fetch the query results
    while ibm_db.fetch_row(stmt):
        print("Column1: ", ibm_db.result(stmt, "COLUMN1_NAME"))
        print("Column2: ", ibm_db.result(stmt, "COLUMN2_NAME"))

except Exception as ex:
    print(str(ex))

ibm_db.close(conn)

另外一个示例是基于ibm_db_dbi模块的Python DB2数据查询示例,它提供更标准和更容易的查询方式。以下是这个示例的代码:

import ibm_db_dbi

# Set up DB2 connection parameters
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "database_name"          
dsn_hostname = "database_server_name" 
dsn_port = "50000"            
dsn_protocol = "TCPIP"        
username = "user_name"
password = "password"
dsn = (
    "DRIVER={0};"
    "DATABASE={1};"
    "HOSTNAME={2};"
    "PORT={3};"
    "PROTOCOL={4};"
    "UID={5};"
    "PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, username, password)

try:
    # Connect to the database
    conn = ibm_db_dbi.connect(dsn)
    print("Connection succeeded.")

    # Execute the query
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM your_table")

    # Fetch the query results
    for row in cursor.fetchall():
        print(row)

except Exception as ex:
    print(str(ex))

ibm_db.close(conn)

这个示例可通过使用标准化Python DB-API 2.0数据库接口来提供更容易和更可移植的查询方式。