SQL Server學習之路(七):Python3操作SQL Server數據庫


0.目錄

1.前言

2.准備工作

3.簡單測試語句

4.提交與回滾

5.封裝成類的寫法

1.前言

前面學完了SQL Server的基本語法,接下來學習如何在程序中使用sql,畢竟不能在程序中使用的話,實用性就不那么大了。

2.最基本的SQL查詢語句

python是使用pymssql這個模塊來操作SQL Server數據庫的,所有需要先安裝pymssql。
這個直接在命令行里輸入pip install pymssql安裝就行了

然后還要配置好自己本地的SQL Server數據庫,進入Microsoft SQL Server Management Studio中可以進行設置。如果你選擇的是使用Windows身份驗證的方式的話,要改成SQL驗證方式才行。這個網上教程很多,搜索一下就出來了。

3.簡單測試語句

打開IDLE,新建python程序:

import pymssql

conn = pymssql.connect(host='127.0.0.1',
                       user='sa',
                       password='123',
                       database='SQLTest',
                       charset='utf8')

#查看連接是否成功
cursor = conn.cursor()
sql = 'select * from student'
cursor.execute(sql)
#用一個rs變量獲取數據
rs = cursor.fetchall()

print(rs)

運行結果:

4.提交與回滾

在python中,在操作完 "增刪改" 之后,還需要執行commit()才能真正提交代碼執行,如果出意外的話就執行rollback()回滾到之前的狀態,相當於之前的操作都白做了,這樣也保護了數據庫。
所以建議寫程序這樣寫:

try:
    conn = pymssql.connect(host='127.0.0.1',
                           user='sa',
                           password='123',
                           database='SQLTest',
                           charset='utf8')
    cursor = conn.cursor()
    sql = 'insert into student values('0001', '張三', 18, '男', '文學院')'
    cursor.execute(sql)
    conn.commit()
except Exception as ex:
    conn.rollback()
    raise ex
finally:
    conn.close()

大家可以試一試將conn.commit()刪去,然后看看數據庫是否有變化。

5.封裝成類的寫法

'''
    TestDB類
    功能:測試數據庫的類寫法
    作者:PyLearn
    博客: http://www.cnblogs.com/PyLearn/
    最后修改日期: 2017/10/17
'''
import pymssql

class TestDB():

    def __init__(self):
        try:
            self.conn = pymssql.connect(host='127.0.0.1',
                                        user='sa',
                                        password='123',
                                        database='SQLTest',
                                        charset='utf8')
            self.cursor = self.conn.cursor()
            self.sql = "insert into student values('0001', '張三', 18, '男', '文學院')"
            self.cursor.execute(self.sql)
            self.conn.commit()
        except Exception as ex:
            self.conn.rollback()
            raise ex
        finally:
            self.conn.close()

if __name__ == '__main__':
    test_DB = TestDB()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM