06.达梦数据库模式对象的基本操作

本文详细介绍了达梦数据库中模式对象的基本操作,包括创建和管理表、视图、索引、触发器、序列以及同义词。强调了这些对象在数据库中的作用和使用方法,例如,视图提供数据的虚拟表,索引提升查询效率,触发器实现数据的自动响应,序列用于生成唯一标识,同义词则提供了对象访问的便捷性。此外,还提及了各类对象的创建、修改和删除语句,帮助用户更好地理解和操作达梦数据库。
摘要由CSDN通过智能技术生成

目录

DM 模式对象的基本操作... 1

1 创建模式及表... 1

2 视图... 2

3 索引... 3

4 触发器... 4

5 序列... 5

6 同义词... 6

DM 模式对象的基本操作

主要包括:表、 视图、 索引、 触发器、 序列、 同义词等



1 创建模式及表

create user schematest identified by schematest23;

SQL>

grant dba to schematest;

conn schematest/schematest23;

--创建模式

CREATE SCHEMA RESOURCESA AUTHORIZATION schematest;

/

CREATE SCHEMA PERSONA AUTHORIZATION schematest;

/

CREATE SCHEMA SALESA AUTHORIZATION schematest;

/

CREATE SCHEMA PRODUCTIONA AUTHORIZATION schematest;

/

CREATE SCHEMA PURCHASINGA AUTHORIZATION schematest;

/

CREATE SCHEMA OTHERS AUTHORIZATION schematest;

/

--创建表

--CREATE ADDRESS(存到默认表空间)

CREATE TABLE PERSONA.ADDRESS(ADDRESSID INT IDENTITY(1,1) PRIMARY KEY,

                            ADDRESS1 VARCHAR(60) NOT NULL,

                            ADDRESS2 VARCHAR(60),

                            CITY VARCHAR(30) NOT NULL,

                            POSTALCODE VARCHAR(15) NOT NULL);

                           

--CREATE PERSON(存到指定表空间)                     

CREATE TABLE PERSONA.PERSON

(

PERSONID INT IDENTITY(1,1) CLUSTER PRIMARY KEY,

SEX CHAR(1) NOT NULL,

NAME VARCHAR(50) NOT NULL,

EMAIL VARCHAR(50),

PHONE VARCHAR(25)) STORAGE (ON DTSTEST);



2 视图

视图是从一个或几个基表(或视图)导出的表,它是一个虚表, 即数据字典中只存放视图的定义(由视图名和查询语句组成),而不存放对应的数据,这些数据仍存放在原来的基表中。

ps:

物化视图:

物化视图是从一个或几个基表导出的表,同视图相比,它存储了导出表的真实数据。当基表中的数据发生变化时,物化视图所存储的数据将变得陈旧,用户可以通过手动刷新或自动刷新来对数据进行同步。

创建:

 

删除:

编译:

一个视图依赖于其基表或视图,如果基表定义发生改变,如增删一列,或者视图的相关权限发生改变,可能导致视图无法使用。在这种情况下,可对视图重新编译,检查视图的合法性。



3 索引

为了提高系统的查询效率, DM 系统提供了索引。 但也需要注意,索引会降低那些影响索引列值的命令的执行效率,如 INSERTUPDATEDELETE 的性能,因为 DM 不但要维护基表数据还要维护索引数据。
语法格式。

索引创建,

语法格式:

索引修改,

主法格式:

删除索引,

语法格式
DROP INDEX [<模式名>.]<索引名>;



4 触发器

  DM 是一个具有主动特征的数据库管理系统,其主动特征包括约束机制和触发器机制。

通过触发器机制,用户可以定义、删除和修改触发器。 DM 自动管理和运行这些触发器,从

而体现系统的主动性,方便用户使用。

  触发器(TRIGGER)定义为当某些与数据库有关的事件发生时,数据库应该采取的操作。

这些事件包括全局对象、数据库下某个模式、模式下某个基表上的 INSERT、 DELETE 和

