注册
DCA考试三天培训笔记
培训园地/ 文章详情 /

DCA考试三天培训笔记

夏雨雨雨雨雨 2026/08/19 223 1 0

DCA第一天培训笔记

一、准备内容

1、VNC连接考试云主机,考试前一天会测试是否连接上云主机;

2、打开VNC Viewer客户端,输入考试给定的云主机IP地址和密码,进入考试云主机;

3、按照考试要求作答,端口号设置、数据库密码配置、安装路径选择等;

4、在考试系统关闭前,正常关闭考试机器的数据库。

5、考试题目在dmdba的桌面上

二、概念理解

2.1 OLAP和OLTP

2.1.1 OLTP (联机事务处理)

快速、准确地处理每一笔交易,处理日常的、大量的增删改操作,要求高并发、低延迟,并且数据必须绝对正确。

典型操作:增、删、改、查,主要是单条或少量数据的更新。比如你下个订单、修改个密码。

数据规范化程度高,会设计很多表来避免数据冗余,数据实时性强。


2.1.2 OLAP (联机分析处理)

从历史数据中分析规律,辅助决策,处理海量历史数据的复杂查询,生成报表。它关注的是扫描和计算大量数据的能力,允许秒级甚至分钟级的查询响应。

核心是查询 (SELECT),通常是大量的读取。它会进行按时间、地区、产品等维度的多角度汇总和分析。

数据冗余多,通常按主题(如销售、客户)组织,数据是历史的、相对静态的。

2.2 关系型数据库ACID特性

**1、原子性:**一个事务所有操作要么完成要么不完成;(操作的完整性)

**2、一致性:**无论事务成功还是失败,数据库里的数据必须始终是合理的,不能出现半成品或自相矛盾的状态;(数据的正确性)

(1)从约束上来看:需要满足数据状态,唯一索引约束,数据类型是否正确,非空约束,主外键约束等

(2)从事务角度来看:事务执行前后,数据库的状态一致,在事务执行中,状态可以不一致,数据可以不正确,事务结束后必须回到正确状态

(3)从责任上来看:50%数据库,处理违反数据约束的操作+50%应用程序,业务规则需要业务代码来检查

**3、持久性:**事务提交成功后,更改是永久性的;

**4、隔离性:**一个事物的中间状态不会被其他事物感知,事务与事务之间不会互相影响。

三、DM8数据库的安装

3.1 版本介绍

一般学习和测试下载的都为开发版,开发版与企业版一模一样,有时间限制,不能商用。

商用版本有key,分为三类:标准版(只能单机)、企业版(最常用,满足中大型企业,功能最全,性能最好)、安全版(在企业版上增加安全特性,强制访问控制)

3.2 硬件要求

CPU和内存推荐:2C4G / 2C8G

磁盘:/tmp 临时目录>3G

软件装GNOME桌面环境,DCA考试基本为图形化,SQL为最难的部分

达梦安装包中服务端和客户端在一个包里面

3.3 正式安装

3.3.1 创建达梦用户dmdba dinstall用户组

root路径下,DCA考试时这部分已创建好

groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba

3.3.2 创建达梦安装目录,并修改权限

mkdir /dm chown dmdba:dinstall /dm ls -ld /dm

3.3.3挂载ISO镜像文件

mount -o loop mount -o loop dm8_20240116_x86_rh7_64.iso /mnt ls -l /mnt
[root@192 桌面]# ls -l /mnt 总用量 1065229 -r-xr-xr-x 1 root root 2911452 3月 2 16:40 'DM8 Install.pdf' -r-xr-xr-x 1 root root 1087882225 4月 28 13:28 DMInstall.bin

可以看到两个文件:DM8 Install.pdfDMInstall.bin

DCA考试内已经挂载好镜像文件,可以直接用 DMInstall.bin 安装

3.3.4 图形化安装

[root@192 桌面]# echo $DISPLAY :0.0 [root@192 桌面]#xhost + access control disabled, clients can connect from any host [root@192 桌面 ]# su dmdba [dmdba@192 桌面]# echo $DISPLAY :0.0 [dmdba@192 桌面]#xhost + access control disabled, clients can connect from any host [dmdba@192 桌面]$ cd /mnt dmdba@192 mnt]$ ./DMInstall.bin 解压安装程序......... 硬件架构校验通过!

DCA考试简化上述图形化流程

