python连接数据库后怎样查询[mysql教程]

python

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.fetchone()语句之后,fetchone()方法返回光标指向的下一条记录,同时光标指向当前记录的下一条记录。

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

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()

更多技术请关注python教程。

以上是 python连接数据库后怎样查询[mysql教程] 的全部内容, 来源链接: utcz.com/z/526996.html

回到顶部