PyMQL简单使用【入门CRUD】

pymysql是python3中的mysqldb(python2)

在使用这个库之前,首先你得确保自己会使用基本的SQL语句,对MySQL数据库具有一定的了解(基本即可)。

一、安装

通过pip进行安装:

pip install pymysql
二、通过数据库可视化程序/终端建数据库和表

​ pymysql在使用之前,需要通过数据库可视化程序/终端建立数据库

三、使用pymysql操作数据库
  1. 连接数据库:

    我们通过一下必填参数连接数据库:

    # 连接Mysql
    conn = pymysql.connect(
       host='127.0.0.1',
       user='自定义用户名(root)',
       password="自定义密码",
       database='数据库名称',
       port=3306,
       charset='utf8'
    )
    

    其中的host,user,password,port,database均为定位到数据库所需要的参数,而charset用于指定该数据库的编码格式,需要与建立数据库的时候(create database 数据库名称 charset=’xxxx’)保持一致(一般为utf8)

  2. 获取游标对象:

    连接成功后我们可以通过conn拿到其中的cursor对象,该对象即为执行SQL语句以及拿到相关结果的操作对象,也就是直译的游标对象。

    # 创建游标对象
    cursor = conn.cursor()
    
  3. 编写SQL语句并执行:

    使用pymql需要自己手动进行SQL语句的编写,而SQL语句的基本增删改查语句中,只有查询语句不会被数据库造成影响,其他语句则均会对数据库产生作用效果。

    pymysql为了避免由于出现异常或者错误情况而导致数据库出现状况,所有对数据库造成实际影响的语句,均需要通过
    “`con.commit()“`方法来提交所有的变更。

    另外pymysql在执行SQL语句的方法
    “`cursor.execute()“`方法中,可以多输入一个参数,这个参数可以是数组(list)/元组(tuple)/字典(dict),pymysql会在内部对该参数进行处理,并自动将其处理为对应完整SQL语句。

    接下来的语句中也将分别使用数组/元组/dict三种形式来演示相关的写法,同时这三者是通用的。

    注意一下语句,插入表为info,该表具有id,name,age,gender四个属性,可自信修改为自己所需要的属性。

  • 查询语句

    # 编写SQL语句
    sql = 'select * from info' # 表名请自行修改为自定义参数
    # 纯字符串模式,单参数
    cursor.execute(sql)
    
  • 插入语句
    # 编写增加的sql语句
    sql = "insert into info(name,age,gender) values (%s,%s,%s)"
    # 使用数组进行赋值插入,即第二个参数使用数组形式
    add_data = ['云无月', 4500, '女']
    cursor.execute(sql, add_data)
    
  • 修改语句
    # 编写修改的sql语句
    sql = "update info set name=%s where name=%s"
    # 第二个参数使用元组形式,实际上可以与上文数组写法完全一致(也可以直接自行拼接字符串)
    add_data = ('王牛蛙', '王辟邪')
    # 注意len返回的是修改的数目 也就是数据库修改时的数字返回值
    len = cursor.execute(sql, add_data)
    
  • 删除语句
    # 注意,如果要使用dict(JSON)作为sql语句补位,那么补位的位置写法为%(key命)s
    # 如下补位为id:
    sql = "delete from info where id =%(id)s"
    add_data = {
       "name": "岑缨",
       "id" : 28
    }
    # 执行dict形式的补位
    cursor.execute(sql, add_data)
    
  1. 释放资源:
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()
    
  2. 异常处理与回滚:

    pymysql在连接的时候,就会对当前数据库进行一次快照(保留未操作初始状态),如果出现错误情况,可以通过
    “`conn.rollback()“`方法进行回滚。

    由于数据库操作涉及到网络和其他设备的操作,所以必须需要做好异常处理。

    通常我们会进行如下格式的异常处理:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # 导包
    import pymysql
    
    # 连接Mysql
    conn = pymysql.connect(
       host='127.0.0.1',
       user='自定义用户名(root)',
       password="自定义密码",
       database='数据库名称',
       port=3306,
       charset='utf8'
    )
    try:
       # 创建游标对象
       cursor = conn.cursor()
       # 编写增加/删除/修改的sql语句
    # 编写SQL语句,进行相关操作...
       # ...如:
       sql = "delete from info where id =%(id)s"
       add_data = {
           "name": "岑缨",
           "id" : 28
       }
       # 执行编写的SQL语句
       cursor.execute(sql, add_data)
       # 提交修改
       conn.commit()
       # 关闭,释放资源
       cursor.close()
       print("任务完成")
    
    except Exception as e:
       # 回滚
       conn.rollback()
       print(e)
    
    finally:
       conn.close()
    
    
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