考试时VNC登进来就是dmdba账号,没有root账号

所以可以直接执行:

[dmdba@192 桌面]# echo $DISPLAY :0.0 [dmdba@192 桌面]#xhost + access control disabled, clients can connect from any host [dmdba@192 桌面]$ cd /mnt dmdba@192 mnt]$ ./DMInstall.bin 解压安装程序......... 硬件架构校验通过!

image.png
image.png
image.png
image.png
image.png

注意看考试的时候给定的安装目录,来填写下面的安装目录
image.png
image.png
image.png
image.png
image.png

四、DM8数据库实例管理

3.1 图形化创建实例

image.png

image.png

根据考试要求来,考试要求把目录放哪里就放哪里
image.png

根据考试要求来,考试要求什么名字就写什么名字
image.png

依次为控制文件、数据文件、日志文件、初始化日志
image.png
image.png
image.png
image.png

注意日志文件看题目要求,题目要求创建几个就为几个,不够的话点击添加按钮进行添加

日志文件大小的单位为M,1024M=1G,注意换算单位

簇大小页大小、字符集注意一定要写对,之后无法修改
image.png

口令要按照考试要求写,连不上数据库为零分!
image.png

考试时可以不勾选创建示例库
image.png

安装小结,可以查看前面的内容是否正确,可以返回去修改
image.png

点击完成后,出弹出一个窗口,需要执行以下三个脚本
命令一定要复制全,不然会报错
不要慌乱,将三个脚本都复制运行完,不然后面两个不执行,会一直卡在终端,直到创建实例超时
image.png
image.png
image.png
image.png
image.png

创建成功后,点完成,不要点继续,继续又回到创建实例的地方了
image.png
image.png

3.2 图形化连接数据库

打开管理工具连接,考试也用管理工具
image.png

先测试连接是否成功,再点连接
image.png

3.3 启停数据库

进入到/home/dmdba/dmdbms/bin目录下,可以看到DmServiceDMSALMDB

dmdba账户启停:

./DmServiceDMSALMDB start ./DmServiceDMSALMDB staus ./DmServiceDMSALMDB stop

image.png

如果报错显示创建SOCKET连接失败:

原因:数据库故障,连错端口号或实例未启动

考试结束记得关闭实例:

# /home/dmdba/dmdbms/bin目录下 ./DmServiceDMSALMDB stop

补充细节:

1、大小写敏感,达梦默认敏感,mysql、sql server使用不敏感。其他库迁移至达梦,与源库保持相同

2、行尾空格填充模式

‘a’ 'a 'oracle默认不一样,达梦默认一样

3、UTF-8一个中文占三个字符

GB18030 一个中文占两个字符,中文多的时候推荐,节省空间

4、dminit 命令行方式初始化实例

./dminit help 查看使用帮助

./dminit path=/dm/data db_name=** instance_name=** port_num=** SYSDBA_PWD=** SYSAUDITOP_PWD=** LOG_SIZE=** RLOG_POSTFIX_NAME(重做日志文件后缀名)=**

5、查看达梦进程/端口监听状态:

# 查看达梦进程运行状态 ps -ef|grep dmserver # 查看端口监听状态 netstat -nt|grep 52*

五、数据库连接

5.1 开发接口

支持使用JDBC、ODBC等各种驱动连接数据库

5.2 DM管理工具

支持DM管理工具连接数据库,SQLark、disql

六、数据库启动顺序:

6.1 开启数据库start后状态

1、mount状态:开归档状态,设置参数;此时会打开.ctl控制文件,如果文件损坏,数据库起不来并且到不了mount状态

2、open状态:打开控制文件中的所有文件,如果所有文件都正常,直接进入open状态

6.2 关闭数据库stop后状态

3、挂起状态:中间状态,但既没有,集群才有

4、关闭状态:已经关闭

SQL下写:

SQL>alter database mount 处于普通配置状态

SQL>alter database open 处于普通打开状态

七、表空间

7.1 DM逻辑存储结构

**物理存储:**由多个数据文件组成

一个表空间可以包括一个或多个数据库文件

一个数据文件只能归属于一个表空间

**逻辑存储结构:**由多个表空间组成,表空间由一个或多个数据文件组成

页(操作系统块)—>簇(不可以跨数据文件)—>段(可以跨数据文件)—>表空间(多个数据文件组成)—>数据库

