db2 schema是命名对象的集合,在数据库中进行逻辑分类。
schema 叫作架构,也叫模式。
在数据库中,无法创建具有相同名称的多个数据库对象。 为此,架构(schema)提供了一个组环境。
在数据库中创建多个模式,也可以在具有相同名称和不同模式组的多个数据库对象中创建多个模式。
模式可以包含表,函数,索引,表空间,过程,触发器等。
例如,employee
数据库创建两个名称为regular
和parttime
的模式。
还可以创建两个具有相同名称employee
的不同表,其中一个表存放常规信息,另一个表存放employee
的兼职信息。 它实际上没有两个具有相同名称的表,这是它们在两个不同的模式regular
和parttime
之下。
它可以方便用户使用它们而不会遇到任何问题。 当表的命名存在约束时,此功能非常有用。
模式的表示图 -
语法:
db2 values current schema
假设有一个数据库 - employee
,执行以下命令创建数据库:
$ db2start
$ db2 create database employee
$ db2 activate db employee
$ db2 connect to employee
输出结果如下:
举个例子来获取当前的数据库模式,使用以下命令获取和更改登录的当前模式:
db2 values current schema
输出结果如下:
语法:
db2 set schema <schemaname>
示例:
使用以下命令更改模式架构:
db2 set schema=changed_schema
执行上面命令,如下所示:
可以使用以下命令验证是否已成功更改模式架构:
db2 values current schema
语法:
db2 create schema <schema_name> authroization <inst_user>
示例:
创建一个具有不同授权用户id的新模式架构。 使用授权用户:h3
创建一个名称为new_schema
的模式架构。
db2 create schema new_schema authorization h3
创建两个具有相同名称但两个不同模式的不同表。 在这里,使用两个不同的模式创建employee
表,一个使用regular
模式,另一个使用parttime
模式。
第1步 :创建两个模式。
模式1:[创建名称为regular
的模式]
db2 create schema regular authorization db2inst1
模式2:[创建名称为parttime
的模式]
db2 create schema parttime authorization db2inst1
现在可以看到两个命令都已成功执行。
创建表1 -
db2 "create table regular.employee (id integer, name varchar(20), job varchar(20), join_date date, salary integer)"
创建表2 -
db2 "create table parttime.employee (id integer, name varchar(20), job varchar(20), join_date date, salary integer)"