## CRUD
要對 SQL Server 進行 CRUD(Create, Read, Update, Delete)操作,你可以使用 Python 中的 pyodbc 庫來與 SQL Server 進行交互。以下是一個簡單的示例,展示了如何使用 pyodbc 庫來執行 CRUD 操作:
```python=
import pyodbc
# 連接到 SQL Server
conn = pyodbc.connect(
# "Driver={SQL Server Native Client 11.0};"
"Driver={SQL Server};"
"Server=server_name;"
"Database=database_name;"
"UID=username;"
"PWD=password;"
)
# 創建
def create_record():
cursor = conn.cursor()
cursor.execute("INSERT INTO table_name (column1, column2) VALUES (?, ?)", value1, value2)
conn.commit()
cursor.close()
# 讀取
def read_records():
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
rows = cursor.fetchall()
for row in rows:
# 處理每一行的數據
print(row)
cursor.close()
# 更新
def update_record(record_id, new_value):
cursor = conn.cursor()
cursor.execute("UPDATE table_name SET column1 = ? WHERE id = ?", new_value, record_id)
conn.commit()
cursor.close()
# 刪除
def delete_record(record_id):
cursor = conn.cursor()
cursor.execute("DELETE FROM table_name WHERE id = ?", record_id)
conn.commit()
cursor.close()
# 執行操作
create_record()
read_records()
update_record(1, "new_value")
delete_record(1)
# 關閉連接
conn.close()
```
在上述示例中,你需要根據你的 SQL Server 信息設置連接字串中的 `server_name`、`database_name`、`username` 和 `password`。然後,你可以使用 `pyodbc.connect()` 函數建立與 SQL Server 的連接。接下來,你可以定義創建、讀取、更新和刪除的函數來執行相應的操作。最後,你需要在操作之後關閉連接。
請注意,上述示例中使用的是 pyodbc 庫,你需要確保已經安裝了該庫,可以使用 `pip install pyodbc` 命令進行安裝。另外,請根據你的具體情況自行修改表名、列名和 SQL 語句等部分。
### Select / Handle Row
在 pyodbc 中,使用 fetch 方法獲取的每一個 Row 都是一個 tuple,你可以使用索引或欄位名稱來獲取該 Row 中的欄位值。
使用索引:
```python=
row = cursor.fetchone() # 獲取一個 Row
value = row[0] # 使用索引 0 獲取第一個欄位的值
```
使用欄位名稱:
```python=
row = cursor.fetchone() # 獲取一個 Row
value = row.column_name # 使用欄位名稱獲取欄位的值
```
**注意,欄位名稱需要與資料庫中實際的欄位名稱相符 (區分大小寫)。**
另外,如果你想獲取多個 Rows,可以使用 fetchall 方法來獲取所有 Rows,並使用迴圈逐一處理每個 Row 中的欄位值。
```python=
rows = cursor.fetchall() # 獲取所有 Rows
for row in rows:
value = row.column_name # 使用欄位名稱獲取欄位的值
# 在這裡處理欄位值...
```
請注意,在使用 fetch 或 fetchall 之前,你需要先使用 execute 方法執行 SQL 查詢,並取得 cursor 物件。
## Ref
- https://www.sqlshack.com/performing-crud-operations-with-a-python-sql-library-for-sql-server/