7.2 表空间

作为逻辑容器,用于组织和管理数据库对象的物理存储

1、预定表空间

SYSTEM表空间、ROLL表空间、TEMP表空间、MAIN表空间,由数据库系统自动管理,SYSTEM表空间、ROLL表空间、TEMP表空间不允许脱机。

2、新建表空间

通过图形化界面创建

右键 新建表空间
image.png

添加数据文件,1个表空间最多有256个数据文件
image.png
image.png

写入数据文件的名字,根据考试要求添加数据文件个数,修改文件大小,是否打开自动扩充,扩充尺寸大小,扩充上限大小,注意单位为M,考试如果给G,记得换算单位,1G=1024M
在生产中,所有数据文件的属性最好保持一致
image.png

表空间能容纳的数据量为所有数据文件的上限值之和,最大为20G

7.3 表空间的脱机与连接

对MAIN表空间进行脱机,无法查询到他下面的表,但并不影响访问其他的表空间
image.png

不影响对别的表的查询
image.png

查看表空间属性里有DDL语句,这是用命令行方式可以创建表空间

CACHE表示放入普通内存中

create tablespace TSAL datafile '/home/dmdba/dmdbms/data/DMSALM/TSAL_02.DBF' size 512 autoextend on next 32 maxsize 10240, '/home/dmdba/dmdbms/data/DMSALM/TSAL_01.DBF' size 512 autoextend on next 32 maxsize 10240 CACHE = NOMAL;

image.png

八、重做日志(REDO)

用于确保事务的持久性和崩溃恢复。记录了已提交事务对数据库所做的所有更改。在系统故障后,能通过重做日志文件恢复数据到一致状态。

还有一种机制为归档日志,所有DDL、DML操作都会写入,它为永久性,直到磁盘撑满,需要定期清理

还可以备份,备份后的归档可以清理,备份可以每周末全量备份,每天增量备份

DDL、DML操作写入REDO日志(会覆盖之前),写入归档日志(需定期清理),备份

九、用户管理(在SYSDBA用户下)

9.1 模式

9.1.1 概念

模式为特定对象的集合

9.1.2 图形化操作

在图形化中新建模式:
image.png

创建用户会自动生成同名的模式,如下图所示,创建U_DMSALM用户会自动生成U_DMSALM模式
image.png

一个模式只能属于一个用户,一个用户下可以有多个模式

如下图:我创建了DMSALM模式,可以将模式拥有者选择为U_DMSALM,U_DMSALM本身已有U_DMSALM模式,它目前拥有2个模式
image.png

在模式属性中可以看到模式名和模式拥有者

image.png

9.1.3 DDL语句

点开U_DMSALM模式查看属性,可以看到DDL语句,使用DDL语句创建模式与图形化创建方式的效果一致
image.png

CREATE SCHEMA DMSALM AUTHORIZATION "U_DMSALM";

9.2 角色

一组权限的集合,用于简化权限管理;通过角色,批量回收和分配权限。

可以赋予角色权限、系统权限、对象权限。

grant授予权限 revoke取消权限

系统权限:控制数据库级操作,创建/删除表等DDL语句

对象权限:控制对特定对象的操作,SELECT、INSERT

点击角色右键新建角色,赋予角色系统权限:创建表、视图、存储过程、索引的权限
image.png

CREATE PROCEDURE/SEQUENCE/TRIGGER/SCHEMA/ROLE/SYNONYM/MATERIALIZED VIEW,分别为创建存储过程、创建序列、创建触发器、创建模式、创建角色、创建同义词、创建物化视图

9.3 资源限制

常用资源设置项含义:

**口令有效期:**密码多少天后过期

**口令等待期:**密码修改后,多少天内不能再次修改

**口令宽限期:**密码过期后,用户在多少天内仍可登录

**口令变更次数:**密码必须修改过N次后,才能使用过去用过的旧密码

**口令锁定期:**登录失败达到上限后,账号会被锁定多少分钟

**非活跃用户锁定期:**用户连续多少天没有登录,账号被自动锁定

**登录失败次数:**连续登录失败多少次后,账号被锁定

例题:为用户创建默认的资源配置文件PRO_SALM,要求密码必须修改过 3 次后,才能使用过去用过的密码;并且如果用户超过90天未登录或是登录失败超过5次,则锁定该账号。
image.png

