python - 如何在 Oracle 中的特定(主)键值之后获取数据?
问题描述
我正在研究以下代码。我相信可能会有一个查询来做到这一点。
dsn_tns = cx_Oracle.makedsn(database_host, database_port, database_service)
connection = cx_Oracle.connect(database_username, database_password, dsn_tns, cx_Oracle.SYSDBA)
print("Database connected")
cursor = connection.cursor()
cursor.execute("SELECT * FROM " + database_table)
records = cursor.fetchall()
任何人有任何改进的想法吗?
解决方案
是的。您可以使用这样的查询
SELECT * FROM tbl WHERE pk >= some_value;
表上的主键由索引备份,因此在该 WHERE 子句中指定的搜索和过滤作业是有效的。数据库找到满足条件的第一行,然后依次读取其余行。这称为索引范围扫描。
专业提示:避免使用 ,SELECT *
而是使用SELECT col, col2, col3
,给出您实际需要的表格列的名称。它节省了数据库服务器上的工作,并使您的查询对表中可能的未来更改更具弹性。
推荐阅读
- java - 需要使用反射和注释从父类构造函数实例化子类成员
- java - com.querydsl.core.Tuple 的 ClassCastException
- python-3.x - 将单行数据输出到 csv 文件
- c# - 多个 ViewModel 之间的 WPF 通信
- angular - 如何实例化需要依赖注入的类
- javascript - 单击输入字段时,如何在 html input type='date' 中获取日期选择器
- r - R:基于中位数的年度复合栅格:如何获取每个像素的原始图层的索引?
- c++ - 如何使用 uWebSockets 主动向客户端推送数据?
- javascript - 窗口调整大小时元素的动态宽度计算
- reactjs - 错误:React Native 无法加载包