91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python怎么操作Sql Server 2008數據庫

發布時間:2021-05-19 16:58:42 來源:億速云 閱讀:214 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用Python怎么操作Sql Server 2008數據庫,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、關于pyodbc庫和pymssql庫的選擇

在使用python語言進行開發之前,需要確定使用哪種第三方的數據庫操作接口,目前Python提供了一些庫,如pymssql和pyodbc,目前網上資料比較多的也是這兩個了。剛開始我嘗試安裝并使用了pymssql庫,但是始終無法通過python應用程序遠程訪問連接Sql Server數據庫,由于對windows平臺又不太熟悉,網上查了一些資料未果,說是需要依賴feeds,還需要設置各種變量等,最終我放棄了它改用pyodbc,雖然也遇到一些小問題,但是總體來說非常順利。

二、關于pyodbc庫的一些接口說明

基于第三方python庫來訪問Sql Server數據庫的過程非常簡單(其實除了能訪問sql server外,它還可以訪問其它數據庫,因為它們都基于標準的DB-API2.0標準),總共只需要四步:打開并連接數據庫connect、 獲取游標指針、執行數據庫sql操作、關閉數據庫連接

1 打開連接數據庫

復制代碼 代碼如下:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')

或者是:

復制代碼 代碼如下:

cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',DATABASE='testdb',UID='me',PWD='pass')

這里簡單說明一下參數:

DRIVER='{SQL Server}'這個一般是固定的,除非你在Sql Server作了更改。
SERVER:此參數為數據庫服務器名稱,不是"192.168.0.X"這種,一般在安裝時命名好了,我的是:ZHANGHUAMIN\MSSQLSERVER_ZHM
DATABASE:此參數指的是Sql Server內具體的數據庫了,使用這個connect接口連接之前在sqlserver內應該是已經先創建好并存在的,否則連接不上。
UID:用戶名
PWD:密碼

執行完畢后,如果成功將返回一個數據庫連接句柄。

2 獲取游標指針

cursor = cnxn.cursor()

后面對數據庫執行的sql語句將使用游標指針來操作

3 執行數據庫sql操作

cursor.execute("select user_id, user_name from users") #調用游標指針的execute方法執行sql語句
row = cursor.fetchone() #sql語句執行結果的獲取,如果需要一次獲取多條記錄,可以使用cursor.fetchall()方法
if row:
  print row

有時對數據庫執行完sql語句后需要對此事務進行提交,使用如下接口:

cnxn.commit()

特別是當創建一個數據庫或數據表,若未進行提交事務,在Sql Server2008終端上將找不到創建的數據庫及數據表,如果提交后,在sql server2008通過終端的查詢sql 語句就可以即時查到。注:提交事務的commit方法屬于數據庫的連接句柄對象

4 關閉數據庫連接

cnxn.close()

與文件操作類似,不再說明。

三、用python操作Sql Server 2008數據庫的具體例程

#!/usr/bin/python
#coding=utf-8
#-------------------------------------------------------------------------------
# Name: datamapper.py
# Purpose: using pyodbc library to operate database
#
# Author: huamin.zhang
#
# Created: 20/04/2013
#-------------------------------------------------------------------------------
import pyodbc
import time
class ODBC_MS:
  ''''' 對pyodbc庫的操作進行簡單封裝
  pyodbc庫的下載地址:http://code.google.com/p/pyodbc/downloads/list
  使用該庫時,需要在Sql Server Configuration Manager里面將TCP/IP協議開啟
  此類完成對數據庫DB的連接/查詢/執行操作
  正確的連接方式如下:
  cnxn = pyodbc.connect('DRIVER={SQL SERVER};SERVER=ZHANGHUAMIN\MSSQLSERVER_ZHM;DATABASE=AdventureWorks2008;UID=sa;PWD=wa1234')
  cnxn = pyodbc.connect(DRIVER='{SQL SERVER}',SERVER=r'ZHANGHUAMIN\MSSQLSERVER_ZHM',DATABASE='AdventureWorks2008',UID='sa',PWD='wa1234',charset="utf-8")
  '''
  def __init__(self, DRIVER,SERVER, DATABASE, UID, PWD):
    ''''' initialization '''
    self.DRIVER = DRIVER
    self.SERVER = SERVER
    self.DATABASE = DATABASE
    self.UID = UID
    self.PWD = PWD
  def __GetConnect(self):
    ''''' Connect to the DB '''
    if not self.DATABASE:
      raise(NameError,"no setting db info")
    self.conn = pyodbc.connect(DRIVER=self.DRIVER, SERVER=self.SERVER, DATABASE=self.DATABASE, UID=self.UID, PWD=self.PWD, charset="UTF-8")
    #self.conn = pyodbc.connect(DRIVER=self.DRIVER, SERVER=self.SERVER, DATABASE=self.DATABASE, UID=self.UID, PWD=self.PWD)
    cur = self.conn.cursor()
    if not cur:
      raise(NameError,"connected failed!")
    else:
      return cur
  def ExecQuery(self, sql):
    ''''' Perform one Sql statement '''
    cur = self.__GetConnect() #建立鏈接并創建數據庫操作指針
    cur.execute(sql)#通過指針來執行sql指令
    ret = cur.fetchall()#通過指針來獲取sql指令響應數據
    cur.close()#游標指標關閉
    self.conn.close()#關閉數據庫連接
    return ret
  def ExecNoQuery(self,sql):
    ''''' Person one Sql statement like write data, or create table, database and so on'''
    cur = self.__GetConnect()
    cur.execute(sql)
    self.conn.commit()#連接句柄來提交
    cur.close()
    self.conn.close()