可以在用户这里统一修改资源限制,不用一个个修改,便于管理
image.png

命令行方式用disql登录时,当密码中带有@这个特殊字符时,登录失败该怎么办:

1、可以加上“ ”,比如可以写为"Dameng@123"

2、可以加上‘“ ”’,比如可以写为“‘Dameng@123’”;这里' '表示转义符

3、可以加上\“ \”,比如可以写为\“Dameng@123\”;这里\表示转义符

9.4 用户

赋予用户创建表、视图、索引的权限
image.png

DCA第二天培训笔记

一、表

1.1 分类

按用途分为:用户表(用户创建和维护)和系统表(Dm Server创建和维护,不能丢)

按类型分为:索引组织表、堆表、分区表、外部表、临时表,达梦默认索引组织表,orcale默认堆表

DCA考试需要会建表、导入SQL

1.2 DM数据类型

数据类型是可表示的集。

字符类型:CHAR类型、CHARACTER类型(与CHAR相同,为了兼容性好)、VARCHAR类型(变长字符串,用多少分多少字节,用法类似CHAR,节省空间)、VRACHAR2类型(与VRACHAR类型)

数值类型:NUMERIC类型、DECIMAL类型、DEC类型(达梦常用)、NUMBER类型(这些数据类型相似)

# 在dmuser创建表t2,里面的数值精度为1,也就是小数位占1位,总长度为3位,整数位只能为1位 CREATE TABLE dmuser.t2(c1 dec(3,1));# 记得写;这样才是一个完整的SQL语句,而且为英文状态的; # 得提交事务,不然会锁超时 commit;

位串数据类型、日期时间数据类型、大字段数据类型

1.3 图形化创建表(SYSDBA用户下)

在模式下或在用户下创建表

在某个模式下创建表,即按照题目要求的模式来创建表;

在某个用户下创建表,即在这个用户自动创建的模式下床建表;

在SQL语句中,不带模式名建表,默认建在SYSDBA下,因为当前在SYSDBA用户下。

如下图,在U_DMSALM模式下新建表
image.png

填写表名、列名、数据类型、精度、标度、是否为空、是否为主键、唯一性约束、外键约束
image.png
image.png

建好表后列的顺序是无法更改的,之后添加列会在最后添加,不会在中间插入

1.4 往表中导入数据

单行或多行插入数据均可以,也可以指定列插入数据,不指定列插入数据时,需要注意插入的个数与列的个数一致,否则会失败。

下面用DDL语句演示:

多行插入数据:

INSERT INTO DMSALM.EMP(EMPNO, ENAME, HIREDATE, COMM, DEPTNO) VALUES ('1001', '马学铭','2008-05-30',NULL,'101'), ('1002', '程擎武','2012-03-27',NULL,'101'), ('1003', '郑吉群','2010-12-27',NULL,'101'), ('2001', '李慧军','2010-05-15',NULL,'201'), ('2002', '常鹏程','2011-08-06',NULL,'201'); Commit;

修改数据:

UPDATE dmuser.t_userinfo SET email='hengxin@dameng.com',username = 'hengxin12' WHERE userid = 2;

删除数据:

# DELETE 删除数据时一定要带WHERE条件,不然会删除整张表 DELETE FROM dmuser.t_userinfo WHERE userid = 1;

图形化可直接操作,不过多演示,别忘记点保存。

当多表往里导入时,注意导入顺序,因为有外键,否则会失败。

可以用执行脚本的方式导入插入数据

点击执行脚本图标:
image.png

考试时的SQL脚本存放在/opt/soft目录下,具体视题目而定,直接点击里面的SQL执行即可
image.png

如果导入的数据导错了,怎么清空表,只保留表结构:

# 清空U_DMSALM模式下的SALARY表 TRUNCATE TABLE U_DMSALM.SALARY;

1.5 数据库约束

为了保证数据的完整性和一致性。分为:列级和表级。

常见的约束类型:

**主键约束:**唯一标识符、不能为空,会自动勾选非空,建主键时会自动有唯一索引

**外键约束:**跨表引用完整性、可以为空,一个表的外键一定是另一张表的主键,在导表的时候,有外键时先导外键的那张表,注意导入SQL顺序

**唯一约束:**字段值唯一、可以为空
image.png

image.png

**检查约束:**限制值范围或逻辑、可以为空
image.png

image.png

