SQL经典实例(五)元数据查询

列举模式中的表

Oracle

select table_name 
    from all_tables where owner = 'SCOTT';

clipboard.png

MySQL

select table_name
    from information_schema.tables
  where table_schema = 'mysql';

列举字段

Oracle

select column_name, data_type, column_id
    from all_tab_columns
where owner = 'SCOTT' and table_name = 'EMP';

clipboard.png

MySQL

select column_name, data_type, ordinal_position
    from information_schema.columns
where table_schema = 'mysql'
    and table_name = 'emp';

clipboard.png

列举索引列

Oracle

select table_name, index_name, column_name, column_position
    from sys.all_ind_columns 
  where table_name = 'EMP'
    and table_owner = 'SCOTT';

clipboard.png

MySQL

show index from emp;

clipboard.png

列举约束

Oracle

select a.table_name,
       a.constraint_name,
       b.column_name,
       a.constraint_type
  from all_constraints a,
       all_cons_columns b
 where a.table_name = 'EMP'
   and a.owner = 'SCOTT'
   and a.table_name = b.table_name
   and a.owner = b.owner
   and a.constraint_name = b.constraint_name;

clipboard.png

MySQL

select a.table_name,
       a.constraint_name,
       b.column_name,
       a.constraint_type
  from information_schema.table_constraints a,
       information_schema.key_column_usage b
 where a.table_name = 'emp'
   and a.table_schema = 'mysql'
   and a.table_name = b.table_name
   and a.table_schema = b.table_schema
   and a.constraint_name = b.constraint_name;

clipboard.png

列举非索引外键

列出含有非索引外键的表。例如,希望确认emp表的外键是否加入了索引:
Oracle

select a.table_name,
       a.constraint_name,
       a.column_name,
       c.index_name
  from all_cons_columns a,
       all_constraints b,
       all_ind_columns c
 where a.table_name = 'EMP'
   and a.owner = 'SCOTT'
   and b.constraint_type = 'R'
   and a.owner = b.owner
   and a.table_name = b.table_name
   and a.constraint_name = b.constraint_name
   and a.owner = c.table_owner(+)
   and a.table_name = c.table_name (+)
   and a.column_name = c.column_name (+)
   and c.index_name is null;

clipboard.png

描述Oracle数据字典视图

查询dictionary视图,并列出数据字典视图及其目的:

select table_name, comments
    from dictionary
order by table_name;

clipboard.png

查询dict_columns并找出某个数据字典视图的各列含义:

select column_name, comments
    from dict_columns
where table_name = 'ALL_TAB_COLUMNS';

clipboard.png

《SQL经典实例》第五章
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值