新聞中心
Python是一種高級編程語言,廣泛應(yīng)用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、等領(lǐng)域。而數(shù)據(jù)庫也是數(shù)據(jù)處理的重要工具之一。本文將介紹如何使用Python中的pymysql模塊登錄MySQL數(shù)據(jù)庫。

1. 安裝pymysql模塊
在使用pymysql模塊前,需要先將其安裝到Python環(huán)境??梢允褂胮ip命令來安裝,具體命令如下:
“`
pip install pymysql
“`
安裝完成后,即可使用pymysql模塊。
2. 連接數(shù)據(jù)庫
使用pymysql連接MySQL數(shù)據(jù)庫需要配置以下參數(shù):
– host: 數(shù)據(jù)庫服務(wù)器的IP地址或域名
– port: 數(shù)據(jù)庫服務(wù)器的端口號,默認(rèn)是3306
– user: 登錄MySQL的用戶名
– password: 登錄MySQL的密碼
– database: 連接的數(shù)據(jù)庫名稱
– charset: 連接數(shù)據(jù)庫使用的字符集
下面是一個連接MySQL數(shù)據(jù)庫的示例:
“`python
import pymysql
db = pymysql.connect(host=’localhost’, port=3306, user=’root’, password=’123456′, database=’test’, charset=’utf8′)
“`
3. 執(zhí)行SQL語句
連接數(shù)據(jù)庫成功后,可以使用pymysql中的cursor()方法得到一個游標(biāo)對象,使用該游標(biāo)對象執(zhí)行SQL語句。下面是一個執(zhí)行查詢SQL語句的示例:
“`python
cursor = db.cursor()
sql = “SELECT * FROM users WHERE id=%s”
cursor.execute(sql, (1,))
result = cursor.fetchone()
print(result)
“`
該示例中,使用execute()方法執(zhí)行查詢SQL語句,并使用fetchone()方法獲取查詢結(jié)果的之一條數(shù)據(jù)。
4. 關(guān)閉連接
在完成數(shù)據(jù)庫操作后,需要關(guān)閉數(shù)據(jù)庫連接??梢允褂胏lose()方法來關(guān)閉數(shù)據(jù)庫連接,示例如下:
“`python
db.close()
“`
5. 實例分析
下面是一個完整的示例,展示如何使用pymysql模塊連接MySQL數(shù)據(jù)庫,并執(zhí)行查詢操作:
“`python
import pymysql
db = pymysql.connect(host=’localhost’, port=3306, user=’root’, password=’123456′, database=’test’, charset=’utf8′)
cursor = db.cursor()
sql = “SELECT * FROM users WHERE id=%s”
cursor.execute(sql, (1,))
result = cursor.fetchone()
print(result)
db.close()
“`
該示例中,首先使用pymysql模塊連接數(shù)據(jù)庫,并得到一個游標(biāo)對象。然后使用該游標(biāo)對象執(zhí)行查詢SQL語句,并輸出查詢結(jié)果。最后使用close()方法關(guān)閉數(shù)據(jù)庫連接。
6.
本文介紹了如何使用Python中的pymysql模塊連接MySQL數(shù)據(jù)庫,并執(zhí)行查詢操作。使用pymysql模塊可以方便地進(jìn)行數(shù)據(jù)庫操作,是Python中處理數(shù)據(jù)的重要工具之一。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
python如何訪問數(shù)據(jù)庫
1.背景:
python提供了很多數(shù)據(jù)庫接口, 常用的數(shù)據(jù)庫有 MS SQL Server /mysql /oracle 等。
打開鏈接
是python 關(guān)于數(shù)據(jù)庫接口的一個總結(jié) , 可以看到python支持的訪問的數(shù)據(jù)庫系統(tǒng)。
2.模塊:
python 主要是通過模塊和數(shù)據(jù)庫連接的。
2.1 安裝模塊:
如果使用anconda,本身就會很多模塊,不需要手動安裝。如果用pycharm就要手動安裝模塊。
安裝模塊流程:
下載模塊擴(kuò)展包放到路徑下——>cmd找到相應(yīng)路徑——> pip install +擴(kuò)展包名字
下面列舉一些常用連接數(shù)據(jù)庫的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi
不同模塊連接的數(shù)據(jù)庫不同, 支持的版本系統(tǒng)有的也不一樣。但是大體用法都是相近的, 因為有DB-API
相關(guān)推薦:《Python教程》
3.Python DB-API
3.1背景:
在沒有DB-API 之前, 不同數(shù)據(jù)庫有不同的數(shù)據(jù)庫接口程序, 這就導(dǎo)致python 訪問 database 的接口程序非?;靵y。如果我們學(xué)習(xí)了python 訪問 mysql 的接口程序, 然后要切換到另一個數(shù)據(jù)庫上, 我們還要在學(xué)習(xí)另外一個數(shù)據(jù)庫的接口程序。python DB-API就是為了解決接口程序混亂而生成的。有了DB-API, 在不同數(shù)據(jù)庫上移植代碼就變得簡單的多了。
3.2Python DB-API:
Python 定義了一套操作數(shù)據(jù)庫的 DB-API 接口,它是一個規(guī)范,定義了一系列必須的對象和數(shù)據(jù)庫存取方式,以便為不同的底層數(shù)據(jù)庫系統(tǒng)提供一致的訪問接口
這個鏈接就是python 官方給定的 DB-API 的說明
3.3 Python DB–API的內(nèi)容:
連接對象:
?Connect()創(chuàng)建連接:host/server /user/password/db connect方法生成一個connect對象, 我們通過這個對象來訪問數(shù)據(jù)庫。符合標(biāo)準(zhǔn)的模塊都會實現(xiàn)connect方法。
?close():關(guān)閉連接
?commit():提交當(dāng)前事務(wù)。做出某些更改后確保已經(jīng)進(jìn)行了提交,這樣才可以將這些修改真正地保存到database中
?rollback() 回滾上一次調(diào)用 commit()以來對數(shù)據(jù)庫所做的更改
?cursor():創(chuàng)建游標(biāo)。系統(tǒng)為用戶開通的一個數(shù)據(jù)緩沖區(qū),用于存放SQL語句執(zhí)行結(jié)果。cursor游標(biāo)是有狀態(tài)的,它可以記錄當(dāng)前已經(jīng)取到結(jié)果的第幾個記錄了,缺圓因此,一般你只可以遍歷結(jié)果集一次。在上面的情況下,如果執(zhí)行fetchone()會返回為空。這一點(diǎn)在測試時需要注意
游標(biāo)對象:
?Execute()執(zhí)行一個數(shù)據(jù)庫查詢或命令。 execute 執(zhí)行sql 語句之后運(yùn)行的結(jié)果不會直接output 出來 , 而是放到了一個緩存區(qū), 要用 fetch語句+print 可以查詢sql運(yùn)行的結(jié)果
?fetchone ()得到褲扒結(jié)果集的下一行
?fetchmany(size)得到結(jié)果集的下幾行
?fetchall()返回結(jié)果集中剩下的所有行
?rowcount 返回影響的行數(shù)
?Close()關(guān)閉游標(biāo)對象
3.4Python DB–API的工作原理及流程:
如圖所示如果把python 和數(shù)據(jù)庫比作兩個不同的地點(diǎn), connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用于執(zhí)行sql 語句, 以及存儲sql 運(yùn)行的結(jié)果伏純塌。
流程:
4.MS SQL Server 示例:
4.1 導(dǎo)入模塊、創(chuàng)建連接:
4.2 創(chuàng)建游標(biāo): 游標(biāo)創(chuàng)建之后就可以對數(shù)據(jù)庫進(jìn)行查詢更改了!
4.3對數(shù)據(jù)進(jìn)行操作(創(chuàng)建表、插入行、更新數(shù)據(jù)、增加列、刪除行、列、表):
4.4 查詢 獲取行:
5.其他:
使用游標(biāo)的時候要注意, 每次連接只能有一個游標(biāo)查詢處于活躍狀態(tài)。 code演示:
execute()循環(huán)和 executemany() 插入條數(shù)據(jù)測速:
用Web.py 連接 MySQL 的時候怎么樣連接遠(yuǎn)程數(shù)據(jù)庫
看了web.py源碼,尺做世胡中關(guān)于連接數(shù)據(jù)庫的函數(shù)如下(webpy/web/db.py):
1133 _databases = {}
1134 def database(dburl=None, **params):
1135 “””Creates appropriate database using params.
1136
1137 Pooling will be enabled if DBUtils module is available.
1138 Pooling can be disabled by passing pooling=False in params.
1139 “””陵肢
1140 dbn = params.pop(‘dbn’)
1141 if dbn in _databases:
1142 return _databases(**params)
1143 else:
1144 raise UnknownDB, dbn
可以看出的是,dburl的確沒有起到作用,注釋里面也說了: Creates appropriate database using params。不過一般連接mysql數(shù)據(jù)庫通過以下參數(shù)連接的話,應(yīng)該是可以連接上的吧。(我沒有試過遠(yuǎn)程,所以不敢肯定。)
import web
db = db.database(
dbn=”mysql”,
db=”dbname”,
host=”host”,
port=3306,
user=”user”,
pw=”password”
python.中如果腳本文件放在中文目錄下,pymysql連接數(shù)據(jù)庫會報錯,怎么解決(不要修改中文目錄名為英文)
解李野纖決方法為:
創(chuàng)建數(shù)據(jù)表時指定charset=utf8,如:
use hongxiudb;
create table 哪仿if not exists 脊盯hongxiu(
name text,
author text,
intro text
)engine=InnoDB default charset=utf8;
沒辦法的。它只能支持英文路徑。改個路徑很難嗎
關(guān)于pymysql登錄數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長,共創(chuàng)價值。
本文名稱:Python使用pymysql登錄數(shù)據(jù)庫的方法(pymysql登錄數(shù)據(jù)庫)
標(biāo)題來源:http://m.fisionsoft.com.cn/article/cogsgoh.html


咨詢
建站咨詢
