sql server数据库原理和应用(SQLServer:数据库模式SCHEMA)

本文将介绍什么是数据库模式Schema

在SQLServer等关系数据库管理系统(RDBMS)中,数据库包含各种对象。

这些可以是表(Table)、存储过程(StoredProcedure)、视图(View)和函数(Function)。在数据库中,模式(SCHEMA)是指数据库对象的逻辑集合。可以根据应用程序、访问权限和安全性使用模式(SCHEMA)来對对象分組。

SQL Server schemas

SQL Server提供以下内置逻辑模式:

dbo

sys

guest

INFORMATION_SCHEMA

每个SQLServer模式SCHEMA都必须有一个数据库用户作为架构所有者。模式所有者可以完全控制模式。还可以更改模式所有者或将对象从一个模式移动到另一个模式。

SQL Server 模式提供以下好处:

为管理逻辑组中的数据库对象提供更大的灵活性和控制力

允许您在不同模式之间快速移动对象

能够在模式级别管理对象安全性

允许用户管理数据库中的对象逻辑组

允许用户在各种架构之间转移所有权

假设对于公司的数据库,你希望根据部门对对象进行分组。例如,HR 部门的表和存储过程应该在[HR] 架构中进行逻辑分组。同样,财务部门表应该在 [Fin] 模式中。每个架构(逻辑组)都包含SQL Server 对象,例如表、存储过程、视图、函数、索引、类型和同义词。

sql server数据库原理和应用(SQLServer:数据库模式SCHEMA)(1)

员工数据库模式示例

注意:模式是数据库范围的实体。您可以在SQL Server 实例的不同数据库中拥有相同的模式。

默认情况下,SQL Server对数据库中的所有对象使用[dbo] 模式。我们可以查询SCHEMA_NAME() 来获取连接用户的默认模式。

SELECT SCHEMA_NAME() AS defaultschema;

sql server数据库原理和应用(SQLServer:数据库模式SCHEMA)(2)

实例查询

列出当前数据库中的所有数据库模式

您可以使用 SSMS 或 T-SQL 查询获取模式列表。要在 SSMS 中执行此操作,您将连接到 SQL实例,展开 SQL 数据库并查看安全文件夹下的架构。

sql server数据库原理和应用(SQLServer:数据库模式SCHEMA)(3)

更多模式

或者,您可以使用 sys.schemas获取数据库模式及其各自所有者的列表。

SELECT s.name AS schema_name,

u.name AS schema_owner

FROM sys.schemas s

INNER JOIN sys.sysusers u ON u.uid = s.principal_id

ORDER BY s.name;

使用 CREATE SCHEMA 创建 SQL Server 架构

要创建新的 SQL Server模式,我们使用 CREATE

SCHEMA 语句。它的语法如下所示。

CREATE SCHEMA

AUTHORIZATION

Schema_name:要创建的模式

AUTHORIZATION:模式所有者名称

使用 [dbo] 模式所有者创建模式 [HR]、[Admin] 和 [Fin] 的脚本如下所示。

CREATE SCHEMA HR AUTHORIZATION dbo;

Go

CREATE SCHEMA Admin AUTHORIZATION dbo;

Go

CREATE SCHEMA Fin AUTHORIZATION dbo;

GO

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。