Python - AI 助手

Python SQLite connection.execute() 函式



Python 的 `connection.execute()` 函式允許我們直接在資料庫上執行 SQL 命令,無需建立遊標。

Connection 指的是代表資料庫的物件。連線物件用於執行 SQL 命令。此函式提供建立遊標的方法,然後關閉連線。

Execute 用於執行來自遊標物件的 SQL 命令。此函式將 SQL 語句作為其第一個引數,並將可選引數作為第二個引數。

語法

以下是 `connection.execute()` 函式的語法。

connection.execute(sql[,optional parameters])

引數

此函式包含要執行的 SQL 命令。

返回值

返回一個遊標物件,可以從中迭代結果。

示例

考慮以下 EMPLOYEES 表,其中儲存員工 ID、姓名、年齡、薪水、城市和國家/地區:

ID 姓名 年齡 薪水 城市 國家
1 Ramesh 32 2000.00 Maryland USA
2 Mukesh 40 5000.00 New York USA
3 Sumit 45 4500.00 Muscat Oman
4 Kaushik 25 2500.00 Kolkata India
5 Hardik 29 3500.00 Bhopal India
6 Komal 38 3500.00 Saharanpur India
7 Ayush 25 3500.00 Delhi India

示例 1

在下面的示例中,我們使用connection.execute()函式插入一個新的員工行,然後關閉連線。

import sqlite3
conn = sqlite3.connection('res.db')
conn.execute('INSERT INTO employees(Name, Age, Salary, City, Country)VALUES(?,?,?,?,?)',('Sharon', 22, 6000.0, 'Maharashtra', 'India'))
conn.commit()
conn.close()

輸出

我們將根據上述值得到更新後的表格:

ID 姓名 年齡 薪水 城市 國家
1 Ramesh 32 2000.00 Maryland USA
2 Mukesh 40 5000.00 New York USA
3 Sumit 45 4500.00 Muscat Oman
4 Kaushik 25 2500.00 Kolkata India
5 Hardik 29 3500.00 Bhopal India
6 Komal 38 3500.00 Saharanpur India
7 Ayush 25 3500.00 Delhi India
8 Sharon 22 6000.00 Maharashtra India

示例 2

在這裡,我們使用connection.execute()函式將Kaushik的工資更新為7000.0,然後關閉資料庫。

import sqlite3
conn = sqlite3.connect('res.db')
conn.execute('UPDATE Employees SET SAlary = ? WHERE Name = ?',(7000.0,'Kaushik'))
conn.commit()
conn.close()

輸出

我們將得到如下輸出:

Kaushik's salary is updated to 7000.0

示例 3

現在,我們使用connection.execute()函式從Employees表中刪除komal行,輸出確認資料已被刪除。

import sqlite3
conn = sqlite3.connect('res.db')
conn.execute('DELETE FROM employees WHERE Name = ?',('Komal'))
conn.commit()
conn.close()

輸出

輸出顯示更新後的員工表:

The record for Komal is deleted from the employees table.

示例 4

現在,我們使用connection.execute()函式執行一個整數作為SQL語句,這將丟擲一個TypeError異常。

import sqlite3
try:
   conn = sqlite3.connect('res.db')
   conn.execute(12345)
   conn.commit()
except TypeError as e:
   print(f"TypeError:{e}")
finally:
   conn.close()

輸出

執行上述程式碼後,我們將得到以下結果:

TypeError: execute() argument 1 must be str, not int
python_modules.htm
廣告