Python - AI 助手

Python SQLite cursor.executescript() 函数



Python 的 `cursor.executescript()` 函数用于一次执行多条 SQL 命令。它接收一个包含多条 SQL 命令的字符串,命令之间用分号分隔。此函数对于创建数据库和在一个集合上执行多个操作非常有用。

游标 (cursor) 是一个用于执行 SQL 命令和检索数据的对象。当我们从数据库连接创建游标时,它将检索 SQL 查询和数据库的结果。

语法

以下是 `cursor.executescript()` 函数的语法。

cursor.executescript(sql_script)

参数

多个 SQL 命令在一个字符串中,用分号分隔。

返回值

此函数用于执行多条 SQL 命令,它返回 None。

示例

考虑以下 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 博帕尔 India
6 科马尔 38 3500.00 萨哈兰普尔 India
7 阿尤什 25 3500.00 德里 India

示例 1

下面的示例使用cursor.executescript()函数选择所有来自印度的员工的姓名和城市。

sql_script = ''' SELECT Name, City FROM employees WHERE country = 'India';'''
cursor.executescriot(sql_script)

输出

运行以上代码后,我们将得到以下结果:

Kaushik    Kolkata
Hardik     Bhopal
Komal      Saharanpur
Ayush      Delhi

示例 2

在下面的示例中,我们使用cursor.executescript()函数计算员工的平均工资。

sql_script = ''' SeleCT AVG(Salary) AS Average_Salary FROM employees;'''
cursor.executescript(sql_script)

输出

结果如下:

Average_Salary
3500.00

示例 3

我们现在使用cursor.executescript()函数更新工资高于4000的员工的工资。

sql_script = ''' UPDATE employees = SAlary *1.1 WHERE Country = 'India';
SELECT NAME, Salary FROM employees WHERE Salary > 4000;'''
cursor.executescript(sql_script)

输出

结果如下:

Mukesh 5000.00
Sumit  4500.00
Komal  3850.00

示例 4

在下面的示例中,我们通过将工资乘以一个字符串来更新语句,这是一个无效的操作。此函数抛出TypeError异常,因为整数值不能乘以字符串。

sql_script = ''' UPDATE employees SET Salary = Salary * 'five' WHERE Salary > 5000;
SELECT Name, Salary FROM employees WHERE Salary > 4000;'''
try:
   cursor.executescript(sql_script)
except TypeError as e:
   print(f"TypeError: {e}")

输出

结果如下:

TypeError: can't multiply sequence by non-int of type 'str'
python_modules.htm
广告