• pymysql模块


    pycharm如何操作MySQL(pymysql模块)

    '''
    支持python代码支持操作数据库MySQL
    '''
    
    pip3 install pymysql

    代码

    import pymysql
    
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user = 'root',
        password='123456',
        database='day48',  # 一定要指定一个库
        charset='utf8'  # 编码千万不要写-
    )  # 连接数据库
    
    cursor= conn.cursor(cursor=pymysql.cursors.DictCursor)  # 产生一个游标对象(就是用来帮你执行命令的)
    '''
    cursor=pymysql.cursors.DictCursor 将查询结果以字典形式返回
    '''
    sql = 'select * from teacher;'
    res = cursor.execute(sql)
    # print(res)  # execute返回的是你当前sql语句所影响的行数 该返回值一般不用
    # 获取命令执行的查询结果
    # print(cursor.fetchone()) # 只拿一条
    # print(cursor.fetchall()) # 拿所有
    # print(cursor.fetchmany(2))  # 可以指定拿几条
    print(cursor.fetchone())
    print(cursor.fetchone())  # 读取数据类似于文件光标的移动
    # cursor.scroll(1,'relative')  # 相对于光标所在的位置继续往后移动一位
    cursor.scroll(1,'absolute')  # 相对于数据的开头往后继续移动一位
    print(cursor.fetchall())

    sql注入

    """
    利用一些语法的特性 书写一些特点的语句实现固定的语法
    MySQL利用的是MySQL的注释语法
    
    日常生活中很多软件在注册的时候都不能含有特殊符号
    因为怕你构造出特定的语句侵入数据库,不安全
    """
    
    # 敏感的数据不要自己做拼接 ,交给execute帮你拼接即可
    # 结合数据库完成一个用户的登陆功能
    import pymysql
    
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user = 'root',
        password='123456',
        database='day48',  # 一定要指定一个库
        charset='utf8'  # 编码千万不要写
    )  # 连接数据库
    cursor= conn.cursor(cursor=pymysql.cursors.DictCursor)  # 产生一个游标对象(就是用来帮你执行命令的)
    
    username = input('username>>>: ').strip()
    password = input('password>>>: ').strip()
    sql = 'select * from user where name=%s and password=%s'
    # 不要手动拼接数据 先用%s占位,之后将需要拼接的数据直接交给execute方法即可
    print(sql)
    rows = cursor.execute(sql,(username,password))  # 自动识别sql里面的%s,用后面元组里面的数据进行替换
    if rows:
        print('登陆成功')
        print(cursor.fetchall())
    else:
        print('登陆失败')

    pymysql模块增删改查数据操作

    针对增删改 pymysql需要二次确认才能真正的操作数据

    import pymysql
    
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user = 'root',
        password='123456',
        db='day48',
        charset='utf8',
        autocommit=True  # 设置自动提交
    )
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    
    #
    sql = 'insert into user(name,password) values(%s,%s)'
    # rows = cursor.execute(sql,('zhzhang',123))
    rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据
    # print(rows)
    # conn.commit()  # 确认
    
    # 修改
    # sql = 'update user set name="egonSB" where id=1'
    # rows=cursor.execute(sql)
    # print(rows)
    # conn.commit()  # 确认
    
    # 删除
    # sql  = 'delete from user where id=11'
    # rows = cursor.execute(sql)
    # print(rows)
    # conn.commit()  # 确认
    
    
    #
    sql = 'select * from user '
    cursor.execute(sql)
    print(cursor.fetchall())
    
    
    '''
    增删改查中 
        删改增它们的操作涉及到数据的修改
        需要二次确认
    '''

    pycharm补充

    # 针对增删改 pymysql需要二次确认才能真正的操作数据
    import pymysql
    
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user = 'root',
        password='123456',
        db='day48',
        charset='utf8',
        autocommit=True  # 设置自动提交
    )
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    
    #
    sql = 'insert into user(name,password) values(%s,%s)'
    # rows = cursor.execute(sql,('zhzhang',123))
    rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据
    # print(rows)
    # conn.commit()  # 确认
    
    # 修改
    # sql = 'update user set name="egonSB" where id=1'
    # rows=cursor.execute(sql)
    # print(rows)
    # conn.commit()  # 确认
    
    # 删除
    # sql  = 'delete from user where id=11'
    # rows = cursor.execute(sql)
    # print(rows)
    # conn.commit()  # 确认
    
    
    #
    sql = 'select * from user '
    cursor.execute(sql)
    print(cursor.fetchall())
    
    
    ''' 
    增删改查中 
        删改增它们的操作涉及到数据的修改
        需要二次确认
    '''
    
    
    # 还可以一次性插入N多条数据
    rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据
  • 相关阅读:
    图片延迟加载
    JS 数组操作
    XML转成dataset
    Android的layout_weight使用方法
    Android五大布局学习笔记【转 有改动】
    JSONP
    Android中dip、dp、sp、pt和px的区别和使用
    捕鱼和分鱼
    Android中可能导致ActivityNotFoundException的一些问题总结
    一张图片引发的思考——Android图片加载
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14871649.html
Copyright © 2020-2023  润新知