**默认值约束:**自动填充未指定值、可以为空

**非空约束:**禁止为NULL、不能为空

创建表的时候可以添加约束

二、SQL

2.1 概念

结构化查询语言,关系型数据库的通用交互语言,集数据定义、操作、控制一体化工具

2.2 分类

**DDL:**数据定义语言, 负责数据库对象(表、索引、视图等)的创建、修改、删除,CREATE/ALTER/DROP/COMMENT/TRUNCATE

# 将表结构连数据一起清掉 DROP TABLE T_USER; # 只针对表,只清数据,表结构还在,速度很快,1~2秒可以清空 TRUNCATE TABLE T1;

**DML:**数据操作语言,负责增、删、改、查,INSERT/UPDATE/DELETE/MERGE,

# 可以带条件的删除数据,很慢,因为需要写redo日志,还要写undo,为了做回滚(ROLLBACK) DELETE FROM table WHERE condition;

**DQL:**数据查询语言,SELECT

**DCL:**数据控制语言,权限管理,GRANT/REVOKE

**TCL:**事务控制语言,COMMIT/ROLLBACK/SAVEPOINT

2.3 语法特点

1、SQL对关键字大小写不敏感

2、语句可以单行或多行书写,以分号结束

3、单行注释:-- 表示注释

​ 多行注释:/*

​ 多行注释

​ */

2.4 简单查询

数据库的数据存储在表中,表由行和列组成,列构成表结构,行组成表数据。

# 查询所有列 select*from dmhr.city; #手动输入列名,列之间用逗号隔开 select city_id,city_name from dmhr.city; # 使用表明限定列名,存在两张表都有相同字段,使用表明锁定需要的字段 select city.city_id,city.city_name from dmhr.city;

AS 指定别名

select t.employee,t.salary,t.salary+100 as newsal from dmhr.employee t;

distince 去重

select distinct department_id from dmhr.employee;

||连接符

select '员工:'||t.employee_name || '--薪资:'||t.salary as empinfo from dmhr.employee t;

算术运算符:

优先级,自左向右计算,有括号括号优先,* / 优先 + -,mod 取余

# 结果为1 select 100 mod 3;

过滤查询:

WHERE查询 注意引号要为英文,不要为中文

比较谓词(=/>/</>=/<=/<>)

逻辑操作符:AND(两个都为真,则返回TRUE)/OR(有一个为真,返回TRUE)/NOT(取反)

优先级:NOT>AND>OR

运算结果的返回值:TRNE / FALSE / NULL

比较操作符:=/>/</>=/<=/<>/BETWEEN...AND.../IN(set)/LIKE/IS NULL

IN(1,2) 找到1或2,返回TRUE

Like通配符

相当于做模糊匹配:%/_ %不限制字符, _代表一个字符

Like转义符

# 表示查找时将*后面的_当成普通字符查询,而不是通配符 SELECT ADDRESSID,ADDRESSS1,CITY,POSTAL FROM PERISON.ADDRESS WHERE ADDRESS1 LIKE '%C1*_501' ESCAPE '*';

.ROW进行Like查询

# 找到PRODUCT_REVIEW表中的列含有达梦的行 SELECT FROM PRODUCTION.PRODUCT_REVIEW WHERE PRODUCT_REVIEW.ROW LIKE'%达梦%';

2.5 连接查询

连接查询为两张表或两张以上表之间的查询

**内连接:**JOIN ON 表示显示查询到的数据

**外连接:**LEFT/RIGHT/FULL JOIN ON 分别表示显示左边或右边或全部表的全部数据和条件查询到的数据

**多表连接:**多表连接更新、多表连接删除

2.6 GROUP BY 分组聚合

使用GROUP BY 对数据进行分组和聚合,常用于统计分析和多维数据汇总。

在 GROUP BY 分组查询中,SELECT 后面出现的所有“非聚合列”,都必须出现在 GROUP BY 子句中。

在GROUP BY聚合后,用HAVING进行过滤,聚合前,用WHERE过滤

GROUP BY 后面不可以为两个变量的加减值,应直接跟变量值,ORDER BY可以,对这些不做要求。

order by 默认升序(asc),desc为降序排序

order by 2 desc

2.7 子查询

是嵌套在另一个SQL语句中的一个完整查询,为外层查询提供中间结果或过滤条件

2.8 排序和分页

2.8.1 排序

