1. 程式人生 > >MySQL通過python獲取資料列表

MySQL通過python獲取資料列表

也許你已經嘗試了在python中通過

cur.execute(“select * from student”)

來查詢資料表中的資料,但它並沒有把表中的資料打印出來,有些失望。

來看看這條語句獲得的是什麼

aa=cur.execute(“select * from student”)

print aa

5

它獲得的只是我們的表中有多少條資料。那怎樣才能獲得表中的資料呢?進入python shell

複製程式碼

import MySQLdb
conn = MySQLdb.connect(host=’localhost’,port = 3306,user=’root’, passwd=’123456’,db =’test’,)
cur = conn.cursor()
cur.execute(“select * from student”)
5L
cur.fetchone()
(1L, ‘Alen’, ‘1 year 2 class’, ‘6’)
cur.fetchone()
(3L, ‘Huhu’, ‘2 year 1 class’, ‘7’)
cur.fetchone()
(3L, ‘Tom’, ‘1 year 1 class’, ‘6’)

cur.scroll(0,’absolute’)
複製程式碼

  fetchone()方法可以幫助我們獲得表中的資料,可是每次執行cur.fetchone() 獲得的資料都不一樣,換句話說我沒執行一次,遊標會從表中的第一條資料移動到下一條資料的位置,所以,我再次執行的時候得到的是第二條資料。

  scroll(0,’absolute’) 方法可以將遊標定位到表中的第一條資料。

還是沒解決我們想要的結果,如何獲得表中的多條資料並打印出來呢?

複製程式碼

coding=utf-8

import MySQLdb

conn= MySQLdb.connect(
host=’localhost’,
port = 3306,
user=’root’,
passwd=’123456’,
db =’test’,
)
cur = conn.cursor()

獲得表中有多少條資料

aa=cur.execute(“select * from student”)
print aa

打印表中的多少資料

info = cur.fetchmany(aa)
for ii in info:
print ii
cur.close()
conn.commit()
conn.close()
複製程式碼
  通過之前的print aa 我們知道當前的表中有5條資料,fetchmany()方法可以獲得多條資料,但需要指定資料的條數,通過一個for迴圈就可以把多條資料打印出啦!執行結果如下:

複製程式碼
5
(1L, ‘Alen’, ‘1 year 2 class’, ‘6’)
(3L, ‘Huhu’, ‘2 year 1 class’, ‘7’)
(3L, ‘Tom’, ‘1 year 1 class’, ‘6’)
(3L, ‘Jack’, ‘2 year 1 class’, ‘7’)
(3L, ‘Yaheng’, ‘2 year 2 class’, ‘7’)
[Finished in 0.1s]