學習Python①:Phthon操做Ms SQL Server數據庫

  網絡上說,目前最火的開發語言是Python,它的功能強大而且應用範圍很廣,恰好最近要作一個小項目,就是經過一個小程序來管理交換機,因而在網絡找資料來學習。python

  如今網絡發達,學一門編程語言太容易了,遇到問題找資料容易,不像之前資料少,爲了找一個API的使用說明都費勁。sql

  學Python麻煩之一是搭建編程環境,下載和安裝相應的插件,好在有網絡,終會解決。數據庫

  一、Python版本衆多,我下載了3.八、3.9,安裝後不太順利,換成3.7就行了,穩定。編程

  二、開發工具是PyCharm,咱們使用的是代理上網,折騰插件很費勁。小程序

  三、Pymssql的安裝在pycharm中安裝不順利,反覆折騰,後來使用在dos下安裝,即pip install pymssql-2.1.5-cp37-cp37m-win_amd64.whl。網絡

  四、重啓了幾回的pycharm才安裝好,惋惜沒代碼提示,可是能夠編程了。編程語言

  五、亂碼,最後在獲取字段(字符串)的後面加.encode('latin1').decode('gbk'))就能夠正常顯示了。ide

  六、有用的網址:工具

  ● https://docs.python.org/zh-cn/3/學習

  ● https://docs.python.org/zh-cn/3.7/library/

  ● https://pypi.org/project/paramiko/#files

  ● https://riverbankcomputing.com/software/pyqt/download

  創建鏈接很容易,對數據記錄的操做是經過遊標進行的。

  下面是成功的代碼:

import pymssql # 對MS SQL Server的操做
import sys

print(sys.getdefaultencoding())

定義數據庫的鏈接

DBSeverIP="1.2.3.4"
DBUser="user"
DBPassword="pass"
DBDatabase="mineDB"
DBCharset="utf-8"
DBConn=pymssql.connect(DBSeverIP,DBUser,DBPassword,DBDatabase,DBCharset)
if DBConn:
print("數據庫鏈接成功!")

定義訪問遊標

DBCursor=DBConn.cursor()

增長數據記錄

StrInsertSQL="insert into HaoRTable values(%s,%s,%s,%s,%s,%s)"
DBCursor.execute(StrInsertSQL,("777","777","23","24","25","26"))
DBConn.commit()

刪除數據記錄

StrInsertSQL="delete from HaoRTable where c01=%s"
DBCursor.execute(StrInsertSQL,("44"))
DBConn.commit()

修改數據記錄

StrUpdateSQL="update HaoRTable set c02=%s where c01=%s"
DBCursor.execute(StrUpdateSQL,("新的表","33"))
DBConn.commit()

查詢返回的數據

StrQuerySQL="select * from HaoRTable"
DBQueryResult=DBCursor.execute(StrQuerySQL)

讀取查詢結果(fetchall,獲取所有的數據記錄)

DBTable=DBCursor.fetchall()
for i in range(len(DBTable)):
print("第{}行".format(i),DBTable[i][1].encode('latin1').decode('gbk'),DBTable[i][2].encode('latin1').decode('gbk'),DBTable[i][3].encode('latin1').decode('gbk'))
print("第{}行".format(i),DBTable[i][0],DBTable[i][1].encode('latin1').decode('gbk'),DBTable[i][2].encode('latin1').decode('gbk'))

讀取查詢結果(fetchall,獲取一條數據記錄)

DBQueryResult=DBCursor.execute(StrQuerySQL)
DBTableRow=DBCursor.fetchone()
while DBTableRow:
print(DBTableRow[1].encode('latin1').decode('gbk'),DBTableRow[2].encode('latin1').decode('gbk'),DBTableRow[3].encode('latin1').decode('gbk'))
DBTableRow=DBCursor.fetchone()

DBCursor.close() #關閉遊標DBConn.close() #關閉數據庫鏈接

相關文章
相關標籤/搜索