第二周技术博客
一. 安装环境要求
1.前期准备
- 硬件环境:架构、CPU、网络环境、端口等
- 软件环境:操作系统版本、数据库版本标识
- 参数确认:字符集、大小写是否敏感、页大小、兼容性等
2.环境检查及修改
-
操作系统时间检查
-
安全软件防护
-
关闭SELinux
-
防火墙检查
-
检查网络
-
磁盘检查
-
关闭swap
-
调整sysctl.cof参数
是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效
命令:[root@dm~]#vim/etc/sysctl.conf
修改vm.overcommit_memory=0,然后执行sysctl-p使配置文件生效
-
调整limits.conf参数
命令:[root@~]#vi/etc/security/limits.conf
输入:dmdba hard nofile 65536 dmdba soft nofile 65536 dmdba hard stack 32768 dmdba soft stack 16384
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba
ulimit -a
-
调整system.conf参数
命令:[root@dm~]#vim/etc/systemd/system.conf
添加配置:DefaultLimitNOFILE=65536 DefaultLimitNPROC=10240
-
调整nproc.conf参数
nproc是操作系统级别对每个用户创建的进程数的限制。文件路径为/etc/security/limits.d
命令:[root@dm~]#vi/etc/security/limits.d/nproc.conf
添加配置:dmdba soft nproc 65536
dmdba hard nproc 65536
-
调整profile参数
此文件涉及系统的环境,即环境变量相关。
su-dmdba vi.bash_profile
export DM_HOME=“/dm8”
export LD_LIBRARY_PATH=“$LD_LIBRARY_PATH:/dm8/bin”
export PATH= P A T H : PATH: PATH:DM_HOME/bin:$DM_HOME/tool
保存文件后执行source.bash_profile生效
3.安装准备
1. 创建数据库用户
1)数据库运行依赖该用户。
2)普通用户不能修改系统关键配置文件,查看其他用户的文件则需要相应的权限,关机指令都需要以root身份执行。防止使用root权限过大导致误操作及一些纠纷。
创建用户所在的组组(并指定用户 ID 和组 ID),命令如下:
groupadd -g 12349 dinstall
创建用户,命令如下:
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改用户密码,命令如下:
passwd dmdba
2.挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt
3.新建安装目录
在根目录下创建 /dm8 文件夹,用来安装 DM 数据库。命令如下:
mkdir /dm8
4.修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown dmdba:dinstall -R /dm8/
给安装路径下的文件设置 755 权限。命令如下:
chmod -R 755 /dm8
二.dminit详解
1.简介
dminit 是 DM 数据库初始化工具。在安装 DM 的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dminit 来创建。dminit 工具需要从命令行启动。找到 dminit 所在安装目录/bin,输入 dminit 和参数后回车。
2.使用语法
dminit 的使用语法如下:
/.dminit KEYWORD=value {KEYWORD=value}
KEYWORD为 dminit 的参数关键字,value为参数的取值。多个参数之间排列顺序无影响,参数之间使用空格间隔。
例 初始化一个数据库,放在/home/test/dmdbms 目录下,数据页 PAGE_SIZE 大小为 16K。
./dminit PATH=/home/test/dmdbms PAGE_SIZE=16
3.查看参数
可使用“dminit HELP”快速查看 dminit 版本信息和各参数信息。命令:./dminit HELP
4.常用参数
-
PATH
初始数据库存放的路径。默认路径为 dminit.exe 当前所在的工作目录。文件路径长度最大为 256 个字符。可选参数。
-
LOG_PATH
初始数据库日志文件的路径。默认值 Windows 下为 PATH\DB_NAME\DB_NAME01.log 和 PATH\DB_NAME\DB_NAME02.log,Linux下为PATH/DB_NAME/DB_NAME01.log和 PATH/DB_NAME/DB_NAME02.log(PATH 和 DB_NAME 表示各自设置的值)。文件路径长度最大为256个字符。日志文件路径个数不能超过10个。可选参数。
可以在运行时使用 ALTER DATABASE 修改数据库语句增加日志文件或对日志文件进行重命名。可通过查询 V$RLOGFILE 的 PATH 列查看当前系统各日志文件的路径。
-
PAGE_SIZE
数据文件使用的页大小。取值:4、8、16、32,单位:K。默认值为 8。可选参数。 选择的页大小越大,则支持的元组长度也越大,但同时空间利用率可能下降。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。
-
EXTENT_SIZE
数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值:16、32、64。 单位:页数。缺省值 16。可选参数。
-
LOG_SIZE
重做日志文件大小。取值范围为 64~2048 之间的整数,单位 MB。缺省值为 256。可选参数。每个 DM 数据库实例至少有两个重做日志文件,循环使用,LOG_SIZE 设置每个重做日志文件的大小。
-
CASE_SENSITIVE
标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。取值范围:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。
-
CHARSET
字符集选项。取值范围 0、1、2。0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集EUC-KR。缺省值为 0。可选参数
-
DB_NAME
初始化数据库名称,缺省值为 DAMENG。名称为字符串,长度不能超过 128 个字符。可选参数。数据库名称只能由_、$、大写字母 A 至 Z、小写字母 a 至 z、数字 0 至 9 组成,且第一个字符不能是数字。
-
INSTANCE_NAME
初始化数据库实例名称,缺省值为 DMSERVER。名称为字符串,长度不能超过 16 个字符。可选参数。实例名称只能由_、$、大写字母 A 至 Z、小写字母 a 至 z、数字 0 至 9 组成,且第一个字符不能是数字。
-
PORT_NUM
初始化时设置 dm.ini 中的数据库服务器监听端口号,缺省值为 5236。 服务器配置此参数,取值范围 1024~65534,发起连接端的端口在 1024~65535 之间随机分配。可选参数。
三.数据库操作
1.创建数据库
1)使用数据库配置工具创建数据库
数据库配置工具提供了一个图形化界面来引导用户创建和配置数据库,可以通过 DM 支持的模板或用户自定义的模板来创建数据库。在数据库配置工具操作窗口中,选择“创建数据库”选项启动能够创建和配置一个数据库的向导,用户按照需求进行创建。
2)使用 dminit 创建数据库
2.启动和关闭数据库
1.Windows系统
1)菜单方式
在 Windows 的开始菜单选项中选择 DM 服务查看器可以启动 DM 数据库。点击 DM 服务查看器选项后,在弹出界面中选中所要启动的数据库,点击鼠标右键,在菜单栏中选择启动。关闭同理。
2)Windows 服务方式
安装 DM 数据库并且新建一个 DM 实例后,Windows 的服务中会自动增加一项和该实例名对应的服务。打开 Windows 的管理工具,选择“服务”,打开 Windows 服务控制台,选择对应的数据库实例服务用鼠标,在工具栏点击启动按钮或者点击鼠标右键,在菜单栏中选择“启动”,启动 DM 数据库。关闭同理。
3)命令行方式
进入 DM 安装目录下的 bin 目录,直接打开应用程序 dmserver 就可以启动 DM 数据库。或者先打开 Windows 命令提示符工具,在命令工具中执行命令进入 DM 服务器的目录,再执行 dmserver 的命令启动 DM 数据库。
命令行方式启动参数如下:
dmserver.exe [[path=]]ini_file_path][dcr_ini=dcr_path][-noconsole]
[mount][dpc_mode=mode][upd_lic=value]
参数说明:
ini_file_path:dm.ini 绝对路径。缺省为 dmserver 当前目录的 dm.ini;
dcr_ini:如果使用 css 集群环境,指定 dmdcr.ini 文件路径;
-noconsole:以服务方式启动。如果以此方式启动,则无法通过在控制台中输入服务器命令; mount:以 MOUNT 配置状态启动; dpc_mode:指定 DPC 中的实例角色,缺省为 0。0:无、1:MP、2:BP、3:SP,取值 1/2/3 时也可以用 MP/BP/SP 代替; upd_lic:是否升级服务器安全版本信息。0 否、1 是。缺省为 0。
启动 dmserver 时,可指定 dm.ini 文件的路径、非控制台方式启动、指定数据库是否以 MOUNT 状态启动等启动参数。dmserver 启动时也可不指定任何参数,缺省使用当前目录下的 dm.ini 文件,如果当前目录不存在 dm.ini 文件,则无法启动。
在启动数据库的命令工具中输入 exit,然后回车,关闭 DM 数据库。
2.Linux系统
1)菜单方式
安装 DM 数据库后,在 Linux 的开始菜单选项中选择启动服务器菜单项可以启动和关闭 DM 数据库。启动方式类似 Windows。
2)Linux服务方式
安装 DM 数据库后,在/etc/rc.d/init.d 中有名称为 DmService 开头的文件,文件全名为 DmService+实例名。 在 终端输入./DmService实例名 start 或者 service DmService实例名 start 即可启动 DM 数据库。在命令行工具中输入./DmService实例名 stop 即可关闭 DM 数据库。
3)命令行方式
在终端进入 DM 安装目录下的 bin 目录,执行./dmserver 启动 DM 数据库,参数选项同 Windows。在启动数据库的命令工具中输入 exit,然后回车,退出 DM 数据库。
四.重要概念及使用
1.表
表是数据库中数据存储的基本单元,是对用户数据进行读和操纵的逻辑实体。表由列和行组成,每一行代表一个单独的记录。表中包含一组固定的列,表中的列描述该表所跟踪的实体的属性,每个列都有一个名字及各自的特性。
1.管理表
- 规范设计表:数据类型、约束、索引、表的类型
- SPACE LIMIT 指定表的存储空间上限
- STORAGE 指定表的存储位置
2.创建表
如果要在所属模式中创建新表,需要有 CREATE TABLE 数据库权限;而要在其他用户的模式中创建新表,则需要有 CREATE ANY TABLE 数据库权限。创建表时,应当为表指定一个表空间,否则,表将在 MAIN 创建。
聚集索引
每一个普通表都有一个聚集索引,数据通过聚集索引键排序,根据聚集索引键可以快速查询任何记录。当建表语句未指定聚集索引键,DM 的默认聚集索引键是 ROWID,即记录默认以 ROWID在页面中排序。ROWID 是 B 树为记录生成的逻辑递增序号,表上不同记录的 ROWID 是不一样的,并且最新插入的记录 ROWID 最大。DM 提供三种方式供用户指定聚集索引键:
- CLUSTER PRIMARY KEY:指定列为聚集索引键,并同时指定为主键,称为聚集主键;
- CLUSTER KEY:指定列为聚集索引键,但是是非唯一的;
- CLUSTER UNIQUE KEY:指定列为聚集索引键,并且是唯一的。
填充因子
指定表的填充因子,即指定聚集索引的填充因子。索引的填充因子指在新建和重组索引时,页面记录存储空间占页面总大小的百分比。当填充因子取值低,则需要更多的页来存储数据,因而读取范围大,会影响性能。而当填充因子取值高,则在更新数据时可能造成大量的页拆分,页拆分需要消耗较多 CPU 和 I/O资源,同样会影响性能。原则上,在只读表上应该设置填充因子高,而有大量更新的表上应该设置较低的值。默认情况下,DM 新建的表和索引的填充因子是 100,可根据实际情况设置合适的填充因子大小。
查询建表
为了创建一个与已有表相同的新表,或者为了创建一个只包含另一个表的一些行和列的新表,可以使用 CREATE TABLE AS SELECT(CTAS)命令。使用该命令,可以通过使用 WHERE条件将已有表中的一部分数据装载到一个新表中,或者可以通过 SELECT * FROM 子句将已有表的所有数据装载到创建的表中。
临时表
DM 允许创建临时表来保存会话甚至事务中的数据。在会话或事务结束时,这些表上的数据将会被自动清除。在临时表创建过程中,不会像永久表和索引那样自动分配数据段,而是仅当第一次执行 DML 语句时,才会为临时表在临时表空间中分配空间。并且,对于不同的会话,临时表上的数据是独享的,不会互相干扰,即会话 A 不能访问会话 B 临时表上的数据。DM 临时表支持以下功能:
- 在临时表中,会话可以像普通永久表一样更新、插入和删除数据;
- 临时表的 DML 操作产生较少的 REDO 日志;
- 临时表支持建索引,以提高查询性能;
- 在一个会话或事务结束后,数据将自动从临时表中删除;
- 不同用户可以访问相同的临时表,每个用户只能看到自己的数据;
- 临时表的数据量很少,意味着更高效的查询效率;
- 临时表的表结构在数据删除后仍然存在,便于以后的使用;
- 临时表的权限管理跟普通表一致。
临时表 ON COMMIT 关键词指定表中的数据是事务级还是会话级的,默认情况下是事务级的。
ON COMMIT DELETE ROWS:指定临时表是事务级的,每次事务提交或回滚之后,表中所有数据都被删除;
ON COMMIT PRESERVE ROWS:指定临时表是会话级的,会话结束时才清空表,并释放临时 B 树。
3.更改表
想更改的表如果在所属的模式中,用户必须具有 ALTER TABLE 数据库权限;若在其他模式中,用户必须有 ALTER ANY TABLE 的数据库权限。
4.清空表
DM8 支持以下方式来删除表中的所有的行:
- 使用 DELETE 语句;
- 使用 DROP 和 CREATE 语句;
- 使用 TRUNCATE 语句。
使用 DELETE 语句能删除表中的行,当表有很多行时,会消耗很多系统资源。因为,DELETE操作需要 CPU 时间,并且会产生大量的 REDO 日志和 UNDO 记录。另外,如果表上关联了元组级触发器,每删除一行,就会启动一次触发器。这都需要大量的系统资源。
使用 DROP 删除一个表,然后创建一个同名的表,也可以达到清空表的效果。
TRUNCATE 语句为我们提供了一种快速、有效地删除表所有行的方法。并且 TRUNCATE 是一个 DDL 语句,不会产生任何回滚信息。执行 TRUNCATE 会立即提交,而且不能回滚。TRUNCATE 语句并不影响与被删除的表相关联的任何结构、约束、触发器或者授权。 另外,DM 数据库 TRUNCATE 表后,原来分配给该表的空间会被释放,供其他数据库对象使用,大大提高空间的利用效率。 一般情况下,普通用户只能 TRUNCATE 自己模式下的表。若要 TRUNCATE 其他模式下的表,则必须具有 DROP ANY TABLE 数据库权限。如果要清空的表被其他表引用,即其他表的外键引用了表的任何主键或唯一键,并且子表不为空或子表的外键约束未被禁用,则不能 TRUNCATE 该表。
5.查看表
创建表后,可以通过 SP_TABLEDEF 系统过程查看表的定义。
CALL SP_TABLEDEF(‘SYSDBA’, ‘EMPLOYEE’);
2.索引
索引是为了快速检索和定位数据行而创建的一种数据结构。索引是由表中索引列数据进行排序后的集合和指向这些值的物理标识(ROWID 等聚集索引键)共同组成。在 DM中,除了位图索引、位图连接索引、全文索引和空间索引外,索引数据都采用 B+树结构进行存储,其余地方都简称为 B 树,索引和表一样需要存储空间。
1.索引分类
从物理存储角度进行分类,可分为聚集索引和非聚集索引。
- 聚集索引(又称为一级索引、主索引):聚集索引就是按照聚集索引键构造一棵 B树,表数据存储在 B 树叶子节点上,通过定位索引可直接在 B 树中找到数据。每一个表有且只有一个聚集索引。
- 非聚集索引(又称为二级索引、辅助索引):将二级索引列和聚集索引列共同存储在 B 树叶子节点上。如果查找非聚集索引键值或聚集索引键值可直接在 B 树中找到;如果查找索引键值以外的数据,需要回到一级索引中进行查找。每一个表可以有多个非聚集索引。
从索引功能角度进行分类,可分为唯一索引、函数索引、位图索引、位图连接索引、全文索引、空间索引、数组索引、普通索引。
-
唯一索引:索引数据根据索引键唯一;
-
函数索引:包含函数/表达式的预先计算的值;
-
位图索引:对低基数的列创建位图索引;
-
位图连接索引:针对两个或者多个表连接的位图索引,主要用于数据仓库中;
-
全文索引:在表的文本列上而建的索引;
-
空间索引:在空间数据上创建的索引,专用于 DMGEO 包中;
-
数组索引:在一个只包含单个数组成员的对象列上创建的索引;
-
普通索引:除以上外均为普通索引。
从虚实角度进行分类,可分为虚索引和实索引。
- 虚索引:创建 PRIMARY KEY 主键约束或 UNIQUE 唯一约束时,系统会自动创建一个相关的唯一索引。因为不需要用户创建,因此称为虚索引。
- 实索引:虚索引以外的索引均为实索引。
从索引键值的个数进行分类,可分为单列索引和复合索引。
- 单列索引:只有一个索引键的索引。
- 复合索引:含有多个索引键的索引。
从分区的角度进行分类,可分为全局索引和局部索引。全局索引和局部索引均为二级索引,专门用于水平分区表中。
全局索引:全局索引是以整张表的数据为对象而建立的索引。指定 GLOBAL 关键字创建的索引即为全局索引。创建全局索引时,会在水平分区表的主表上创建全局索引和在每个子表上创建全局本地索引。索引数据存储在全局索引上。全局本地索引的命名规则为:INDEX+全局本地索引 ID_全局索引 ID。全局索引具体分为两种:全局非分区索引和全局分区索引。指定了<PARTITION 子句>的索引即为分区索引。只有 DMDPC 功能支持分区索引。以下是全局非分区索引结构和全局分区索引结构。
局部索引:局部索引是在分区表的每个分区上创建的索引。
局部索引暂时不支持分区。创建局部索引时,会在水平分区表的主表上创建局部索引和在每个子表上创建一个子表局部索引。索引数据存储在子表局部索引上。子表局部索引的命名规则为:INDEX+子表局部索引 ID_局部索引 ID。
2.索引管理
使用下面的准则来决定何时创建索引:
-
如果需要经常地检索大表中的少量的行,就为查询键创建索引;
-
为了改善多个表的连接的性能,可为连接列创建索引;
-
主键和唯一键自动具有索引,在外键上很多情况下也创建索引;
-
小表不需要索引。
选取表中的索引列时可以考虑以下几点:
- 列中的值相对比较唯一 ;
- 取值范围大,适合建立索引;
- CLOB 和 TEXT 只能建立全文索引、BLOB 不能建立任何索引。
通常,将最常用的列放在最前面。如果查询中有多个字段组合定位,则不应为每个字段单独创建索引,而应该创建一个组合索引。当两个或多个字段都是等值查询时,组合索引中各个列的前后关系是无关紧要的。但是如果是非等值查询时,要想有效利用组合索引,则应该按等值字段在前,非等值字段在后的原则创建组合索引,查询时只能利用一个非等值的字段。
3.创建索引
可以用 CREATE INDEX 语句显式地创建索引。
聚集索引
当建表语句未指定聚集索引键时,DM8 的默认聚集索引键是 ROWID。DM8 也可以用创建新聚集索引的方式来重建表数据,并按新的聚集索引排序。新建聚集索引会重建这个表以及其所有索引,包括二级索引、函数索引,是一个代价非常大的操作。因此,最好在建表时就确定聚集索引键,或在表中数据比较少时新建聚集索引,而尽量不要对数据量非常大的表建立聚集索引。例子:
CREATE CLUSTER INDEX clu_emp_name ON emp(ename);
唯一索引
唯一索引可以保证表上不会有两行数据在键列上具有相同的值,可用 CREATE UNIQUE INDEX 语句来创建唯一索引。
基于函数的索引
基于函数的索引促进了限定函数或表达式的返回值的查询,该函数或表达式的值被预先计算出来并存储在索引中。例:
CREATE INDEX idx ON example_tab(column_a + column_b); SELECT * FROM example_tab WHERE column_a + column_b < 10;
该索引是建立在 column_a + column_b 之上的,所以优化器可以为该查询使用范围扫描。优化器根据该索引计算查询代价,如果代价最少,优化器就会选择该函数索引,column_a + column_b 就不会重复计算。
位图索引
位图索引主要针对含有大量相同值的列而创建。位图索引被广泛引用到数据仓库中,创建方式和普通索引一致,对低基数(不同的值很少)的列创建位图索引,能够有效提高基于该列的查询效率。且执行查询语句的 where 子句中带有 AND 和 OR 谓词时,效率更加明显。
CREATE BITMAP INDEX S1 ON PURCHASING.VENDOR (VENDORID);
位图连接索引
位图连接索引是一种提高通过连接实现海量数据查询效率的有效方式,主要用于数据仓库环境中。位图连接索引是针对两个或者多个表的连接而建立的位图索引,同时保存了连接的位图结果。对于索引列中的每一个值,位图连接索引在索引表中保存了对应行的 ROWID。
create bitmap index SALES_CUSTOMER_NAME_IDX
on SALES.SALESORDER_HEADER(SALES.CUSTOMER.PERSONID)
from SALES.CUSTOMER, SALES.SALESORDER_HEADER
where SALES.CUSTOMER.CUSTOMERID = SALES.SALESORDER_HEADER.CUSTOMERID;
4.重建索引
可以使用重建索引来对索引的数据进行重组,使数据更加紧凑,并释放不需要的空间,从而提高访问效率和空间效率。DM8 提供的重建索引的系统函数为:
SP_REBUILD_INDEX(SCHEMA_NAME varchar(256), INDEX_ID int);
SCHEAM_NAME 为索引所在的模式名,INDEX_ID 为索引 ID。
5.查看索引
创建索引后,可以通过 INDEXDEF 系统函数查看索引的定义。
INDEXDEF(INDEX_ID int, PREFLAG int);
INDEX_ID 为索引 ID,PREFLAG 表示返回信息中是否增加模式名前缀。
3.视图
从系统实现的角度讲,视图是从一个或几个基表(或视图)导出的表,但它是一个虚表,即数据字典中只存放视图的定义(由视图名和查询语句组成),而不存放对应的数据,这些数据仍存放在原来的基表中。从用户的角度来讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据和变化。当用户所需的数据是一张表的部分列、或部分行,或者数据是分散在多个表中,那么就可以创建视图来将这些满足条件的行和列组织到一个表,而不需要修改表的属性、甚至创建新的表。这样不仅简化了用户的操作,还可以提高数据的逻辑独立性,实现数据的共享和保密。
4.模式
用户的模式(SCHEMA)指的是用户账号拥有的对象集,在概念上可将其看作是包含表、视图、索引和权限定义的对象。系统为每一个用户自动建立了一个与用户名同名的模式作为其默认模式,用户还可以用模式定义语句建立其它模式。
在引用模式对象的时候,一般要在模式对象名前面加上模式名。当然,在当前模式和要引用的模式对象所属的模式相同时,可以省略模式名。具体格式如下:
[模式名].对象名
使用 CREATE SCHEMA 语句就可以创建一个空的模式对象,也可以在创建模式时,同时创建多个模式对象。
要重命名一个模式对象,那么这个模式对象必须在指定的模式里面。用户可以采用下面几种方式来重命名模式对象:
- 删除原有的模式对象,重新创建;
需的数据是一张表的部分列、或部分行,或者数据是分散在多个表中,那么就可以创建视图来将这些满足条件的行和列组织到一个表,而不需要修改表的属性、甚至创建新的表。这样不仅简化了用户的操作,还可以提高数据的逻辑独立性,实现数据的共享和保密。
4.模式
用户的模式(SCHEMA)指的是用户账号拥有的对象集,在概念上可将其看作是包含表、视图、索引和权限定义的对象。系统为每一个用户自动建立了一个与用户名同名的模式作为其默认模式,用户还可以用模式定义语句建立其它模式。
在引用模式对象的时候,一般要在模式对象名前面加上模式名。当然,在当前模式和要引用的模式对象所属的模式相同时,可以省略模式名。具体格式如下:
[模式名].对象名
使用 CREATE SCHEMA 语句就可以创建一个空的模式对象,也可以在创建模式时,同时创建多个模式对象。
要重命名一个模式对象,那么这个模式对象必须在指定的模式里面。用户可以采用下面几种方式来重命名模式对象:
- 删除原有的模式对象,重新创建;
- 使用 ALTER … RENAME 语句(TABLE)。
达梦社区地址:https://eco.dameng.com