Python是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它是一種動(dòng)態(tài)的、面向?qū)ο蟮哪_本語(yǔ)言。它是一種跨平臺(tái)的,可以運(yùn)行在 windows,mac和 linux/Unix系統(tǒng)上。

在日常使用中需要對(duì)大量數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,那么就必然用到數(shù)據(jù)庫(kù),我們常用的數(shù)據(jù)庫(kù)有 SQL Server , MySQL , Oracle , DB2 , SQLite ,Hive ,PostgreSQL , MongoDB還有其他常用的 Microsoft Access,Microsoft Excel等。
今天主要介紹比較常用的庫(kù),其中兩個(gè)是:pyodbc 和 pymssql,他們可以連接多個(gè)常用數(shù)據(jù)庫(kù)。
首先是需要安裝Python, 根據(jù)操作系統(tǒng)選擇對(duì)應(yīng)平臺(tái)的Pyhon版本,可以在官網(wǎng)下載。

然后就是安裝 pyodbc,在聯(lián)網(wǎng)情況下,打開(kāi) python 軟件,輸入:pip install pyodbc
等待安裝完成。然后我們就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作了,比如:連接、查詢、插入、修改、刪除等操作。
下面主要介紹如何實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作:
第一,連接數(shù)據(jù)庫(kù)。從GitHub上可以查詢到如下 pyodbc 連接 SQL Server 的要求:
Microsoft have written and distributed multiple ODBC drivers for SQL Server:
- {SQL Server} - released with SQL Server 2000
- {SQL Native Client} - released with SQL Server 2005 (also known as version 9.0)
- {SQL Server Native Client 10.0} - released with SQL Server 2008
- {SQL Server Native Client 11.0} - released with SQL Server 2012
- {ODBC Driver 11 for SQL Server} - supports SQL Server 2005 through 2014
- {ODBC Driver 13 for SQL Server} - supports SQL Server 2005 through 2016
- {ODBC Driver 13.1 for SQL Server} - supports SQL Server 2008 through 2016
- {ODBC Driver 17 for SQL Server} - supports SQL Server 2008 through 2017
- import pyodbc
- cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.6;DATABASE=test;UID=sa;PWD=Admin123')
DRIVER:對(duì)應(yīng)數(shù)據(jù)庫(kù)版本的驅(qū)動(dòng)器,SQL server 2000是“SQL Server”;
SERVER:數(shù)據(jù)庫(kù)服務(wù)器名稱或者數(shù)據(jù)庫(kù)服務(wù)器的IP地址;
DATABASE:數(shù)據(jù)庫(kù)名稱,UID:賬號(hào),PWD:密碼。
第二,查詢數(shù)據(jù)庫(kù)
cursor = cnxn.cursor() #獲得游標(biāo)
cursor.execute("select * from test.dbo.JZGK") #執(zhí)行SQL的查詢語(yǔ)句
rows = cursor.fetchall() #獲得所有數(shù)據(jù),返回一個(gè)list對(duì)象
for row in rows: #使用for循環(huán)對(duì)查詢的數(shù)據(jù)遍歷并打印出來(lái)
print(row.LoopName, row.Press,row.Temp,row.Flow,row.Time_Stamp)

第三,數(shù)據(jù)庫(kù)中插入數(shù)據(jù)
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.6;DATABASE=test;UID=sa;PWD=Admin123')
cursor = cnxn.cursor()
cursor.execute("insert into products(id, name) values ('3', 'abd')") #使用SQL的insert語(yǔ)句向數(shù)據(jù)庫(kù)的表products插入一條記錄
cnxn.commit() #操作提交,如果中途出錯(cuò),或連接中斷,則會(huì)發(fā)生數(shù)據(jù)回流,不會(huì)影響到數(shù)據(jù)庫(kù)原有數(shù)據(jù)。
第四,數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)
cursor.execute("delete from products where id <> ?", '1') #使用SQL的delete 語(yǔ)句刪除數(shù)據(jù)
- print('Deleted {} inferior products'.format(cursor.rowcount))
- cnxn.commit()


第五,數(shù)據(jù)庫(kù)中更新數(shù)據(jù)
cursor.execute("UPDATE test SET LoopName=FIQ1005 WHERE LoopName=FIQ1004) #使用SQL的UPDATE 語(yǔ)句更新數(shù)據(jù)
- cnxn.commit()
- cnxn.close()
注意:所有的SQL操作完成后需要關(guān)閉數(shù)據(jù)庫(kù)連接
作者劍控老羅






