一、安裝必要的軟體
要在Python中連接SQL Server,我們需要從Microsoft下載Python用的ODBC驅動程序和SQL Server Native Client。為了安裝它們,我們可以遵循以下步驟:
1. 下載並安裝ODBC驅動程序:https://www.microsoft.com/en-us/download/details.aspx?id=36434
2. 下載並安裝SQL Server Native Client:https://www.microsoft.com/en-us/download/details.aspx?id=54284
3. 安裝完畢後,你需要按照ODBC驅動程序的指導設置ODBC數據源。在Windows中,可以使用「ODBC數據源管理員」應用程序來設置數據源。
二、連接SQL Server資料庫
一旦ODBC數據源被設置好,我們就可以在Python中使用pyodbc庫來連接資料庫了。可以使用以下代碼來建立SQL Server連接:
import pyodbc server = 'your_server_name' database = 'your_database_name' username = 'your_username' password = 'your_password' cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password)
其中「DRIVER」是ODBC驅動程序的名稱,它應該與安裝的驅動程序的名稱相同。上面的代碼構建了一個ODBC連接對象。如果連接字元串是有效的,則連接將被建立。
三、執行SQL查詢
連接資料庫後,我們可以使用cursor對象來執行SQL查詢:
cursor = cnxn.cursor() cursor.execute("SELECT * FROM your_table_name") for row in cursor: print(row)
在執行游標的execute方法時,傳入SQL語句。在這個例子中,我們使用SELECT語句檢索數據表中的所有行,然後通過使用「for」循環來遍歷游標,從而列印出所有行的內容。
四、插入數據到資料庫
我們也可以使用游標對象插入新的數據到資料庫中:
cursor.execute("INSERT INTO your_table_name (col1, col2, col3) VALUES (?, ?, ?)", value1, value2, value3) cnxn.commit()
在執行游標的execute方法時,我們傳入一個INSERT語句和要插入的值。需要注意的是,我們需要將佔位符「?」用於變數,這可以防止SQL注入攻擊。在插入完成後,我們需要使用commit()方法提交更改。
五、關閉資料庫連接
為了保持與資料庫的連接,我們需要顯式地關閉游標和連接,使用如下代碼:
cursor.close() cnxn.close()
六、完整代碼示例
以下是一個完整的代碼示例,它包括從連接資料庫,查詢數據,並向資料庫中插入數據的步驟:
import pyodbc server = 'your_server_name' database = 'your_database_name' username = 'your_username' password = 'your_password' cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password) cursor = cnxn.cursor() cursor.execute("SELECT * FROM your_table_name") for row in cursor: print(row) insert_query = "INSERT INTO your_table_name (col1, col2) VALUES (?, ?)" values_to_insert = ('value1', 'value2') cursor.execute(insert_query, values_to_insert) cnxn.commit() cursor.close() cnxn.close()
以上是Python連接SQL Server的一個基本實現。希望本文能夠對你有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283096.html