cx_Oracle 增删改查

2023-12-29 09:31:52

修改

import cx_Oracle

# Oracle数据库连接详细信息
oracle_username = "你的用户名"
oracle_password = "你的密码"
oracle_host = "你的Oracle主机"
oracle_port = "你的Oracle端口"
oracle_service_name = "你的服务名"

dsn = cx_Oracle.makedsn(oracle_host, oracle_port, service_name=oracle_service_name)
connection = cx_Oracle.connect(oracle_username, oracle_password, dsn)

# 执行动态参数化的修改语句
sql_statement = "UPDATE your_table SET your_column1 = :value1, your_column2 = :value2 WHERE your_condition"

# 替换为你的实际新值和条件值
new_value1 = "new_value1"
new_value2 = "new_value2"
condition_value = "your_condition_value"

with connection.cursor() as cursor:
    # 使用多个参数绑定
    cursor.execute(sql_statement, value1=new_value1, value2=new_value2)

connection.commit()
connection.close()

在这个例子中,:value1:value2 是两个参数占位符,通过在 cursor.execute() 中传递对应的参数来替换这些占位符。

with as作用

cx_Oracle 的例子中,with 语句用于创建数据库连接 (cx_Oracle.connect) 和游标 (connection.cursor()),并在代码块结束时自动关闭这些资源。使用 with 语句,你不需要手动调用 close() 方法来关闭连接和游标,因为 with 语句会在离开代码块时自动执行清理工作。

查询

假设你有一个表格 employees,包含一个列 employee_name,你想进行模糊搜索,找到包含特定字符串的员工名字。

这个例子中,LIKE '%{search_string}%' 将匹配包含搜索字符串的任何部分的值。你可以根据需要调整查询语句,例如,可以在 % 前后添加更多的字符来实现不同的模糊搜索逻辑

import cx_Oracle

# 连接到数据库
connection = cx_Oracle.connect("your_username", "your_password", "your_dsn")

# 创建游标
cursor = connection.cursor()

# 执行模糊搜索
search_string = "John"  # 你要搜索的字符串
query = f"SELECT employee_name FROM employees WHERE employee_name LIKE '%{search_string}%'"

# 执行查询
cursor.execute(query)

# 获取结果
results = cursor.fetchall()

# 打印结果
for row in results:
    print(row[0])

# 关闭游标和连接
cursor.close()
connection.close()

新增

import cx_Oracle

# 连接到数据库
connection = cx_Oracle.connect("your_username", "your_password", "your_dsn")

# 创建游标
cursor = connection.cursor()

# 定义新增数据的 SQL 语句
insert_sql = "INSERT INTO employees (employee_id, employee_name) VALUES (:id, :name)"

# 定义要插入的数据
new_employee = {'id': 101, 'name': 'John Doe'}

# 执行新增操作
cursor.execute(insert_sql, new_employee)

# 提交事务
connection.commit()

# 关闭游标和连接
cursor.close()
connection.close()

删除

import cx_Oracle

# 连接到数据库
connection = cx_Oracle.connect("your_username", "your_password", "your_dsn")

# 创建游标
cursor = connection.cursor()

# 定义删除数据的 SQL 语句
delete_sql = "DELETE FROM employees WHERE employee_id = :id"

# 定义要删除的数据
employee_to_delete = {'id': 101}

# 执行删除操作
cursor.execute(delete_sql, employee_to_delete)

# 提交事务
connection.commit()

# 关闭游标和连接
cursor.close()
connection.close()

使用了参数绑定来保护代码免受 SQL 注入攻击。

------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天
?

文章来源:https://blog.csdn.net/weixin_43895362/article/details/135240641
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。