数据排序ORDER BY,默认升序(ASC)排,降序为DESC

2.8.2 分页

1、TOP子句

# 选择结果的前n条记录 TOP<n> # 选择第m条记录之后的n条记录 TOP<m,n> # 选择结果的前n%条记录 TOP<n>PERCENT # 选择结果的前n%条记录,允许返回额外的行,也就是返回并列的行 TOP<n> PERCENT WITH TIES

2、LIMIT限定条件

# 与TOP含义基本相同 LIMIT N LIMIT M,N LIMIT N OFFSET M DESC LIMIT M,N

DCA第三天培训笔记

一、索引

1.1 概念

类似于书籍的目录,一种数据库对象,通过指针加速查询速度,为有序序列。

索引与表相互独立,且占用存储空间。

1.2 分类

聚簇索引(CLUSTER):一个表只有一个聚簇索引,不会在索引那栏显示出来

非聚簇索引(NOT PARTIAL):唯一/非唯一(普通二级索引)索引、函数索引、组合索引、全局索引和分区索引

1.3 创建索引

自动创建索引:定义主键或唯一约束时,数据库会自动在相应列上创建唯一索引

手动创建索引:使用CREATE INDEX语句可以手动在指定列创建索引

1.4 属性

失效/有效:默认为有效,无效的索引需要重建

可见/不可见:默认为可见,对执行计划可见;不可见的索引则执行计划不会选择该索引

二、视图

视图是一种虚拟表,由视图名和查询语句组成。

不占用存储空间,数据来源于底层基表;

增强数据安全;简化查询。

2.1 简单视图

基于单表的查询,不含聚合或复杂逻辑

2.2 复杂视图

包含多表连接、子查询、聚合函数(如 JOIN、SUM())

2.3 物化视图

物化视图本质是预先计算并存储查询结果的物理表,并通过定期或实时刷新来保持与基表的数据同步。

包含物化视图表(MTAB开头)和物化视图,物化视图存储数据,系统在创建物化视图时,会自动创建物化视图和物化视图表。

提升复杂查询性能、降低实时计算开销、支持离线数据分析。

应用于数仓环境,相当于把数据查询好放入,下次直接调用

物化视图刷新:

增量刷新(FAST):根据表上数据更改记录增量刷新

完全刷新(COMPLETE):会删除表中所有记录,根据物化视图定义,重新生成物化视图数据

默认(FORCE):当快速刷新可用时用快速刷新,否则用完全刷新

刷新时机:

定时刷新:START WITH...NEXT,start with指定首次刷新时间,next指定自动刷新的间隔

手工刷新(默认):ON DEMAND,分为 REFRESH、DBMS_MVIEW

自动刷新:ON COMMIT,提交时自动刷新

从不刷新:NEVER REFRESH

创建物化视图的语法:

CREATE MATERIALIZED VIEW 模式名.物化视图名 build immediate refresh on demand force AS SQL;

2.4 动态性能视图

动态性能视图是以 V$ 或 G$ 开头的视图,是数据库运行时生成的虚拟表,用于实时监控数据库实例的状态、性能和资源使用情况。

数据存储在内存中,由数据库实例动态更新。

# 系统中所有动态性能视图 SELECT * FROM v$dynamic_table; #数据缓冲池,记录缓冲池页结构的信息 SELECT * FROM v$buffer; #数据文件信息 SELECT * FROM v$datafile; #sql缓冲区中执行计划 SELECT * FROM v$cachepln; #会话信息 SELECT * FROM v$sessions; #阻塞情况 SELECT * FROM v$trxwait;

2.5 创建视图

基本语法:

CREATE VIEW 视图名 AS SQL;

2.6 视图有效性

视图依赖于基表,视图有效性可通过SF_VIEW_EXPIRED函数来检查

2.7 视图删除

drop view if exists v_empnum;

2.8 视图更新

image.png

三、序列

序列是数据库中生成唯一、有序数字序列的对象,通常用于为表的主键列自动提供唯一值。

满足唯一性、有序性(递增或递减)、高效性

可以自动生成数值,无需手动插入。

CREATE SEQUENCE 模式名.序列名 INCREMENT BY 增量 START WITH 起始值 MAXVALUE 最大值 MINVALUE 最小值;

也可以直接在图形化工具中创建,更简洁。

四、同义词

同义词是数据库对象(模式、视图、表等)的别名