def main():
  ms = ODBC_MS('{SQL SERVER}', r'ZHANGHUAMIN\MSSQLSERVER_ZHM', 'zhm_db', 'sa', 'wa1234')#zhm_db數據庫是在sql server 終端里先創建好的
  #ms.ExecNoQuery("drop table Customers_test")
  sql = '''''CREATE TABLE Customers_test
  (
    CustomerNo   int       IDENTITY   NOT NULL,
    CustomerName  varchar(30)         NOT NULL,
    Address1    nvarchar(30)         NOT NULL ,
    Address2    nvarchar(30)         NOT NULL,
    City      nvarchar(20)         NOT NULL,
    State     nchar(20)          NOT NULL,
    Zip      varchar(10)         NOT NULL,
    Contact    varchar(25)         NOT NULL,
    Phone     char(15)           NOT NULL,
    FedIDNo    varchar(9)          NOT NULL,
    DateInSystem  smalldatetime        NOT NULL
  );'''
  ms.ExecNoQuery(sql)
  #注意:在進行插入操作時,自增長度不能夠寫入
  sql = u'''''insert into Customers_test
  (
    CustomerName,
    Address1,
    Address2,
    City,
    State,
    Zip,
    Contact,
    Phone,
    FedIDNo,
    DateInSystem
  )
  VALUES
  (
    'zhm', '北京市朝陽區', '北京市朝陽區', '北京', '哈哈','3625514', '18001226509', '010-88765879', '21', '2012-09-09'
  );
  '''
  ms.ExecNoQuery(sql)
if __name__ == '__main__':
  main()

說明:我之前連接了一個Sql Server自帶的AdventureWorks2008數據庫例程,并在其中創建了一個如上數據表Customers_test,然后插入一條如上記錄,結果在Sql Server2008的終端上用Select * FROM Customers_test查詢,結果對包含中文信息字段的數據變成如“??????”的亂碼,經過倒騰了一上午,唯一可能解釋的原因可能在于AdventureWorks2008數據庫做了一些我不知道的約束,中文所對應的編碼它不支持。 因為在如上例程中,我自己創建的zhm_db數據庫,并在其中創建數據表,然后插入記錄,同樣的在Sql Server終端里用select查詢,中文也是可以正常顯示的。

注意,在python程序中需要增加:#coding = utf-8編碼,并在連接connect內增加charset = "utf-8"指明字符集為utf-8編碼即可。這樣可以防止亂碼的出現

最后在Sql Server 2008內通過終端使用SELECT * FROM Customers_test顯示的結果如下:

使用Python怎么操作Sql Server 2008數據庫

Python的優點有哪些

1、簡單易用,與C/C++、Java、C# 等傳統語言相比,Python對代碼格式的要求沒有那么嚴格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向對象,能夠支持面向過程編程,也支持面向對象編程;4、Python是一種解釋性語言,Python寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;5、Python功能強大,擁有的模塊眾多,基本能夠實現所有的常見功能。

上述就是小編為大家分享的使用Python怎么操作Sql Server 2008數據庫了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三原县| 高要市| 蓬安县| 白玉县| 临沧市| 江永县| 随州市| 荆门市| 桓台县| 广宗县| 施甸县| 新宁县| 洛南县| 新建县| 永仁县| 木兰县| 五华县| 股票| 石台县| 贵溪市| 若尔盖县| 沙田区| 崇信县| 朝阳县| 大方县| 武宣县| 进贤县| 鄂托克前旗| 苏尼特右旗| 大安市| 呼玛县| 三原县| 松阳县| 个旧市| 兴安盟| 正安县| 二连浩特市| 保山市| 平遥县| 石门县| 祁东县|