PyMysql

打印 上一主题 下一主题

主题 1854|帖子 1854|积分 5562

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
什么是PyMysql

   PyMysql是一个纯 Python 实现的 MySQL 客户端库,允许你在 Python 步伐中与 MySQL 数据库进行交互。
  安装PyMysql

PyMysql地址:https://pypi.org/project/PyMySQL/
  1. pip install pymysql
复制代码


利用PyMysql

毗连mysql

  1. import pymysql
  2. # 数据库连接参数
  3. host = '192.168.189.71'     # 数据库主机地址
  4. port = 3306                 # 数据库端口
  5. user = 'root'               # 数据库用户名
  6. password = '123456'         # 数据库密码
  7. database = 'test'           # 数据库名称
  8. charset = 'utf8mb4'         # 编码格式
  9. # 连接到数据库
  10. connection = pymysql.connect(
  11.     host=host,
  12.     port=port,
  13.     user=user,
  14.     password=password,
  15.     database=database,
  16.     charset=charset,
  17.     # cursorclass=pymysql.cursors.DictCursor # 使用字典类型游标
  18. )
  19. print("连接成功")
复制代码
查询数据

  1. # 创建游标对象
  2. cursor = connection.cursor()
  3. # 执行SQL查询
  4. sql = "select * from table_test;"
  5. cursor.execute(sql)
  6. # 获取查询结果
  7. results = cursor.fetchall()
  8. for row in results:
  9.     print(row)
  10. # 关闭游标
  11. cursor.close()
复制代码
查询打印到的数据


  • 元组类型数据



  • 字典类型数据

添加数据

  1. try:
  2.     # 创建游标对象
  3.     cursor = connection.cursor()
  4.    
  5.     # 编写sql语句
  6.     sql = "insert into table_test (id, name, age) VALUES (%s, %s, '22')"
  7.     values = (3, 'Spike')  # sql参数
  8.     # 执行SQL插入
  9.     cursor.execute(sql, values)
  10.     # 提交事务
  11.     connection.commit()
  12.     print("数据插入成功")
  13. except Exception as e:
  14.     # 出现异常,回滚事务
  15.     connection.rollback()
  16. finally:
  17.     # 关闭游标
  18.     cursor.close()
  19.     # 关闭连接
  20.     connection.close()
复制代码
更新数据

  1. try:
  2.     # 创建游标对象
  3.     cursor = connection.cursor()
  4.    
  5.     # 编写sql语句
  6.     sql = "UPDATE table_test SET age = %s WHERE id = %s"
  7.     values = (30, 3)
  8.     # 执行SQL
  9.     cursor.execute(sql, values)
  10.     # 提交事务
  11.     connection.commit()
  12.     print("数据更新成功")
  13. except Exception as e:
  14.     # 出现异常,回滚事务
  15.     connection.rollback()
  16. finally:
  17.     # 关闭游标
  18.     cursor.close()
  19.     # 关闭连接
  20.     connection.close()
复制代码
删除数据

  1. try:
  2.     # 创建游标对象
  3.     cursor = connection.cursor()
  4.     # 编写sql语句
  5.     sql = "DELETE FROM table_test WHERE id = %s"
  6.     value = (3,)
  7.     # 执行SQL
  8.     cursor.execute(sql, value)
  9.     # 提交事务
  10.     connection.commit()
  11.     print("数据删除成功")
  12. except Exception as e:
  13.     # 出现异常,回滚事务
  14.     connection.rollback()
  15. finally:
  16.     # 关闭游标
  17.     cursor.close()
  18.     # 关闭连接
  19.     connection.close()
复制代码
利用上下文管理器

自动关闭数据库毗连、自动关闭游标
  1. import pymysql
  2. # 数据库连接参数
  3. host = '192.168.xxx.xxx'    # 数据库主机地址
  4. port = 3306                 # 数据库端口
  5. user = 'root'               # 数据库用户名
  6. password = '******'         # 数据库密码
  7. database = 'test'           # 数据库名称
  8. charset = 'utf8mb4'         # 编码格式
  9. # 使用上下文管理器连接到数据库
  10. with pymysql.connect(
  11.         host=host,
  12.         port=port,
  13.         user=user,
  14.         password=password,
  15.         database=database,
  16.         charset=charset
  17. ) as connection:
  18.     with connection.cursor() as cursor:
  19.         # 编写sql语句
  20.         sql = "insert into table_test (id, name, age) VALUES (%s, %s, '22')"
  21.         values = (3, 'Spike')  # sql参数
  22.         try:
  23.             # 执行SQL
  24.             cursor.execute(sql, values)
  25.             # 提交事务
  26.             connection.commit()
  27.             print("执行成功")
  28.         except Exception as e:
  29.             print("程序异常")
  30.             connection.rollback()
复制代码

游标常用方法

实行一条sql语句

语法:
   cursor.execute(query, args=None)
  

  • query是要实行的SQL语句
  • args是SQL语句中的参数
  示例:
  1. cursor.execute("insert into table_test (id, name, age) VALUES (%s, %s, '22')", (3, 'Spike'))
复制代码
实行多条sql语句

语法:
   cursor.executemany(query, args)
  

  • query是要实行的SQL语句
  • args是一个包罗多组参数的列表。
  示例:
  1. sql = "INSERT INTO table_test (id, name, age) VALUES (%s, %s, %s)"
  2. values = [(1, 'Tom', 20), (2, 'Jerry', 18), (3, 'Spike', 25)]
  3. cursor.executemany(sql, values)
复制代码
查询一条数据

语法:
   cursor.fetchone()
  示例:
  1. result = cursor.fetchone()
  2. print(result)
复制代码
查询多条数据

语法:
   cursor.fetchall()
  示例:
  1. results = cursor.fetchall()
  2. for row in results:
  3.     print(row)
复制代码
查询返回效果中指定的行数

语法:
   cursor.fetchmany(size)
  示例:
  1. # 获取查询结果中的前两行
  2. results = cursor.fetchmany(2)
  3. for row in results:
  4.     print(row)
复制代码
受影响的行数

语法:
   cursor.rowcount
  

  • 比方实行 INSERT、UPDATE 或 DELETE 操作后影响的行数。
  示例:
  1. cursor.execute(sql, value)
  2. # 受影响行数
  3. print(cursor.rowcount)
复制代码
获取末了插入行的ID

语法:
   cursor.lastrowid
  

  • 获取末了插入行的ID(通常用于 AUTO_INCREMENT 字段)
  示例:
  1. cursor.execute(sql, value)
  2. print(cursor.lastrowid)  # 输出最后插入行的ID
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表