zoukankan      html  css  js  c++  java
  • python-49-pymysql使用

    前言

    我们在Python中操作数据库,相信很多小伙伴都是使用pymysql模块进行操作,小龙今天也简单记录一下学习操作增删改查。

    一、增:insert

    增删改中都需要提交事务:commit()

    insert into 表名(字段1,字段2,,字段x)values(字段1值,字段2值,字段x值);

    1、sql插入单条数据:execute()

    # 1、sql插入数据
    use = 'gsxl'
    pwd = '123456'
    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "insert into userinfo(user,password)values(%s,%s);"
    r = cursor.execute(sql,(use,pwd))
    conn.commit()               # commit:增、删、改都需要提交事务
    cursor.close()
    conn.close()
    print('受影响的行数:%s'%r)

    2、插入多行数据:executemany

    # 2、插入多行数据:executemany
    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "insert into userinfo(user,password)values(%s,%s);"
    r = cursor.executemany(sql,[('asd','123'),('das','456')])
    print('受影响的行数:%s'%r)     # 那返回值
    conn.commit()                   # commit:增、删、改都需要提交事务
    cursor.close()
    conn.close()

    3、拿自增ID:lastrowid

    use = 'gsxl'
    pwd = '123456'
    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "insert into userinfo(user,password)values(%s,%s);"
    cursor.execute(sql,(use,pwd))
    r = cursor.lastrowid
    print('自增ID:%s'%r)
    conn.commit()
    cursor.close()
    conn.close()
    终端打印结果:自增ID:31

    二、删:delete

    1、删除:delete,delete from 表名 where 字段='字段值';

    将 user=gsxl 的行删除。

    # 1、删除:delete
    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "delete from userinfo where user='gsxl';"
    r = cursor.execute(sql)
    print('受影响的行数:%s'%r)       # 拿返回值
    conn.commit()                   # commit:增、删、改都需要提交事务
    cursor.close()
    conn.close()

     

     三、改:update

     update 表名 set 要修改的字段=改为什么? where 约束字段条件='值';

    # 3、修改:update
    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "update userinfo set `password`='666' where `user`='gsxl';"
    r = cursor.execute(sql)
    print('受影响的行数:%s'%r)     # 拿返回值
    conn.commit()                   # commit:增、删、改都需要提交事务
    cursor.close()
    conn.close()

    四、查:select

    cursor 中 加这个参数能返回有字段名,列表嵌套字典:cursor=pymysql.cursors.DictCursor

    fetchone:只拿返回的一条数据,可连续拿数据。

    fetchall:拿全部的数据,常与 limit 进行分页使用。 

    1、查询 user='gsxl' 的数据:

    import pymysql
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    sql = "select * from userinfo where user=%s;"
    cursor.execute(sql,('gsxl'))
    # result = cursor.fetchone()          # 返回一条结果
    result = cursor.fetchall()            # 返回全部结果
    print(result)
    cursor.close()
    conn.close()
    终端打印结果:
    [{'id': 27, 'user': 'gsxl', 'password': '666'}, {'id': 28, 'user': 'gsxl', 'password': '666'}, {'id': 29, 'user': 'gsxl', 'password': '666'}]

    2、登录小例子:

    # 2、sql查询账号密码,登录例子
    import pymysql
    user=input('username:')
    pwd=input('password:')
    
    conn =pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='123456',
            db='dba')
    cursor = conn.cursor()
    sql = "select * from userinfo where user=%s and password=%s;"
    cursor.execute(sql,(user,pwd))       # (user,pwd):传%s里面的变量,防止sql注入
    result = cursor.fetchone()           # 返回一条结果
    # result = cursor.fetchall()         # 返回全部结果
    cursor.close()
    conn.close()
    if result:
        print('登录成功')
    else:
        print('登录失败')

    简单学习下pymysql的使用,总结:

    • 有连接就有关闭,游标操作;
    • 增删改必须要提交事务:commit();
    • 查询则是拿查询返回结果;

    欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    【python】一个文件内容写入另一个
    【Linux】批量修改权限
    【Git】git add git commit
    赌博游戏
    输出斐波那契数列前20项,每输出5个数换行
    Java线程的几种可用状态
    Java创建线程的方式
    Java虚拟机
    判断对象oStringObject是否为String
    throw跟throws关键字
  • 原文地址:https://www.cnblogs.com/gsxl/p/12630773.html
Copyright © 2011-2022 走看看