列出给定表的所有约束

需求描述

需求:查询出给定的表emp的相关的约束信息。

解决方法:通过各个数据库里提供的与约束相关的数据字典进行查询。

注: 数据库数据集SQL脚本详见如下链接地址

员工表结构和数据初始化SQL脚本

SQL代码

-- Sql Server:
SELECT B.name AS Constraint_Name,B.type,CASE B.type WHEN 'PK' THEN '主键'WHEN 'F' THEN '外键'WHEN 'D' THEN '默认值约束'WHEN 'C' THEN '检查约束' END AS ConstaintType_Desc,CASE B.type WHEN 'PK' THEN G.COLUMN_NAMEWHEN 'F' THEN  G.COLUMN_NAMEWHEN 'D' THEN E.nameWHEN 'C' THEN F.name END AS Column_name,CASE B.type WHEN 'PK' THEN NULLWHEN 'F' THEN NULLWHEN 'D' THEN C.definitionWHEN 'C' THEN D.definition END AS Define,B.create_date AS Create_Time,B.modify_date AS Modify_TimeFROM  sys.all_objects A JOIN sys.all_objects BON A.object_id = B.parent_object_idJOIN sys.default_constraints CON B.parent_object_id = B.parent_object_idJOIN sys.check_constraints DON B.parent_object_id = D.parent_object_idJOIN sys.all_columns EON E.object_id = C.parent_object_id AND C.parent_column_id = E.column_idJOIN sys.all_columns FON F.object_id = D.parent_object_id AND D.parent_column_id = F.column_id
LEFT JOIN information_schema.key_column_usage GON B.name = G.CONSTRAINT_NAME
WHERE A.NAME = 'EMP'

执行结果

注:

1 数据库对象类型这列为自己添加的备注。

2 sys.all_objects里的type的枚举类型有如下:

-- Mysql:
-- 注意mysql内并无同一视图可以满足上述需求。-- Oracle:
SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAMEAND A.TABLE_NAME = 'EMP'

数据库元数据数据字典查询_9_列出给定表的所有约束相关推荐

  1. 数据库元数据数据字典查询_8_列出给定表的默认约束

    列出给定表的默认约束 需求描述 需求:查询出给定的表emp的默认约束(default)信息. 解决方法:通过各个数据库里提供的与默认约束(default)相关的数据字典进行查询. 注: 数据库数据集S ...

  2. 数据库元数据数据字典查询_7_列出给定表的检查约束

    列出给定表的检查约束 需求描述 需求:查询出给定的表emp的检查约束(check)信息. 解决方法:通过各个数据库里提供的与检查约束(check)相关的数据字典进行查询. 注: 数据库数据集SQL脚本 ...

  3. 数据库元数据数据字典查询_6_列出给定表的外键引用

    列出给定表的外键引用 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结构 ...

  4. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

  5. 数据库元数据数据字典查询_4_列出给定表的索引信息

    列出给定表的索引信息 需求描述 需求:查询出给定的表emp的索引信息. 解决方法:通过各个数据库里提供的与索引相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结构和数据初 ...

  6. 数据库元数据数据字典查询_3_列出给定表的基本信息

    列出给定表的基本信息 需求描述 需求:查询出给定的表dept,emp,bonus,salgrade里的表名,字段名.字段类型.字段注释.表注释信息. 解决方法:通过各个数据库里提供的与数据库相关的数据 ...

  7. 数据库元数据数据字典查询_1_列出模式中所有的表

    列出模式中所有的表 需求描述 需求:查询给定模式下创建的所有表和创建时间. 解决方法:通过各个数据库里提供的系统视图查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结构和数据初始化SQL脚 ...

  8. 数据库元数据数据字典查询_10_列出数据库里的所有对象

    列出数据库里的所有对象 需求描述 需求:查询出给定的数据库里的所有对象的信息. 解决方法:通过各个数据库里提供的数据对象相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结 ...

  9. 数据库元数据数据字典查询_11_列出数据库里含有自增的字段

                               列出数据库里含有自增的字段 需求描述 需求:查询数据库里所有自增类型的字段 解决方法:通过数据字典里的字段is_identity来实现该需求. 注 ...

最新文章

  1. 【转载】老鸟程序员总结的这些小技巧
  2. nginx-lua-openresty-graphicsmagick 下载远程图片,本地缩图红缓存加水印
  3. layui中laydate兼容ie_layui菜鸟教程--乐字节前端
  4. 反转链表的golang实现
  5. 商城网站前期功能设置这几项绝不能少!
  6. vue设置ioc图标和title
  7. MyBatis的useGenerateKeys的使用方法
  8. python打印菱形星号代码_Python打印“菱形”星号代码
  9. Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践
  10. 天才基本法_《天才基本法》强推!年度神仙小说,看完这本书我竟然爱上了数学...
  11. 意外地调用了方法或属性访问
  12. LeetCode 第 199 场周赛(757/5231,前14.5%)
  13. python map lambda 分割字符串_[转] Python特殊语法:filter、map、reduce、lambda
  14. Object的构造函数方法
  15. dreamweaver 正则表达式为属性值加上双引号_IT兄弟连 HTML5教程 HTML5表单 新增的表单属性3...
  16. python中的pandas库如何读数据_Python之Pandas库学习(二):数据读写
  17. 文件打开模式r,w,a,r+,w+,a+的区别和联系
  18. 广义相对论与量子力学的根本矛盾是什么?
  19. 还能不能愉快地装完Win7了
  20. 学python编程能做什么项目_十个Python练手的实战项目,学会这些Python就基本没问题了...

热门文章

  1. boost::future相关的测试程序
  2. boost::stl_interfaces模块实现反向迭代器的测试程序
  3. boost::math::owens_t用法的测试程序
  4. boost::hana::make用法的测试程序
  5. boost::allocator_value_type的实例
  6. boost::convert模块实现默认转换器fail失败的测试程序
  7. Boost:bind绑定全局占位符的测试程序
  8. 基于Boost::beast模块的协程WebSocket 服务器
  9. DCMTK:OFerror_code的测试程序
  10. DCMTK:生成一个C ++标头,为DICOM标签定义符号名