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

2022-09-09 00:48:33 字數 2779 閱讀 1638

python中有mysqldb、pymysql,psycopg2(連線postgresql)等資料庫模組,本文用pymysql模組連線mysql資料庫,並且讀取資料庫表

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

很是形象生動!

匯入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)

引數參考: 

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連線資料庫,讀取表內容的功能已實現。

關於提交到資料庫操作

connection.commit
只有在插入、更新、刪除資料庫表時,才需要將sql語句提交到資料庫中操作,這時,只需要在sql語句執行(cursor.execute("sql語句"))後,新增上面這句「提交到資料庫操作」,即可。

pymysql連線資料庫

建立資料庫 import pymysql 開啟資料庫連線 db pymysql.connect localhost testuser test123 testdb 使用 cursor 方法建立乙個游標物件 cursor cursor db.cursor 使用 execute 方法執行 sql,如果表...

PyMysql連線資料庫

1 先安裝pymysql模組 pip install pymysql2 匯入pymysql模組 3 連線資料庫 conn pymysql.connect host localhost user root passwd 123456 port 3306 db test1 charset utf8 cu...

pymysql連線資料庫

pymysql連線資料庫的步驟 1.匯入pymysql 2.使用 pymysql.connect host 位址,user 使用者名稱,password 密碼,port 埠,db 資料庫名 建立資料庫的連線,得到連線物件 3.獲取游標物件 con.cursor pymysql.cursors.dic...