zoukankan      html  css  js  c++  java
  • day 59 pymysql

      

    PyMySQL介绍

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

     PYmysql安装

    pip install pymysql
    

      

    创建连接

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    # 定义要执行的SQL语句
    sql = """
    CREATE TABLE USER1 (
    id INT auto_increment PRIMARY KEY ,
    name CHAR(10) NOT NULL UNIQUE,
    age TINYINT NOT NULL
    )ENGINE=innodb DEFAULT CHARSET=utf8;
    """
    # 执行SQL语句
    cursor.execute(sql)
    # 关闭光标对象
    cursor.close()
    # 关闭数据库连接
    conn.close()
    复制代码
    

      

    返回字典格式数据:

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句并且将结果作为字典返回的游标
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 定义要执行的SQL语句
    sql = """
    CREATE TABLE USER1 (
    id INT auto_increment PRIMARY KEY ,
    name CHAR(10) NOT NULL UNIQUE,
    age TINYINT NOT NULL
    )ENGINE=innodb DEFAULT CHARSET=utf8;
    """
    # 执行SQL语句
    cursor.execute(sql)
    # 关闭光标对象
    cursor.close()
    # 关闭数据库连接
    conn.close()
    复制代码
    

     

    简单验证功能

    import pymysql
    name =input('请输入账号');
    pwd =input('请输入密码')
    conn =pymysql.connect(host ='127.0.0.1',port=3306, user = 'root',password ='123456',database ='day59')
    cursor =conn.cursor() #获取一个光标,等等输入sql语句
    sql ='select * from userinfo where name =%s and pwd =%s ;'
    #帮我拼接字符串的sql语句,并且去数据库执行.
    ret =cursor.execute(sql,[name,pwd])
    #关闭
    cursor.close()
    conn.close()
    if ret:
        print('login successfully')
    else:
        print('login failed!')
    

      

    注意 :  

    charset =‘utf8’ ,不要写成utf-8

     增删改查操作

     一、增加数据

    1.1、通过python 为mysql添加多条数据 

    import pymysql
    conn = pymysql.connect(
        host ='127.0.0.1',
        port =3306, #不是字符串不需要加引号。
        user ='root',
        password ='123456',
        database ='day59',
        charset ='utf8'
    )
    #获取一个光标
    cursor =conn.cursor()
    
    #定义要执行的sql语句
    sql ='insert into userinfo(name,pwd) values(%s,%s);'
    data =[
        ('高材生','woyouqian'),
        ('changjiang','huanghe'),
        ('zhanshen','jichuchapiqida')
    ]
    #拼接并执行sql语句
    cursor.executemany(sql,data)
    #涉及写操作要注意提交
    conn.commit()
    #关闭连接
    cursor.close()
    conn.close()
    

     output result:

    1.2、插入单条数据

    import pymysql
    conn =pymysql.connect(
        host ='127.0.0.1',
        port = 3306,
        user = 'root',
        password ='123456',
        database ='day59',
        charset ='utf8'
    )
    cursor =conn.cursor()  获取一个光标
    sql =' insert into userinfo (name,pwd) values (%s,%s);' 
    
    name = 'wangzhen'
    pwd = '123456'
    cursor.execute(sql, [name,pwd])
    conn.commit()
    cursor.close()
    conn.close()

    1.3 、获取最新插入数据 (最后一条)

    import pymysql
    
    # 建立连接
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3306,  # 不是字符串类型(不要加引号)
        user="root",
        password="123456",
        database="day59",
        charset="utf8"  # 没有-!!!!
    )
    # 获取一个光标
    cursor = conn.cursor()
    # 定义将要执行的SQL语句
    sql = "insert into userinfo (name, pwd) values (%s, %s);"
    name = "wangzhen3号"
    pwd = "123456"
    # 拼接并执行SQL语句
    cursor.execute(sql, [name, pwd])
    # 涉及写操作注意要提交
    conn.commit()
    # 关闭连接
    
    # 获取最新的那一条数据的ID
    last_id = cursor.lastrowid
    print("最后一条数据的ID是:", last_id)
    
    cursor.close()
    conn.close()

     输出结果

     

    二、删除操作

    import pymysql
    
    # 建立连接
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3306,  # 不是字符串类型(不要加引号)
        user="root",
        password="123456",
        database="day59",
        charset="utf8"  # 没有-!!!!
    )
    # 获取一个光标
    cursor = conn.cursor()
    # 定义将要执行的SQL语句
    sql = "delete from userinfo where name=%s;"
    name = "高材生"
    # 拼接并执行SQL语句
    cursor.execute(sql, [name])
    # 涉及写操作注意要提交
    conn.commit()
    # 关闭连接
    
    cursor.close()
    conn.close()

    三 、更改数据

    """
    pymysql插入新数据
    """
    
    import pymysql
    
    # 建立连接
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3306,  # 不是字符串类型(不要加引号)
        user="root",
        password="123456",
        database="day59",
        charset="utf8"  # 没有-!!!!
    )
    # 获取一个光标
    cursor = conn.cursor()
    # 定义将要执行的SQL语句
    sql = "update userinfo set pwd=%s where name=%s;"
    # 拼接并执行SQL语句
    cursor.execute(sql, ["woshixinmima", "alex"])
    # 涉及写操作注意要提交
    conn.commit()
    # 关闭连接
    
    cursor.close()
    conn.close()
    

      

    四、fetch数据(查询数据)

    import pymysql
    conn = pymysql.connect(
        host ='127.0.0.1',
        port =3306, #不是字符串不需要加引号。
        user ='root',
        password ='123456',
        database ='day59',
        charset ='utf8'
    )
    #获取一个光标
    # cursor = conn.cursor()# 默认返回元组数据类型
    cursor = conn.cursor(cursor =pymysql.cursors.DictCursor)#返回字典数据类型
    
    #定义将要执行的sql语句
    sql = 'select name,pwd from userinfo;'
    #拼接并执行sql语句
    cursor.execute(sql)
    
    #取到查询结果
    ret1 =cursor.fetchone() #取一条
    ret2 =cursor.fetchmany(3)# 取三条
    ret3 =cursor.fetchone() #取一条
    
    cursor.close()
    conn.close()
    
    print(ret1)
    print(ret2)
    print(ret3)
    
    # 可以获取指定数量的数据
    cursor.fetchmany(3)
    # 光标按绝对位置移动1
    cursor.scroll(1, mode="absolute")
    # 光标按照相对位置(当前位置)移动1
    cursor.scroll(1, mode="relative")
     
    

      

      

    输出结果:

     

     

     

     五、数据回滚

    """
    pymysql插入新数据
    """
    
    import pymysql
    
    # 建立连接
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3306,  # 不是字符串类型(不要加引号)
        user="root",
        password="123456",
        database="day59",
        charset="utf8"  # 没有-!!!!
    )
    # 获取一个光标
    cursor = conn.cursor()
    # 定义将要执行的SQL语句
    sql1 = "insert into userinfo (name, pwd) values (%s, %s);"
    sql2 = "insert into book (name) values (%s);"
    name = "wangzhen2号"
    pwd = "123456"
    
    book_title = "Python从入门到放弃"
    try:
        # 拼接并执行SQL语句
        cursor.execute(sql1, [name, pwd])
        cursor.execute(sql2)  # 报错的SQL语句
    
        # 涉及写操作注意要提交
        conn.commit()
    except Exception as e:
        print(str(e))
        # 有异常就回滚
        conn.rollback()
    
    # 关闭连接
    cursor.close()
    conn.close()
     
  • 相关阅读:
    java中的包有那些 ???
    CIO必看:跨国集团采购部报表系统的建设经验分享
    价值5000元的web报表分享
    巧用FineReport搭建成本管控监测系统
    实战篇:如何建设企业的营销管理和分析平台
    大数据分析在石化企业的应用探讨
    不动产登记证书曝光 一个“改变”必须注意(图)
    VS2005工程的Device右边内容为空问题
    WIN7电脑文件莫名其妙被删除后的恢复
    关机充电如何实现短按pwrkey灭屏
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8951350.html
Copyright © 2011-2022 走看看