UPDATE 操作。

  触发器与存储模块类似,都是在服务器上保存并执行的一段 DMSQL 程序语

句。不同的是:存储模块必须被显式地调用执行,而触发器是在相关的事件发生时由服务器

自动地隐式地激发。

  触发器是激发它们的语句的一个组成部分,即直到一个语句激发的所有

触发器执行完成之后该语句才结束,而其中任何一个触发器执行的失败都将导致该语句的失

败,触发器所做的任何工作都属于激发该触发器的语句。

触发器分为表触发器、 事件触发器和时间触发器。表触发器是对表里数据操作引发的数

据库的触发; 事件触发器是对数据库对象操作引起的数据库的触发; 时间触发器是一种特殊

的事件触发器。

语法格式:
CREATE [OR REPLACE] TRIGGER [<模式名>.]<触发器名> [WITH ENCRYPTION]

< 触 发 限 制 描 述 > [REFERENCING <trig_referencing_list>][FOR EACH {ROW |
STATEMENT}][WHEN (<
条件表达式>)]<触发器体>
<trig_referencing_list>::= <referencing_1>|<referencing_2>
<referencing_1>::=OLD [ROW] [AS] <
引用变量名> [ NEW [ROW] [AS] <引用变量名>]
<referencing_2>::=NEW [ROW] [AS] <
引用变量名> [ OLD [ROW] [AS] <引用变量名>]
<
触发限制描述>::=<触发限制描述 1> | <触发限制描述 2>
<
触发限制描述 1>::= <BEFORE|AFTER> <触发事件列表> [LOCAL] ON <触发表名>
<
触发限制描述 2>::= INSTEAD OF <触发事件列表> [LOCAL] ON <触发视图名>
<
触发表名>::=[<模式名>.]<基表名>
<
触发事件>::=INSERT|DELETE|{UPDATE|{UPDATE OF<触发列清单>}}
<
触发事件列表>::=<触发事件> | {<触发事件列表> OR <触发事件>}



5 序列

序列是一个数据库实体,通过它多个用户可以产生唯一整数值,可以用序列来自动地生成主关键字值。

序列在对编号的使用上具有很大用处,如果想对表建立一个列专门用来表示编号,如订单号,这样就可以使用序列,依次递增生成,用户不需进行特殊管理,这给用户带来了很大方便。如果用户需要间隔的编号,创建序列时指定 INCREMENT,就可以生成用户需要的编号。

语法格式:

序列修改语句:

序列删除语句:



6 同义词

同义词(Synonym)让用户能够为数据库的一个模式下的对象提供别名。同义词通过掩盖一个对象真实的名字和拥有者,并且对远程分布式的数据库对象给予了位置透明特性以此来提供了一定的安全性。同时使用同义词可以简化复杂的 SQL 语句。同义词可以替换模式下的表、视图、序列、函数、存储过程等对象。

语法格式:
CREATE [OR REPLACE] [PUBLIC] SYNONYM [<模式名>.]<同义词名> FOR [<模式名>.]<对象名>

: 用户 B A 模式下的表 T1 创建同义词。
A 模式下建立表 T1
CREATE TABLE "A"."T1" ("ID" INTEGER, "NAME" VARCHAR(50), PRIMARY KEY("ID"));
INSERT INTO "A"."T1" ("ID", "NAME") VALUES (1, '
张三');
INSERT INTO "A"."T1" ("ID", "NAME") VALUES (2, '
李四');
A 模式下的表 T1 创建同义词。
CREATE SYNONYM A.S1 FOR A.T1;
如果用户 B 想查询 T1 表的行数,可以通过如下语句来获得结果:
SELECT COUNT(*) FROM A.S1;

删除同义词:
语法格式
DROP [PUBLIC] SYNONYM <同义词名>

------------------------------------------------------------------------------------------------------------------------------------

 更多达梦数据库解决方案,可访问如下地址:

https://eco.dameng.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值