开发者

Python中使用PyMySQL模块的方法详解

开发者 https://www.devze.com 2024-08-13 11:37 出处:网络 作者: Az_plus
目录安装连接数据库connect拓展获取游标操作数据查找添加更新总结 安装 pip install pymysql
目录
  • 安装
  • 连接数据库
    • connect拓展
  • 获取游标
    • 操作数据
      • 查找
      • 添加
      • 更新
    • 总结 

      安装

      pip install pymysql
      

      连接数据库

      使用connect函数创建连接对象

      此对象提供数据库的关闭、事务提交、事务回滚等操作

      示例:

      import pymysql
      
      # 以下为必填参数
      conn = pymysql.connect(user='root',			# 用户名
                            password='123456',	# 密码
                            host='127.0.0.1',		# 服务器地址
                            port=3306,			# 数据库端口
                            database='emp'		# 要连接的数据库
                            )		
      

      connect拓展

      进入connect函数可以看到更多参数:

      def __init__(
              self,
              *,
              user=None,  	# 用户名
              password="",	# 密码
              host=None,		# 连接地址
              database=None,	# 库名
              Unix_socket=None,	# 如果使用Unix套接字连接到数据库,指定套接字文件的路径
              port=0,			# 数据库端口号
              charset="",		# 使用的字符集 MySQL中一般是utf8mb4
              collation=None,	# 指定排序规则
              sql_mode=None,	# 连接使用的SQL模式
              read_default_file=None,	# 指定默认连接参数的配置文件路径
              conv=None,		# 自定义类型转换器
              use_unicode=True,	# 是否使用Unicode编码
              client_flag=0,	# 客户端标志位
              cursorclass=Cursor,	# 游标类,用于处理查询结果
              init_command=None,	# 建立连接后执行的初始命令
              connect_timeout=10,	# 连接超时时间
              read_default_group=None,	# 读取默认连接参数的组名
              autocommit=False,	# 是否自动提交事务
              local_infile=False,	# 是否允许本地加载数据文件
              max_allowed_packet=16 * 1024 * 1024,	# 允许的最大数据包大小
              defer_connect=False,# 是否延迟连接
              auth_plugin_map=None,	# 指定认证插件映射
              read_timeout=None,	# 读取超时时间(秒)
              write_timeout=None,	# 写入超时时间(秒)
              bind_address=None,	# 绑定本地地址
              binary_prefix=False,# 是否启用二进制前缀
              program_name=None,	#程序名称
              server_public_key=None,	# 服务器公钥
              ssl=None,		# 是否使用SSL/TLS加密连接
              ssl_ca=None,	# 指定CA证书文件的路径
              ssl_cert=None,	# 指定客户端证书文件的路径
              ssl_disabled=None,	#是否禁用SSL
              ssl_key=None,	# 指定客户端私钥文件的路径
              ssl_verify_cert=None,	# 是否验证服务器证书
              ssl_verify_identity=None,	# 是否验证服务器身份
              compress=None,  # 不支持
              named_pipe=None,  # 不支持
              passwd=None,	# 已弃用
      		db=None,		# 已弃用
          )
      

      获取游标

      conn = pymysql.pythonconnjsect(user='root',  # 用户名
                             password='7997',  # 密码
                             host='127.0.0.1',  # 服务器地址
                             port=3306,  # 数据库端口
                             database='emp',  # 连接的数据库
                             cursorclass=DictCursor  # 返回字典
                             )
      cursor = conn.cursor() # 获取游标
      

      操作数据

      查找

      import pymysql
      from pymysql.cursors import DictCursor
      
      conn = pymysql.connect(user='root',  # 用户名
                             password='7997',  # 密码
                             host='127.0.0.1',  # 服务器地址
                             port=3306,  # 数据库端口
                             database='emp',  # 连接的数据库
                      js       cursorclass=DictCursor  # 返回字典
                             )
      cursor = conn.cursor()
      
      sql = 'select * from emp5'
      cursor.execute(sql)
      res = cursor.fetchall()
      print(res) # 返回一个由列表包裹的字典
      
      # 输出:[{'id': 1, 'name': '张三', 'time': datetime.datetime(2024, 1, 25, 15, 24, 19), 'age': 18, 'wages': 2000, 'dep_id': 203}, {'id': 2, 'name': '倪哥', 'time': datetime.datetime(2024, 1, 25, 15, 34, 11), 'age': 20, 'wages': 1000, 'dep_id': 201}]

      添加

      进行增删改时注意提交事务conn.commit

      import pymysql
      from pymysql.cursors import DictCursor
      
      conn = pymysql.connect(user='root',  # 用户名
                             password='7997',  # 密码
                             host='127.0.0.1',  # 服务器地址
                             port=3306,  # 数据库端口
                             database='emp',  # 连接的数据库
                             cursorclass=DictCursor  # 返回字典
                             )
      cursor = conn.cursor()
      
      sql_insert = 'insert into emp5 (name) value(%s) '
      # 元组形式传参
      cursor.execute(sql_insert, ("嗨嗨嗨",))
      conn.commit()	# 提交事务
      
      sql_insert = 'insert into emp5 (name) value(%s) '
      # 字典形式传参
      cursor.execute(sql_insert, {'emp_name': "员工二号"})
      conn.commit()
      

      Python中使用PyMySQL模块的方法详解

      添加成功~

      更新

      import pymysql
      from pymysql.cursors import DictCursor
      
      # 以下为必填参数
      conn = pymysql.connect(user='root',  # 用户名
                             password='7997',  # 密码
                             host='127.0.0.1',  # 服务器地址
                             port=3306,  # 数据库端口
                             database='emp',  # 连接的数据库
                             cursorclass=DictCursor  # 返回字典
       python                      )
      cursor = conn.cursor()
      
      # 列表形式传参
      sql_update = 'update emp5 set name=%s where id=%s '
      cursor.execute(sql_jsupdate, ['员工三号', 11])
      conn.commit()
      

      Python中使用PyMySQL模块的方法详解

      总结 

      到此这篇关于python中使用PyMySQL模块的文章就介绍到这了,更多相关Python使用PyMySQL模块内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号