DB2 模式 Schema
本章介绍并描述了Schema的概念。
简介
模式是在数据库中按逻辑分类的命名对象的集合。
在一个数据库中,不能创建多个具有相同名称的数据库对象。 为此,模式提供了一个组环境。 我们可以在数据库中创建多个模式,也可以创建多个具有相同名称但具有不同模式组的数据库对象。
模式可以包含表、函数、索引、表空间、过程、触发器等。例如,我们为 employee
数据库创建了两个不同的模式,分别命名为“Professional”和“Personal”。 可以创建两个具有相同名称“Employee”的不同表。 在此环境中,一张表包含专业信息,另一张表包含员工的个人信息。 尽管有两个同名的表,但它们有两个不同的模式“Personal”和“Professional”。 因此,用户可以同时使用两者而不会遇到任何问题。 当对表的命名有限制时,此功能很有用。
让我们看一些与 Schema 相关的命令:
获取当前活动的模式
语法
db2 get schema
示例
获取当前数据库模式
db2 get schema
将另一个模式设置为当前环境
语法
db2 set schema=<schema_name>
示例
将“schema1”安排到当前实例环境
db2 set schema=schema1
创建新模式
语法
使用授权用户 ID 创建新模式
db2 create schema <schema_name> authroization <inst_user>
示例
创建由“db2inst2”授权的“schema1”模式
db2 create schema schema1 authorization db2inst2
练习
让我们创建两个具有相同名称但两个不同模式的不同表。 在这里,我们使用两种不同的模式创建 employee 表,一种用于个人信息,另一种用于专业信息。
第一步:创建两个模式。
模式 1
创建名为 professional
的模式
db2 create schema professional authorization db2inst2
模式 2
创建名为 personal
的模式
db2 create schema personal authorization db2inst2
第二步:为 Employee
details创建两个同名的表
表 1: professional.employee
使用模式名称“professional”在数据库中创建一个新表“employee”
db2 create table professional.employee(id number, name
varchar(20), profession varchar(20), join_date date,
salary number);
表 2:personal.employee
在同一个数据库中创建一个新表“employee”,模式名称为“personal”
db2 create table personal.employee(id number, name
varchar(20), d_birth date, phone bigint, address
varchar(200));
执行这些步骤后,我们将获得两个具有相同名称“employee”的表,它们具有两个不同的模式。