从特定数据库检索表名称的 SQL 查询
数据库管理员和应用程序开发人员通常需要检索特定数据库中的表名称列表。 根据数据库系统(例如 MySQL、SQL Server、Oracle)的不同,该方法略有不同。 由于数据库模式结构的差异,单个、普遍兼容的查询是不可能的。
挑战:标准INFORMATION_SCHEMA
查询通常会从服务器上的所有数据库返回表,而不仅仅是所需的数据库。
解决方案:我们需要向查询添加特定于数据库的过滤器。
特定于数据库的查询:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'dbName'</code>
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbName'</code>
将 "dbName"
替换为目标数据库的实际名称。
对于 Oracle,INFORMATION_SCHEMA
方法有所不同。 要检索当前用户架构的表:
<code class="language-sql">SELECT TABLE_NAME FROM USER_TABLES</code>
指定不同的模式(需要适当的权限):
<code class="language-sql">SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER = '<schema_name>'</code>
将 <schema_name>
替换为架构所有者的名称。
此信息提供了用于检索表名称的适应性 SQL 解决方案,确保跨各种数据库平台的兼容性。请记住调整 dbName
或 schema_name
值以匹配您的环境。
以上是如何使用 SQL 从特定数据库中检索表名?的详细内容。更多信息请关注PHP中文网其他相关文章!