数据库schema、catalog介绍 作者:马育民 • 2022-10-14 08:58 • 阅读:10073 # 介绍 按照SQL标准的解释,在SQL环境下 `Catalog` 和 `Schema` 都属于 **抽象概念**,可以把它们理解为一个 **容器** 或者 **数据库对象命名空间** 中的一个层次 主要用来 **解决命名冲突** 问题。 从概念上说,一个数据库系统包含多个 `Catalog` ,每个 `Catalog` 又包含多个 `Schema` ,而每个 `Schema` 又包含多个数据库对象(表、视图、字段等)。 反过来讲一个数据库对象必然属于一个 `Schema`,而该 `Schema` 又必然属于一个 `Catalog` ,这样我们就可以得到该数据库对象的 **完全限定名称**,解决命名冲突的问题 例如:数据库对象表的完全限定名称就可以表示为:`Catalog名称.Schema名称.表名称`。 ### 提示 好多时候,`Schema` 表示 表结构 ### 数据库支持 各数据库系统对 `Catalog` 和 `Schema` 的支持和实现,并不相同。 常用的方式: - 使用 **数据库名** 作为 `Catalog` 名 - 使用 **用户名** 作为 `Schema` 名 具体可参见下表: |供应商|Catalog支持|Schema支持| |---|---|---|---| |Oracle|不支持|Oracle User ID| |MySQL|不支持|数据库名| |MS SQL Server|数据库名|对象属主名,2005版开始有变| |DB2|指定数据库对象时,Catalog部分省略|Catalog属主名| 参考: http://t.zoukankan.com/ECNB-p-4611309.html 原文出处:http://malaoshi.top/show_1IX4E08CB0yC.html