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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!