在Pycharm 2017 上连接Mysql数据库,并进行增删改查等操作

本文详细介绍如何使用PyMySQL库实现Python与MySQL之间的交互,包括安装配置、基本操作如增删改查等,同时深入探讨了Python中字符串拼接、数据获取方法及事务处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装PyMysql
首先打开Pycharm 2017点击File–>Settings–> Project –> Project Interpreter 右边菜单栏–>双击 pip–>在搜索栏输入PyMysql,右侧查看PyMysql驱动的版本–>点击Install Package进行安装
这里写图片描述
这里写图片描述
有不放心的小伙伴可以pip freeze下检查是否装上了,也可以在cmd进行import PyMysql 看是否装上
二、当前是编写测试代码

# -*-coding:UTF-8-*-

import pymysql

try:
    #获取数据库连接
    conn = pymysql.connect(host='127.0.0.1',user='root',passwd='123',db='spring_system',port=3306,charset='utf8')
    #打印数据库连接对象
    print('数据库连接对象为:{}'.format(conn))
    # 获取游标
    cur = conn.cursor()

    # ----------删除数据-----------------------
    sql="delete from pyTest"
    try:
        cur.execute(sql)
        conn.commit()
    except:
        conn.rollback()

    # ----------修改数据-----------------------
    # #写法1:sql="update pyTest set name='李四' where id='%s'" %('123')
    # #写法2:
    # sql = "update pyTest set name='王五' where id='123'"
    # try:
    #     cur.execute(sql)
    #     conn.commit()
    # except:
    #     conn.rollback()

    # ----------插入数据-----------------------
    # sql="insert into pyTest(id,name,sex)values('123','张三','男')"
    # try:
    #     #执行sql语句
    #     cur.execute(sql)
    #     #提交到数据库执行
    #     conn.commit()
    # except:
    #     #发生错误时回滚
    #     conn.rollback()

    # ----------创建表-----------------------
    # #如果表已经存在 则使用 execute()方法删除表
    # cur.execute("drop table if EXISTS  pyTest")
    # #创建表sql语句
    # sql="""create table pyTest (
    #       id VARCHAR(20) NOT NULL  PRIMARY KEY,
    #       name VARCHAR(20),
    #       sex CHAR(2)
    #     )"""
    # cur.execute(sql)


    #   ----------进行查询操作-----------------------
    #  #打印游标
    # #print("游标为:{}".format(cur))
    # #print("游标是:"+cur)
    # print("游标是:" + str(cur))
    # #查询sql语句
    # sql='select * from project_jizhan limit 0,1'
    # cur.execute(sql)
    # conn.commit()
    # #使用 fetchall() 方法获取数据对象
    # #data = cur.fetchall()
    # #使用 fetchone() 方法获取一条数据
    # data = cur.fetchone()
    # for item in data:
    #     print(item)
    cur.close()
    conn.close()
except Exception as e:
            print(e)

问题归纳:
1、print(“游标为:{}”.format(cur)) 当我看到这样的输出语句的时候,我就在想:为啥不直接用“+”来拼接?,为啥要用format进行转义?
当我先试着用“+”拼接时
print(“游标是:”+cur),
居然pycharm编译时给我报错:must be str, not Cursor,我很无奈!
但我试着解决问题,我改成print(“游标是:”+str(cur));正确
2.Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall():接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
3.事务机制可以确保数据一致性。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。

PyCharm中实验MySQL数据库增删改查,你可以按照以下步骤操作: 1. **设置数据库连接**: 首先,在PyCharm中配置数据库连接,点击菜单栏的"File" -> "Settings" -> "Data Tools" -> "Database", 添加一个新的数据源选择MySQL,输入服务器地址、用户名、密码等信息。 2. **安装库**: 如果还没有安装`mysql-connector-python`库,可以使用pip安装:`pip install mysql-connector-python`. 3. **创建Python文件**: 创建一个新的Python文件,导入所需的库,如`pymysql`。 ```python import pymysql ``` 4. **连接数据库**: 编写函数来连接数据库,示例如下: ```python def connect_db(): connection = pymysql.connect(host='localhost', user='your_username', password='your_password', db='your_database') return connection ``` 5. **执行SQL命令**: 对于增删改查操作,你需要分别编写函数: - 插入 (Insert): `insert_data()` - 删除 (Delete): `delete_data()` - 更新 (Update): `update_data()` - 查询 (Select): `select_data(query)` 这些函数通常会包含一个with语句,用于自动管理连接: ```python def insert_data(connection): with connection.cursor() as cursor: sql = 'INSERT INTO your_table (column1, column2) VALUES (%s, %s)' cursor.execute(sql, ('value1', 'value2')) connection.commit() def delete_data(connection, id): with connection.cursor() as cursor: sql = f'DELETE FROM your_table WHERE id={id}' cursor.execute(sql) connection.commit() # 更新和查询同理,只需修改SQL语句传递适当的参数 def select_data(connection, query): with connection.cursor(pymysql.cursors.DictCursor) as cursor: cursor.execute(query) results = cursor.fetchall() return results ``` 6. **关闭连接**: 最后别忘了在完成所有操作后关闭数据库连接: ```python def close_connection(connection): connection.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值