最有用的SQL元查询

Mic*_*ens 6 mysql sql sql-server oracle

我有热情元的查询,我的意思是回答问题的查询有关数据,而不是回答数据.

在我得到许多合理的批评之前,我确实意识到元查询的方法并不理想,例如在这里雄辩地描述.不过,我相信他们确实有自己的位置.(以至于我创建了一个支持SQL Server,Oracle和MySql的参数化元查询的WinForms用户控件,并且我在Simple-Talk.com上发布的由三部分组成的系列中广泛描述了这个QueryPicker的设计和使用..)

我使用元查询的动机:

  1. 当我坐下来使用新数据库并希望了解它时,我会使用元查询进行探测.最常见的是那些让我回答有关字段和表格的问题的内容,例如"其他表中有哪些'xyz'字段?" 或"什么表有标识列?" 或者"这张桌子的钥匙是什么?"
  2. 我经常使用多种数据库类型(SQL Server,Oracle,MySql)和 - 练习懒惰的优秀编程理想 - 我不想每次需要时都要查找或记住一个神秘的SQL配方.我想指向并点击.

对于给定的数据库类型,当然还有其他(更好的?)方法来获取元信息.特别是SQL Server提供SQL Server Management Studio.Oracle和MySql工具似乎没有提供相同的用途.(我自由地承认,我用我的SQL-Server-lean-view of the universe来提出这个主张.:-)即使他们这样做了,也会有所不同 - 我希望跨数据库类型采用统一的方法.


最后,问题是:

觉得哪些SQL Server,Oracle或MySql元查询有用?


摘要矩阵

第一个视图总结了我迄今为止按照数据库类型收集的内容(正如我所说,对SQL Server的权重很大).

Query                            SQL Server    Oracle     MySql

DB Version                           yes        yes        yes
Databases with properties            yes                   yes
Databases with space usage           yes
National Language Support                       yes
Procedures and functions             yes                   yes
Primary keys                         yes                   yes
Primary to foreign keys              yes
Session Information/brief            yes
Session Information/details          yes
Session SET options                  yes
Users and Roles                      yes
Currently running statements         yes
Constraints                          yes
Indexes                              yes
Column info/brief                    yes        yes        yes
Column info/details                  yes        yes        yes
Object level details                 yes
Rows and space used                  yes
Row/column counts                    yes
Non-empty tables                     yes        yes        yes
Show table schema                    yes        yes
Seed/max values                      yes

按数据库类型引用

我自己开发了一些这些元查询,但很多来自社区论坛.第二个视图在适当的位置逐项列出源URL.

SQL Server

System Category
-----------------
    DB Version
    Databases with properties    http://www.mssqltips.com/tip.asp?tip=1033
    Databases with space usage   http://www.sqlservercentral.com/Forums/Topic261080-5-1.aspx
    Procedures and functions
    Primary keys                 http://databases.aspfaq.com/schema-tutorials/schema-how-do-i-show-all-the-primary-keys-in-a-database.html
    Primary to foreign keys      http://www.sqlservercentral.com/scripts/Miscellaneous/61481/
    Session Information/brief    http://www.sqlservercentral.com/blogs/glennberry/archive/2009/12/28/how-to-get-a-count-of-sql-connections-by-ip-address.aspx
    Session Information/details  http://www.mssqltips.com/tip.asp?tip=1817
    Session SET options
    Users and Roles              http://www.sqlservercentral.com/scripts/users/69379/
    Currently running statements http://www.sqlservercentral.com/articles/DMV/64425/
    Constraints
    Indexes                      http://www.sqlservercentral.com/scripts/Index+Management/63932/

Column Category
-----------------
    Column info/brief
    Column info/details

Table Category
-----------------
    Object level details
    Rows and space used          http://www.mssqltips.com/tip.asp?tip=1177
    Row/column counts
    Non-empty tables

DDL Category
-----------------
    Show table schema            http://www.sqlservercentral.com/scripts/Create+DDL+sql+statements/65863/

Data Category
-----------------
    Seed/max values

神谕

System Category
-----------------
    DB Version
    National Language Support

Column Category
-----------------
    Column info/brief
    Column info/details

Table Category
-----------------
    Non-empty tables

DDL Category
-----------------
    Show table schema

MySQL的

System Category
-----------------
    DB Version
    Databases
    Procedures and functions
    Primary keys                 http://databases.aspfaq.com/schema-tutorials/schema-how-do-i-show-all-the-primary-keys-in-a-database.html

Column Category
-----------------
    Column info/brief
    Column info/details

DDL Category
-----------------
    Show table schema

Jan*_*cki 1

Oracle SQL Developer 有一组包含这些类别的内置报告。我扩展了其中一个类别。

About Your Database
All Objects
Application Express
ASH and AWR
Database Administration
  All Tables
  Cursors
  Database Parameters
  Locks
  Memory
  Sessions
  Storage
  Top SQL
  Users
  Waits and Events
Data Dictionary
Jobs
PLSQL
Security
Streams
Table
XML
Run Code Online (Sandbox Code Playgroud)

这些是一些实际的报告名称,

Tables without Indexes
Tables without Primary Keys
Tables with Unindexed Foreign Keys
Largest Average Row Length
Most Rows
Unusable Indexes
Run Code Online (Sandbox Code Playgroud)

还有更多可用的报告。