五、外部链接DBLINK

用来连接两个实例,相当于桥梁的作用

六、逻辑备份与还原

备份可以保障数据的持久性、可用性和业务连续性。

备份分为物理备份和逻辑备份。

物理备份可以整库恢复,联机和脱机都可以,脱机还原

逻辑备份只能联机备份。只保存DDL语句和数据,可以做比较细的备份。无法恢复数据文件。

逻辑导入导出工具:dexp/dimp,使用场景:数据库迁移、历史数据归档

将数据库中的对象结构和数据以逻辑格式(dmp文件)导出为文件,再通过导入工具将文件解析为数据库可执行命令,重建对象并插入数据。

四个级别:数据库级、用户级、模式级、表级,四种方式是互斥的

逻辑导出dexp

七、存储过程和函数

7.1 DMSQL

7.1.1 DMSQL概念

由关键字BEGIN开始,以关键字EXCEPTION或END结束。

7.1.2 DMSQL执行部分

可执行部分是核心部分,由SQL语句和流程控制语句构成。

1、支持的SQL语句包括:

数据查询语句(SELECT)

数据操纵语句(INSERT / DELETE / UPDATE)

游标定义及操纵语句(DECLARE CURSOR / OPEN / FETCH / CLOSE)

事务控制语句(COMMIT / ROLLBACK / SAVEPOINT)

动态SQL执行语句(EXECUTE IMMEDIATE)

流程控制语句(条件判断(IF THEN)、循环控制(LOOP))

自治事务(PRAGMA AUTONOMOUS_TRANSACTION)

执行部分也可以嵌套匿名块。

2、流程控制语句包括:

条件判断:

IF-THEN-ELSEIF-ELSE、CASE-WHEN、SWITCH

循环控制:

FOR-LOOP

DECLARE a=10 int BEGIN FOR I IN REVERSE 1..a LOOP PRINT I; a:=I-1; END LOOP; END; /

LOOP+EXIT WHEN、WHILE-LOOP、REPEAT-UNTIL、FORALL、CONTINUE

顺序控制:

GOTO、NULL

7.1.3 异常处理

是一种预定义的错误控制机制,当程序遇到错误时,转向特定处理逻辑。使用户遇到错误时弹出的错误解释更清晰。

以EXCEPTION关键字开始,WHEN THEN子句用于处理未被显示捕获的异常.

异常处理语法:

DECLARE --声明部分 BEGIN --执行部分 EXCEPTION --异常处理部分开始 WHEN exception_name1 THEN --处理exception_name1的代码 WHEN exception_name2 THEN --处理exception_name2的代码 ... END;

7.2 存储过程

创建存储过程的语法:

CREATE OR REPLACE PROCEDURE 模式名.存储过程名 (传入的参数名 参数类型 , 传入的参数名 参数类型,...) AS / IS BEGIN 代码块 [FOR I in REVERSE 1..a LOOP PRINT I; a:= I-1; END LOOP;] [异常处理部分] END; / #调用存储过程 call 模式名.存储过程名(给a具体值);

7.3 函数

CREATE OR REPLACE FUNCTION 模式名.存储过程名 (传入的参数名1 参数类型1 , 传入的参数名2 参数类型2,...) RETURN 返回值类型(DEC()、VARCHAR) AS --变量声明 变量名1 变量类型1; 变量名2 变量类型2; BEGIN --代码块 [ SELECT 表名1.字段名1,表名2.字段名2,... INTO 变量名1,变量名2, --将查询的结果分别存入变量中 FROM 模式名.表名 JOIN 模式名.表名 ON 主键和外键相同 WHERE 字段值1 = 传入的参数名1 AND 字段值2 = 传入的参数名2; IF 返回需要满足的条件 RETURN 值; ELSE RETURN 值; ENDIF; --异常处理部分 EXCEPTION WHEN OTHRES THEN PRINT(); RETURN ...; --最好替换为:DBMS_OUTPUT.PUT_LINE(); ] END; / #调用函数 select 模式名.存储过程名(输入参数值,输入参数值,...);

八、python接口

8.1 安装python脚本

在dmdba用户下执行:

# 切换到目录下查看setup.py文件 cd /dm/dmdbms/drivers/python/dmPython ll

8.2 编写python脚本

# 编写python脚本 vim setup.py

8.3 执行python脚本

python3 setup.py
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服