Python–模块–pymysql的使用

Python–模块–pymysql的使用如何使用? 建立连接》建立游标》执行命令… # pip3 install pymysql import pymysql conn = pymysql.connect(host="127.0.0.1", port=3306,database="day35&qu

如何使用?

  • 建立连接–》建立游标–》执行命令…
  • # pip3 install pymysql
    import pymysql
    
    conn = pymysql.connect(host="127.0.0.1", port=3306,database="day35",user="root",password="123456")
    # 建立一个游标,这个游标可以类比为cmd命令行
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # cursor=pymysql.cursors.DictCursor 设为以字典的形式返回,不设置,则以元组的形式 rows = cursor.execute("select * from ttt;") # 这里输入sql语句 print(rows) res = cursor.fetchall() # 显示所有值 print(res) cursor.close() conn.close()

 

如何批量插入数据?

  • # 导入mysql驱动
    import pymysql
    
    conn = pymysql.connect(host="127.0.0.1", port=3306,database="day35",user="root",password="123456")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    # 创建表sites
    cursor.execute('drop table if exists sites')
    cursor.execute('create table sites(name varchar(20) primary key ,url varchar(200))')
    
    # 插入多行记录,注意mysql的占位符是%s
    sql = "insert into sites(name,url) values (%s,%s)"
    val = [
        ("Google","https://www.google.com"),
        ("Github","https://www.github.com"),
        ("Taobao","https://www.taobao.com"),
    ]
    
    cursor.executemany(sql,val)
    
    # 提交事务
    conn.commit()
    print(cursor.rowcount,"条记录插入成功")
      # print(cursor.lastrowid) # 查看最新的数据id
    
    
    cursor.close()
    
    # 运行查询:
    cursor = conn.cursor()
    cursor.execute('select * from sites')
    values = cursor.fetchall()
    for x in values:
        print(x)
        
    # 关闭cursor和connection 
    cursor.close()
    conn.close()

     

 如何写成一个函数来插入数据?

  • 示例
  • # 导入mysql驱动
    import pymysql
    
    
    def insert_mysql(dic: dict):
        '''
        输入:dict字典
        无输出
        '''
        db = pymysql.connect(
            host="192.168.49.160",
            port=3306,
            database="day01",
            user="liqi",
            password="liqi123456"
        )
        cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
    
        # 插入多行记录,注意mysql的占位符是%s
        sql = "insert into t1('test_type,produce_name') " \
              "values (%s,%s)"
        # 从输入的字典dic中拿数据,拿不到的话设置为null
        test_type = dic.get('test_type')
        produce_name = dic.get('produce_name')    
    
        # *=====================================================================*
    
        # 构建数据
        val = [
            test_type, produce_name,
        ]
        try:
            # 执行SQL语句,插入数据(插入多条数据用executemany)
            cursor.execute(sql, val)
            # 提交事务
            db.commit()
        except:
            # 发生错误时回滚
            db.rollback()
    
        print(cursor.rowcount, "条记录插入成功")
        # print(cursor.lastrowid) # 查看最新的数据id
        # 关闭数据库连接
        cursor.close()
    
    
    if __name__ == '__main__':
        dic = {
            'test_type': 'gemm',
            'produce_name': "Liqi1234",
        }
        insert_mysql(dic)

     

 

 插入数据后,如何查询最新那条出来?

  • 示例代码:
  • # 导入mysql驱动
    import pymysql
    
    
    def insert_mysql(dic: dict):
        '''
        输入:dict字典
        无输出
        '''
        db = pymysql.connect(
            host="192.168.49.160",
            port=3306,
            database="day01",
            user="liqi",
            password="liqi123456"
        )
        cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
    
        # 插入多行记录,注意mysql的占位符是%s
        sql = "insert into t1('test_type,produce_name') " \
              "values (%s,%s)"
        # 从输入的字典dic中拿数据,拿不到的话设置为null
        test_type = dic.get('test_type')
        produce_name = dic.get('produce_name')
    
        # *=====================================================================*
    
        # 构建数据
        val = [
            test_type, produce_name,
        ]
        try:
            # 执行SQL语句,插入数据(插入多条数据用executemany)
            cursor.execute(sql, val)
            # 提交事务
            db.commit()
        except:
            # 发生错误时回滚
            db.rollback()
    
        print(cursor.rowcount, "条记录插入成功")
    
        #  *======================查询====================*
        last_id = cursor.lastrowid - 1  # 记录上面的id 注意-1
    
        cursor = db.cursor(cursor=pymysql.cursors.DictCursor)  # 新建一个查询
        select_sql = "select * from t1"  # SQL语句
        cursor.execute(select_sql)
        cursor.scroll(last_id, mode="absolute")  # 移动游标   # 绝对模式
        
        print(cursor.fetchone())  # 查询出最新的
    
        # 关闭数据库连接
        cursor.close()
    
    
    if __name__ == '__main__':
        dic = {
            'test_type': 'gemm',
            'produce_name': "Liqi1234",
        }
        insert_mysql(dic)

     

  • Python--模块--pymysql的使用

     

     

 

 

 

 

 

 

 

 

 

参考资料:书籍《python程序员面试宝典–猿媛之家著》–第五章-数据库相关

今天的文章Python–模块–pymysql的使用分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55730.html

(0)
编程小号编程小号
上一篇 2023-08-27
下一篇 2023-08-27

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注