python之程序接入mysql

在python安装pip install pymysql cryptography

插入

import pymysql

# 1. 创建连接(Connection)
conn = pymysql.connect(host='ip地址', port=3306,
                       user='用户名', password='密码',
                       database='数据库名', charset='utf8mb4')
try:
    # 2. 获取游标对象(Cursor)
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        affected_rows = cursor.execute(
            'insert into `表` values (%s, %s, %s)',
            (xx, xx, xx)
        )
    if affected_rows == 1:
        print('新增成功!!!')
    # 4. 提交事务(transaction)
    conn.commit()
except pymysql.MySQLError as err:
    # 4. 回滚事务
    conn.rollback()
    print(type(err), err)
finally:
    # 5. 关闭连接释放资源
    conn.close()

删除

import pymysql

# 1. 创建连接(Connection)
conn = pymysql.connect(host='ip地址', port=3306,
                       user='用户名', password='密码',
                       database='数据库名', charset='utf8mb4',
                       autocommit=True)
try:
    # 2. 获取游标对象(Cursor)
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        affected_rows = cursor.execute(
            'delete from `表` where `dno`=%s',
            (xx,)
        )
    if affected_rows == 1:
        print('删除成功!!!')
finally:
    # 5. 关闭连接释放资源
    conn.close()

更新

import pymysql

# 1. 创建连接(Connection)
conn = pymysql.connect(host='ip地址', port=3306,
                       user='用户名', password='密码',
                       database='数据库名', charset='utf8mb4')
try:
    # 2. 获取游标对象(Cursor)
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        affected_rows = cursor.execute(
            'update `表` set `dname`=%s, `dloc`=%s where `dno`=%s',
            (xx, xx, xx)
        )
    if affected_rows == 1:
        print('更新成功!!!')
    # 4. 提交事务
    conn.commit()
except pymysql.MySQLError as err:
    # 4. 回滚事务
    conn.rollback()
    print(type(err), err)
finally:
    # 5. 关闭连接释放资源
    conn.close()

查询

import pymysql

# 1. 创建连接(Connection)
conn = pymysql.connect(host='ip地址', port=3306,
                       user='用户名', password='密码',
                       database='数据库名', charset='utf8mb4')
try:
    # 2. 获取游标对象(Cursor)
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        cursor.execute('select `dno`, `dname`, `dloc` from `tb_dept`')
    # 4. 通过游标对象抓取数据
    row = cursor.fetchone()
    while row:
        print(row)
        row = cursor.fetchone()
except pymysql.MySQLError as err:
    print(type(err), err)
finally:
    # 5. 关闭连接释放资源
    conn.close()

### 使用Python连接和操作MySQL数据库 #### 安装必要库 为了实现PythonMySQL之间的通信,通常需要安装`mysql-connector-python`或其他类似的库。可以通过pip命令轻松完成这一过程[^1]。 ```bash pip install mysql-connector-python ``` #### 建立数据库连接 创建一个到MySQL服务器的有效连接是进行任何数据库操作的前提条件。下面是一个简单的例子来展示如何建立这种连接: ```python import mysql.connector connection = mysql.connector.connect( host='localhost', user='your_username', password='your_password', database='your_database' ) if connection.is_connected(): db_info = connection.get_server_info() print(f"Connected to MySQL Server version {db_info}") ``` 此代码片段展示了基本的连接参数以及验证连接状态的方式[^1]。 #### 执行SQL查询 一旦建立了有效的连接,就可以执行各种类型的SQL语句,比如SELECT查询或者INSERT/UPDATE操作。这里提供了一个示例用于检索数据表中的记录: ```python cursor = connection.cursor() query = "SELECT * FROM your_table" cursor.execute(query) for row in cursor.fetchall(): print(row) ``` 这段脚本说明了怎样利用游标对象执行查询并处理返回的结果集。 #### 更新或修改数据 除了读取之外,还可以通过编写适当的SQL指令来进行写入、更新或者其他形式的数据管理活动。例如要向某个特定表格添加新条目,则可按照如下方式进行编码: ```python insert_query = """ INSERT INTO employees (first_name, last_name, hire_date) VALUES (%s, %s, %s); """ values_to_insert = ("John", "Doe", "2023-09-15") try: cursor.execute(insert_query, values_to_insert) connection.commit() # Commit the transaction after insert operation. except Exception as e: print(e) finally: if 'cursor' in locals(): cursor.close() ``` 上述实例解释了安全地插入数据至指定列的过程,并包含了异常捕捉机制以保障程序稳定性[^1]。 #### 多种连接方式的选择 值得注意的是,在实际应用中有多种途径可以选择用来达成同样的目标——即让Python能够访问远程或者本地部署好的MySQL服务端口。其中包括但不限于使用官方推荐的标准驱动器(`mysql-connector`);第三方开源项目如PyMySQL; SQLAlchemy ORM层封装等等。每一种都有其独特的优势所在,具体选用哪一类取决于个人偏好和技术需求等因素考虑[^2]。 #### 关闭资源释放内存空间 最后一步也是至关重要的环节就是记得适时关闭打开过的文件描述符之类的系统级资源占用情况以免造成不必要的浪费甚至引发潜在的安全隐患问题发生: ```python if 'connection' in locals() and connection.is_connected(): cursor.close() connection.close() print("MySQL connection is closed.") ``` 以上总结了几步关键性的指导方针帮助开发者快速入门掌握用Python操控关系型数据库的技术要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值