在 Python 中连接达梦数据库(DM Database),可以使用官方提供的 dmPython 库。dmPython 是达梦数据库的 Python 客户端,类似于 MySQLpymysql 或者 PostgreSQL 的 psycopg2。以下是安装、连接、以及增删改查的基本步骤。

1. 安装 dmPython 库

使用 pip 安装 dmPython:

pip install dmpython

2. 连接达梦数据库

import dmPython

# 连接达梦数据库
def connect_db():
    try:
        # 创建连接
        conn = dmPython.connect(
            user='your_username',
            password='your_password',
            server='your_host',
            port=5236,  # 默认端口号为 5236
            schema='your_schema'  # 可选,指定默认 schema
        )
        print("连接成功")
        return conn
    except Exception as e:
        print(f"连接失败: {e}")
        return None

3. 查询数据(SELECT)

def fetch_data():
    conn = connect_db()
    if not conn:
        return

    try:
        cursor = conn.cursor()
        query = "SELECT * FROM your_table_name"
        cursor.execute(query)

        # 获取所有结果
        results = cursor.fetchall()

        # 打印结果
        for row in results:
            print(row)

        cursor.close()
    except Exception as e:
        print(f"查询失败: {e}")
    finally:
        conn.close()

4. 插入数据(INSERT)

def insert_data(name, age):
    conn = connect_db()
    if not conn:
        return

    try:
        cursor = conn.cursor()
        query = "INSERT INTO your_table_name (name, age) VALUES (?, ?)"
        cursor.execute(query, (name, age))

        # 提交事务
        conn.commit()
        print("插入成功")

        cursor.close()
    except Exception as e:
        print(f"插入失败: {e}")
        conn.rollback()
    finally:
        conn.close()

5. 更新数据(UPDATE)

def update_data(name, new_age):
    conn = connect_db()
    if not conn:
        return

    try:
        cursor = conn.cursor()
        query = "UPDATE your_table_name SET age = ? WHERE name = ?"
        cursor.execute(query, (new_age, name))

        # 提交事务
        conn.commit()
        print("更新成功")

        cursor.close()
    except Exception as e:
        print(f"更新失败: {e}")
        conn.rollback()
    finally:
        conn.close()

6. 删除数据(DELETE)

def delete_data(name):
    conn = connect_db()
    if not conn:
        return

    try:
        cursor = conn.cursor()
        query = "DELETE FROM your_table_name WHERE name = ?"
        cursor.execute(query, (name,))

        # 提交事务
        conn.commit()
        print("删除成功")

        cursor.close()
    except Exception as e:
        print(f"删除失败: {e}")
        conn.rollback()
    finally:
        conn.close()

7. 主函数调用

if __name__ == "__main__":
    # 查询数据
    fetch_data()

    # 插入数据
    insert_data("Alice", 30)

    # 更新数据
    update_data("Alice", 35)

    # 删除数据
    delete_data("Alice")

注意事项

  1. 驱动下载:请确保安装了正确版本的达梦数据库客户端(包含 dmPython 驱动)。
  2. 编码问题:达梦数据库默认字符集可能是 UTF-8,确保 Python 环境字符集设置为 UTF-8
  3. 端口配置:默认端口为 5236,但具体端口号需根据实际安装情况确认。
  4. 事务控制:达梦数据库的默认事务是自动提交关闭的,因此执行 DML 语句后需要手动 commit()

参考资料

  1. 达梦数据库官方文档
  2. dmPython 的官方 GitHub 仓库

这样,我们就可以通过 Python 连接达梦数据库并进行基本的增删改查操作了。