Python與數據庫[1] -> 數據庫接口/DB-API -> SQL Server 適配器
阿新 • • 發佈:2018-01-02
b- custom con 執行sql tin == ref blog 適配
SQL_Server適配器 / SQL_Server Adapter
1 環境配置 / Environment Configuration
安裝SQL_Server的Python適配器包
pip install pymssql
Note: 此處采用遠程數據庫服務器,因此未安裝本地SQL_Server
2 SQL_Server實例 / SQL_Server Examples
由於遠程數據庫賬號僅具有讀取權限,因此此處示例基本以讀取為主。
查看數據庫 / Show Database
利用適配器的基本函數登錄遠程數據庫服務器,並查看服務器中數據庫名稱,表名稱等信息。
1 importpymssql as ms 2 def execute(cur, sql, *args): 3 cur.execute(sql, *args) 4 re = cur.fetchall() 5 return re 6 7 def show(): 8 cnx = ms.connect(host=‘host‘, user=‘user‘, password=‘password‘, database=‘db‘, charset=‘UTF-8‘) 9 10 cur = cnx.cursor() 11 12 print(‘{:-^30}‘.format(‘DATABASES‘)) 13 # Show the database in sys 14 re = execute(cur, "SELECT * FROM sys.databases") 15 16 # Show custom databases 17 # re = execute(cur, "SELECT * FROM sys.databases WHERE name NOT IN (‘master‘, ‘tempdb‘, ‘model‘, ‘msdb‘)") 18 for db in re: 19 try: 20 # Select databases 21 cur.execute("USE %s" % db[0]) 22 except: 23 continue 24 # Show tables 25 re = execute(cur, "SELECT * FROM information_schema.TABLES") 26 27 for i in re: 28 print(i) 29 30 cur.execute(‘USE ITP‘) 31 print(‘{:-^30}‘.format(‘TABLES‘)) 32 re = execute(cur, "SELECT * FROM information_schema.TABLES") 33 for tb in re: 34 print(‘\n{:-^30}‘.format(‘TABLE CONTENTS‘)) 35 print(tb) 36 print(‘{:-^30}‘.format(‘%s‘ % tb[2])) 37 re = execute(cur, "SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME=‘%s‘" % tb[2]) 38 for cl in re: 39 print(cl) 40 41 def foo(gen): 42 [print(x, end=‘\n\n‘) for x in gen] 43 44 if __name__==‘__main__‘: 45 show()
第 2-4 行,首先定義一個執行函數,利用傳入的遊標執行SQL語句
第 7-39 行,定義一個顯示函數,其中sys.databases中存放了所有數據庫的名稱信息,show函數會將所有database的信息顯示出來,並查看db表的信息
此處的數據庫信息均已隱藏,可以看出,無論是SQL_Server還是MySQL,利用適配器進行操作時,基本原理都是相同的,只有部分SQL語句不同。
相關閱讀
1. 使用 Python 建立 MySQL 適配器
2. DB-API 通用標準
Python與數據庫[1] -> 數據庫接口/DB-API -> SQL Server 適配器