zoukankan      html  css  js  c++  java
  • Python如何查询Mysql

    Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

    • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
    • fetchall():   接收全部的返回结果行.
    • rowcount:  这是一个只读属性,并返回执行execute()方法后影响的行数。

    1:使用fetchone()方法获取结果集

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "123456", "test")
    
    # 使用cursor()方法获取操作游标
    cursor = db.cursor()
    
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE 
           WHERE INCOME > '%d'" % (1000)
    try:
        # 执行SQL语句
        cursor.execute(sql)
        print(cursor.rownumber)
        result = cursor.fetchone()
        while result!=None:
            print(result, cursor.rownumber)
            result = cursor.fetchone()
    
        result = cursor.fetchone()
        print(result, cursor.rownumber)
        result = cursor.fetchone()
        print(result, cursor.rownumber)
    
    except:
       print ("Error: unable to fetch data")
    
    # 关闭数据库连接
    db.close()

    输出结果:

    0
    ('Mac', 'Mohan', 20, 'M', 2000.0) 1
    ('Marry', 'Mohan', 32, 'M', 3000.0) 2
    ('Bob', 'Mohan', 21, 'F', 4000.0) 3
    None 3
    None 3

    结论:执行cursor.execute(sql)语句后,cursor指向第一条记录之前的位置。

              执行cursor.fetchone()语句之后,fetchone()方法返回cursor指向的下一条记录,同时cursor指向当前记录的下一条记录。

        当cursor已经指向最后一条记录时,再次执行cursor.fetchone()语句后,结果返回None,cursor不再向前移动。

    2:fetchall():   接收全部的返回结果行

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("localhost", "root", "123456", "test")
    
    # 使用cursor()方法获取操作游标
    cursor = db.cursor()
    
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE 
           WHERE INCOME > '%d'" % (1000)
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
        for row in results:
            fname = row[0]
            lname = row[1]
            age = row[2]
            sex = row[3]
            income = row[4]
            # 打印结果
            print("fname=%s,lname=%s,age=%d,sex=%s,income=%d" %
                  (fname, lname, age, sex, income))
    except:
       print ("Error: unable to fetch data")
    
    # 关闭数据库连接
    db.close()
  • 相关阅读:
    runloop源代码
    runloop的source
    How an Event Enters a Cocoa Application
    RunLoop主要处理以下6类事件
    NSRunloop总结
    performSelector与objc_msgSend
    iOSUI显示思想
    NSPort与NSRunloop的关系是流与消息调度的关系
    Core Animation 负责将bitmap绑定提交到 GPU-[CALayer _display]
    iOS构建流畅的交互界面--CPU,GPU资源消耗的原因和解决方案
  • 原文地址:https://www.cnblogs.com/fuqia/p/8991568.html
Copyright © 2011-2022 走看看