1. 程式人生 > >pymysql連線資料庫,讀取表內容

pymysql連線資料庫,讀取表內容

python中有MySQLdb、pymysql等資料庫模組,本文用pymysql模組連線mysql資料庫,並且讀取資料庫表

看過其他博文的介紹,把程式和資料庫比作兩個目的地,將遊標比喻成運輸貨車

很是形象生動!

我用的是Anaconda的編輯器spyder,首先要先下載pymysql模組到本地才能匯入

匯入pymysql模組

import pymysql as pysql

建立連線和準備sql   

連線mysql資料庫,將資料庫名db,主機 host ,埠port,使用者user,密碼password,字符集編碼charset,   指定遊標型別:cursorclass    模組自帶的遊標型別為 pymysql.cursors.DictCursor,其他模組的遊標像MySQLdb.cursors.Cursor,就看你用什麼模組了。

connection = pysql.connect(host='', port=, user='',password='',db='',charset='utf8mb4', cursorclass = pysql.cursors.DictCursor)

引數參考:https://blog.csdn.net/qq_41432935/article/details/83001381 

host – 資料庫伺服器所在的主機。
user – 登入使用者名稱。
password – 登入使用者密碼。
database – 連線的資料庫。
port – 資料庫開放的埠。(預設: 3306)
bind_address – 當客戶端有多個網路介面時,請指定連線到主機的介面,引數可以是主機名或IP地址。
unix_socket – 使用unix套接字而不是tcp
/ip。 charset – 連線字符集。 sql_mode – 預設SQL模式。 read_default_file – 指定my.cnf檔案路徑,以便從[client]部分讀取引數。 conv – 要使用的轉換字典,而不是預設值。 use_unicode – 是否預設為unicode字串,對於Py3k,此選項預設為true。 client_flag – 傳送到MySQL的自定義標誌。 cursorclass – 使用自定義的遊標類。 init_command – 建立連線時要執行的初始SQL語句。 connect_timeout – 建立連線超時時間。(預設: 10,最小: 1,最大: 31536000) read_default_group – 從配置檔案中讀取組。 compress – 不支援 named_pipe – 不支援 autocommit – 設定自動提交模式,不設定意味著使用資料庫預設。(預設值: False) local_infile – 是否啟用“LOAD LOCAL INFILE”命令的使用。(預設值: False) max_allowed_packet – 傳送到伺服器的資料包的最大大小 (以位元組為單位,預設值: 16MB),僅用於限制小於預設值 (16KB) 的 “LOAD LOCAL INFILE” 資料包的大小。 defer_connect – 不要顯式連線建設,等待連線呼叫。(預設值: False) db – 連線資料庫別名(相容MySQLdb) passwd – 密碼輸入別名(相容MySQLdb) binary_prefix – 在bytes和bytearray上新增_binary字首(預設: False)

可以根據上述的引數來設定mysql連線,接下來準備sql語句

select  * from table

資料庫連線成功,且sql也準備好之後,開始執行在資料庫中執行sql語句 以達到我們的查詢目的

pymysql是利用遊標來執行sql語句的,遊標就相當於是一輛貨車,把程式中的sql語句運送到資料庫中執行,所以要先叫一輛貨車,即建立遊標cursor 

cursor = connection.cursor()

然後往貨車上搬貨物,讓遊標帶上sql 執行語句

cursor.execute("sql語句")

返回的是執行語句後獲得的表長度

當執行完sql語句後,現在這輛貨車(遊標cursor)已經滿載貨物(資料)了,怎麼取貨呢?

想從貨車(遊標cursor)上取一件貨物看看

dataOne = cursor.fetchone()

fetchone()是取下一行的意思,還有

dataMany = cursor.fetchmany()

  dataMany = cursor.fetchmany(5)

dataAll = cursor.fetchall()
.fetchmany() 是取幾行,可以帶引數,準確取出幾行 .fetchall()是取全部資料
取完資料記得把資料庫大門關了
connection.close()  #關閉資料庫連線

 利用 pymysql連線資料庫,讀取表內容的功能已實現。