模式是数据库中的逻辑分类命名对象的集合。
在数据库中,不能创建具有相同名称的多个数据库对象。要执行此操作,模式提供了一组环境。可以在数据库中创建多个模式,也可以创建多个同名的数据库对象,用不同的模式组。
模式可以包含表,函数,索引,表空间,过程,触发器等。例如,您可以创建命名为“Professional”和“Personal”为“employee”数据库中的两个不同的模式。它能够使两个不同的表具有相同名称的“employee”。在这种环境中,一个表具有专业的信息,而另一个具有雇员的个人信息。尽管有两个表具有相同的名称,他们有两个不同的模式“Personal”和“Professional”。因此,可以使用户不会遇到任何问题的工作。当有对表的命名约束,此功能非常有用。
让我们来看看相关模式的几个命令:
语法:
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>
例如:要创建“schema1”模式使用授权“db2inst2”]
db2 create schema schema1 authorization db2inst2
让我们创建具有相同名称的两个不同的表,但它们分别在两种不同的模式。在这里,将创建员工表有两个不同的模式,一个用于个人及其他专业信息。
步骤1:创建两个模式。
模式1:[要创建一个模式名为professional]
db2 create schema professional authorization db2inst2
模式1:[ 要创建一个模式名为personal ]
db2 create schema personal authorization db2inst2
第 2 步:创建两个表具有相同名称的员工详细信息
表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”,在两个不同的模式。