达梦数据库的学习使用

时间:2024-04-02 16:03:17

达梦数据库的学习

一、数据库的安装

​ 之前已有发表数据库的安装博文,在此附上链接。(单库的安装)

​ https://blog.csdn.net/weixin_42356462/article/details/108822532

二、数据库的使用

​ 数据库可以通过manager管理工具进行连接使用,也可以通过disql工具进行连接使用。达梦数据库提供了包括manager,dts等多个图形化工具进行对数据库,数据库服务等的操作使用。

2.1创建表空间

​ 可以图形化创建,亦可以通过SQL语句进行。

1.连接

达梦数据库的学习使用

达梦数据库的学习使用

连接进来是这样的界面,此时可以在查询页进行数据库的操作。

2.创建

达梦数据库的学习使用

也可以SQL语句

CREATE TABLESPACE <表空间名> <数据文件子句>[<数据页缓冲池子句>][<存储加密子句>][<指定DMTDD 副本子句>]
<数据文件子句> ::= DATAFILE <文件说明项>{,<文件说明项>}
<文件说明项> ::= <文件路径> [ MIRROR <文件路径>] SIZE <文件大小>[<自动扩展子句>]
<自动扩展子句> ::= AUTOEXTEND <ON [<每次扩展大小子句>][<最大大小子句> |OFF> <每次扩展大小子句> ::= NEXT <扩展大小> <最大大小子句> ::= MAXSIZE <文件最大大小> 第3 章 数据定义语句 65 <数据页缓冲池子句> ::= CACHE = <缓冲池名> <存储加密子句> ::= ENCRYPT WITH <加密算法> [[BY] <加密密码>]
<指定DMTDD 副本子句> ::= [<指定副本数子句>][<副本策略子句>]
<指定副本数子句> ::= COPY <副本数>
<副本策略子句> ::= GREAT | MICRO

例如:

​ CREATE TABLESPACE TS1 DATAFILE ‘d:\TS1.dbf’ SIZE 128;

3.删除表空间

​ 已使用的,某个用户默认的表空间不能够删除。可以管理工具右键相应的表空间,或者SQL语句进行删除。
达梦数据库的学习使用
达梦数据库的学习使用
或者SQL命令:
​ DROP TABLESPACE <表空间名>

2.2创建用户

达梦数据库的学习使用

达梦数据库的学习使用

达梦数据库的学习使用

达梦数据库的学习使用
达梦数据库的学习使用

也可以进行SQL语句创建

语法格式

CREATE USER <用户名> IDENTIFIED <身份验证模式>

[<存储加***>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][< 第 3 章 数据定义语句 54 禁止 IP 子句>][<允许时间子句>][<禁止时间子句>][][]

<身份验证模式> ::= <数据库身份验证模式>|<外部身份验证模式>

<数据库身份验证模式> ::= BY <口令> [<散列选项>]

<散列选项> ::= HASH WITH [<密码引擎名>.]<散列算法> [<加盐选项>]

<散列算法> ::= <加盐选项> ::= [NO] SALT

<外部身份验证模式> ::= EXTERNALLY | EXTERNALLY AS <用户 DN>

<口令策略> ::= 口令策略项的任意组合

<锁定子句> ::= ACCOUNT LOCK | ACCOUNT UNLOCK

<存储加***> ::= ENCRYPT BY <口令>

<空间限制子句> ::= DISKSPACE LIMIT <空间大小>| DISKSPACE UNLIMITED

<只读标志> ::= READ ONLY | NOT READ ONLY

<资源限制子句> ::= LIMIT <资源设置项>{,<资源设置项>}

<资源设置项> ::= SESSION_PER_USER <参数设置>| CONNECT_IDLE_TIME

<参数设置>| CONNECT_TIME <参数设置>| CPU_PER_CALL <参数设置>| CPU_PER_SESSION <参数设置>| MEM_SPACE <参数设置>| READ_PER_CALL <参数设置>| READ_PER_SESSION <参数设置>| FAILED_LOGIN_ATTEMPS <参数设置>| PASSWORD_LIFE_TIME <参数设置>| PASSWORD_REUSE_TIME <参数设置>| PASSWORD_REUSE_MAX <参数设置>| PASSWORD_LOCK_TIME <参数设置>| PASSWORD_GRACE_TIME <参数设置> <

参数设置> ::=<参数值>| UNLIMITED

<允许 IP 子句> ::= ALLOW_IP {,} <禁止 IP 子句> ::= NOT_ALLOW_IP {,} ::= <具体 IP>|<网段>

<允许时间子句> ::= ALLOW_DATETIME <时间项>{,<时间项>} <禁止时间子句> ::= NOT_ALLOW_DATETIME <时间项>{,<时间项>}

<时间项> ::= <具体时间段> | <规则时间段> <具体时间段> ::= <具体日期> <具体时间> TO <具体日期> <具体时间> <规则时间段> ::= <规则时间标志> <具体时间> TO <规则时间标志> <具体时间> <规则时间标志> ::= MON | TUE | WED | THURS | FRI | SAT | SUN ::= DEFAULT TABLESPACE <表空间名> ::= DEFAULT INDEX TABLESPACE <表空间名>

例:

​ create user “用户名” identified by “密码” default tablespace “TBS”;

​ grant “RESOURCE”,“PUBLIC”,“VTI”,“SOI” to “TEST”;

2.3创建模式

​ 当创建用户的时候会同时创建同名的默认模式,也可以在创建其他的模式用以管理表。

达梦数据库的学习使用

SQL创建模式:

CREATE SCHEMA “模式名” AUTHORIZATION “模式拥有者”;

2.4管理数据库服务器

在这里可以看到数据库的一些信息。比如数据库版本,实力初始化参数。
达梦数据库的学习使用

这里可以查看一些表的使用空间情况。
达梦数据库的学习使用

这里是redo日志信息,可以点击添加进行添加
达梦数据库的学习使用

​ 这里是归档信息,可以进行设置。设置时先通过系统管理将数据库状态改为配置(mount)状态,然后再这里进行设置。之后再将数据库状态改为打开(open)状态。

达梦数据库的学习使用
达梦数据库的学习使用

2.5数据库备份还原

​ 数据库备份分位逻辑备份和物理备份

2.5.1逻辑备份

​ 逻辑备份是指利用 dexp导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

格式: ./dexp KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)

例程: ./dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)

USERID 必须是命令行中的第一个参数

关键字 说名(默认值)

USERID 用户名/口令 格式:USER/PWD*[email protected]:PORT#[email protected]
FILE 导出文件 (dexp.dmp)
DIRECTORY 导出文件所在目录
FULL 整库导出 (N)
OWNER 以用户方式导出 格式 (user1,user2,…)
SCHEMAS 以模式方式导出 格式 (schema1,schema2,…)
TABLES 以表方式导出 格式 (table1,table2,…)
FUZZY_MATCH TABLES选项是否支持模糊匹配 (N)
QUERY 用于导出表的子集的select 子句
PARALLEL 用于指定导出的过程中所使用的线程数目
TABLE_PARALLEL 用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
TABLE_POOL 用于指定表的缓冲区个数
EXCLUDE 忽略指定的对象
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
EXCLUDE=TABLES:table1,table2 or
EXCLUDE=SCHEMAS:sch1,sch2
INCLUDE 包含指定的对象
格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
INCLUDE=TABLES:table1,table2
CONSTRAINTS 导出约束 (Y)
TABLESPACE 导出对象带有表空间 (N)
GRANTS 导出权限 (Y)
INDEXES 导出索引 (Y)
TRIGGERS 导出触发器 (Y)
ROWS 导出数据行 (Y)
LOG 屏幕输出的日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件: 是(Y),否(N)
DUMMY 交互信息处理: 打印§, 所有交互都按YES处理(Y),NO(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPRESS 导出数据是否压缩 (N)
ENCRYPT 导出数据是否加密 (N)
ENCRYPT_PASSWORD 导出数据的加***
ENCRYPT_NAME 加密算法的名称
FILESIZE 每个转储文件的最大大小
FILENUM 一个模板可以生成的文件数
DROP 导出后删除原表,但不级联删除 (N)
DESCRIBE 导出数据文件的描述信息,记录在数据文件中
LOCAL MPP模式下登录使用MPP_LOCAL方式(N)
HELP 打印帮助信息

示例:

1.全备full:
​ ./dexp USERID=MYDM/my123456789:32141 FILE=2020_06_23_fullbak.dmp LOG=2020_06_23_fullbak.log FULL=Y DIRECTORY=/opt/dmdbms/dmdata/DAMENG/bak
2.用户owner:
​ ./dexp USERID=MYDM/my123456789:32141 FILE=2020_06_23_ownerbak.dmp LOG=2020_06_23_ownerbak.log OWNER=MYDM DIRECTORY=/opt/dmdbms/dmdata/DAMENG/bak
3.模式schemas:
​ ./dexp USERID=MYDM/my123456789:32141 FILE=2020_06_23_schemasbak.dmp LOG=2020_06_23_schemasbak.log SCHEMAS=PERSON DIRECTORY=/opt/dmdbms/dmdata/DAMENG/bak
4.表或表分区table:
​ ./dexp USERID=MYDM/my123456789:32141 FILE=2020_06_23_tablebak.dmp LOG=2020_06_23_tablebak.log TABLES=PERSON.PERSON,PERSON.ADDRESS DIRECTORY=/opt/dmdbms/dmdata/DAMENG/bak

2.5.2逻辑还原

​ 逻辑还原是逻辑备份的逆过程,逻辑还原就是使用 dimp工具,把 dexp导出的备份数据重新导入到目标数据库。

格式: ./dimp KEYWORD=value 或 KEYWORD=(value1,value2,…,vlaueN)

例程: ./dimp SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y

USERID 必须是命令行中的第一个参数

关键字 说名(默认值)

USERID 用户名/口令 格式:USER/PWD*[email protected]:PORT#[email protected]
FILE 导入文件名称 (dexp.dmp)
DIRECTORY 导入文件所在目录
FULL 整库导入 (N)
OWNER 以用户方式导入 格式 (user1,user2,…)
SCHEMAS 以模式方式导入 格式 (schema1,schema2,…)
TABLES 以表名方式导入 格式(table1,table2,…)
PARALLEL 用于指定导入的过程中所使用的线程数目
TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效
IGNORE 忽略创建错误 (N)
TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE]
FAST_LOAD 是否使用dmfldr来导数据(N)
FLDR_ORDER 使用dmfldr是否需要严格按顺序来导数据(Y)
COMMIT_ROWS 批量提交的行数(5000)
EXCLUDE 忽略指定的对象 格式
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)
GRANTS 导入权限 (Y)
CONSTRAINTS 导入约束 (Y)
INDEXES 导入索引 (Y)
TRIGGERS 导入触发器 (Y)
ROWS 导入数据行 (Y)
LOG 指定日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件(N): 是(Y),否(N)
DUMMY 交互信息处理§: 打印§, 所有交互都按YES处理(Y),NO(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPILE 编译过程, 程序包和函数… (Y)
INDEXFILE 将表的索引/约束信息写入指定的文件
INDEXFIRST 导入时先建索引(N)
REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)
将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
ENCRYPT_PASSWORD 数据的加***
ENCRYPT_NAME 加密算法的名称
SHOW/DESCRIBE 打印出指定文件的信息(N)
LOCAL MPP模式下登录使用MPP_LOCAL方式(N)
TASK_THREAD_NUMBER 用于设置dmfldr处理用户数据的线程数目
BUFFER_NODE_SIZE 用于设置dmfldr读入文件缓冲区大小
TASK_SEND_NODE_NUMBER 用于设置dmfldr发送节点个数[16,65535]
LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的
PRIMARY_CONFLICT 主键冲突的处理方式[IGNORE|OVERWRITE],默认报错
TABLE_FIRST 是否先导入表(N):是(Y),否(N)
HELP 打印帮助信息

示例:

1.full导入
​ ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp
2.owner导入
​ ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log USER=USER01 DIRECTORY=/mnt/data/dimp
3.schemas导入
​ ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
4.tables导入
​ ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp

2.5.3物理备份

物理备份则直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。

备份方式:

(1)DM管理工具备份
./manager
点击备份–>右键库备份(表备份等)–>新建备份–>点击常规:写备份名,备份集目录,选择备份类型;

达梦数据库的学习使用

(2)DM控制台备份(脱机备份)
./console
点击备份还原–>选择新建备份–>按需求填写备份信息

达梦数据库的学习使用

(3)联机备份(./disql)
首先检查是否开启归档,然后./disql进入数据库 或者dm管理工具

示例:

1.全备(默认)
​ BACKUP DATABASE BACKUPSET ‘/opt/dmdbms/dmdata/DAMENG/bak/db_bak_01’ ;
2.增量备份
​ BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
3.表空间备份
​ 完全备份(默认完全)
​ BACKUP TABLESPACE MAIN FULL BACKUPSET ‘/home/dm_bak/ts_full_bak_01’;
​ 增量备份(创建累积增量备份,还需要指定 CUMULATIVE参数,否则缺省为差异增量备份。)
​ BACKUP TABLESPACE MAIN INCREMENT BACKUPSET ‘ts_increment_bak_01’;
4.表备份
​ ACKUP TABLE TAB_01 BACKUPSET ‘/home/dm_bak/tab_bak_01’;
5.归档备份
​ 一是,归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic值必须一样;二是,服务器必须配置归档;三是,归档日志必须连续,
​ BACKUP ARCHIVE LOG ALL BACKUPSET ‘arch_bak_01’;
​ 先查询LSN范围。
​ select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
​ 然后备份归档
​ BACKUP ARCHIVELOGLSN BETWEEN 50414 AND 50478 BACKUPSET ‘/home/dm_bak/arch_bak_time_14-78’;
(4)脱机备份(./dmrman)
​ 需要设置归档和关闭数据库实例
​ 可执行写好的文件(行解析)
​ ./dmrman CTLFILE=/home/dm_cmd/cmd_rman.txt
1.全备(默认)
​ BACKUP DATABASE’/opt/dmdbms/data/DAMENG/dm.ini’ FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;
​ ./dmrman CTLSTMT="BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’;(dm.ini备份路径,若无则 SYSTEM_PATH下的 bak目录)
2.增量备份
​ BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ INCREMENT WITH BACKUPDIR '/home/dm_bak’BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
3.归档备份(默认all)
​ 全部备份
​ BACKUP ARCHIVE LOG DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’;
​ BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini’BACKUPSET ‘/home/dm_bak/arch_all_bak_01’;

2.5.4物理还原

​ 物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN工具(或者 SQL语句),把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。

还原方式:

(1)DM控制台导入
点击备份还原—>点击还原(恢复)—>根据需求还原恢复相应备份集

达梦数据库的学习使用

(2)联机还原
DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN执行。
1.表还原(表数据,结构)
RESTORE TABLE TAB_01 FROM BACKUPSET ‘tab_bak_01’;
RESTORE TABLE TAB_FOR_RES FROM BACKUPSET ‘/home/dm_bak/tab_bak_for_res_01’;

(3)脱机还原
1.数据库还原
(1)完全还原
RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_restore’;
(2)归档还原
RESTORE ARCHIVE LOG FROM BACKUPSET ‘/home/dm_bak/arch_bak_lsn_421401’ ALL TO ARCHIVEDIR ‘/home/dm_arch/arch’;
RESTORE ARCHIVE LOG FROM BACKUPSET ‘/home/dm_bak/arch_all_for_restore’ TO DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ OVERWRITE 2;
(3)恢复数据库
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_backupset’;
(4)归档恢复
SHOW BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_arch’ INFO DB;
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ WITH ARCHIVEDIR’/home/dm_arch/arch’ USE DB_MAGIC 1447060265;
(5)数据库更新
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ UPDATE DB_MAGIC;
2.表空间恢复
RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover’;
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN;
通过文件编号
SELECT ID, PATH FROM V$DATAFILE;
RESTORE DATABASE ‘/home/xm/DAMENG/dm.ini’TABLESPACE TS_FOR_RES_01 DATAFILE
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN;
不通过文件编号
RESTORE TABLESPACE TS_FOR_RES_01 DATAFILE ‘/home/xm/DAMENG/ts_for_res_01_02.dbf’, ‘/home/xm/DAMENG/ts_for_res_01_03.dbf’ FROM BACKUPSET ‘/home/dm_bak/ts_bak_for_dbf’;
RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN;
指定映射文件还原
RESTORE DATABASE ‘/home/xm/DAMENG/dm.ini’ TABLESPACE MAIN FROM BACKUPSET ‘/home/dm_bak/ts_bak_for_map’MAPPED FILE’/home/dm_mappedfile/map_file.txt’;
指定归档目录还原
RECOVER DATABASE ‘/home/xm/DAMENG/dm.ini’ TABLESPACE MAIN FROM BACKUPSET ‘/home/dm_bak/ts_bak_for_arch’ WITH ARCHIVEDIR’/home/dm_arch1’, ‘/home/dm_arch2’;

三、数据库工具介绍

3.1manager管理工具

​ 可以连接配置,管理表空间、用户、角色、模式、模式下对象等。 还可以做物理联机备份、逻辑导入导出、作业管理等操作。
达梦数据库的学习使用

3.2console控制台工具

​ 可以查看数据库的相应参数信息,实例信息,可以进行数据库备份与还原
达梦数据库的学习使用

3.3dts数据迁移工具

​ 可以进行数据迁移。支持达梦数据库之间的数据迁移,其他数据库到达梦数据库的迁移(mysql,oracle,SQLserver,db2,pg等),文件迁移到达梦数据库,达梦数据库迁移到文件。

达梦数据库的学习使用

达梦数据库的学习使用

3.4monitor性能监视工具

​ 可以监控数据库的使用情况以及一些数据库调优工作。

达梦数据库的学习使用

3.5dbca数据库配置助手

​ 可已进行数据库实例的初始化,后台脚本的注册。

达梦数据库的学习使用

四、DMSQL

4.1DM_SQL语言的特点

​ DM_SQL语言符合结构化查询语言 SQL标准,是标准 SQL的扩充。它集数据定义、数据查询、数据操纵和数据控制于一体,是一种统一的、综合的关系数据库语言。它功能强大,使用简单方便、容易为用户掌握。DM_SQL语言具有如下特点: 1. 功能一体化
​ DM_SQL的功能一体化表现在以下两个方面:

​ 1) DM_SQL 支持多媒体数据类型,用户在建表时可直接使用。DM 系统在处理常规数据与多媒体数据时达到了四个一体化:一体化定义、一体化存储、一体化检索、一体化处理,最大限度地提高了数据库管理系统处理多媒体的能力和速度;
​ 2) DM_SQL语言集数据库的定义、查询、更新、控制、维护、恢复、安全等一系列操作于一体,每一项操作都只需一种操作符表示,格式规范,风格一致,简单方便,很容易为用户所掌握。

  1. 两种用户接口使用统一语法结构的语言
    DM_SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能独立运行于联机交互方式。作为嵌入式语言,DM_SQL语句能够嵌入到 C和 C++语言程序中,将高级语言(也称主语言)灵活的表达能力、强大的计算功能与 DM_SQL 语言的数据处理功能相结合,完成各种复杂的事务处理。而在这两种不同的使用方式中,DM_SQL语言的语法结构是一致的,从而为用户使用提供了极大的方便性和灵活性。
  2. 高度非过程化
    DM_SQL语言是一种非过程化语言。用户只需指出“做什么”,而不需指出“怎么做”,对数据存取路径的选择以及 DM_SQL 语句功能的实现均由系统自动完成,与用户编制的应用程序与具体的机器及关系 DBMS的实现细节无关,从而方便了用户,提高了应用程序的开发效率,也增强了数据独立性和应用系统的可移植性。
  3. 面向集合的操作方式
    DM_SQL语言采用了集合操作方式。不仅查询结果可以是元组的集合,而且一次插入、删除、修改操作的对象也可以是元组的集合,相对于面向记录的数据库语言(一次只能操作一条记录)来说,DM_SQL语言的使用简化了用户的处理,提高了应用程序的运行效率。
  4. 语言简洁,方便易学
    DM_SQL语言功能强大,格式规范,表达简洁,接近英语的语法结构,容易为用户所掌握。

4.2DM_SQL语言的功能及语句

​ DM_SQL语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、查询、操纵和控制四个方面,通过各种不同的 SQL语句来实现。按照所实现的功能,DM_SQL语句分为以下几种:

  1. 用户、模式、基表、视图、索引、序列、全文索引、存储过程、触发器等数据库对象的定义和删除语句,数据库、用户、基表、视图、索引、全文索引等数据库对象的修改语句;

  2. 查询(含全文检索)、插入、删除、修改语句;

  3. 数据库安全语句。包括创建角色语句、删除角色语句,授权语句、回收权限语句,修改登录口令语句,审计设置语句、取消审计设置语句等。

    在嵌入方式中,为了协调 DM_SQL语言与主语言不同的数据处理方式,DM_SQL语言引入了游标的概念。因此在嵌入方式下,除了数据查询语句(一次查询一条记录)外,还有几种与游标有关的语句:

  4. 游标的定义、打开、关闭、拨动语句;

  5. 游标定位方式的数据修改与删除语句。
    为了有效维护数据库的完整性和一致性,支持 DBMS的并发控制机制,DM_SQL语言提供了事务的回滚(ROLLBACK)与提交(COMMIT)语句。同时 DM允许选择实施事务级读一致性,它保证同一事务内的可重复读,为此 DM提供用户多种手动上锁语句,和设置事务隔离级别语句。

4.3DM_SQL语言支持的表达式

​ DM 支持多种类型的表达式,包括数值表达式、字符串表达式、时间值表达式、时间间隔值表达式等。

4.4DM_SQL语言支持的数据库模式

​ DM_SQL语言支持关系数据库的三级模式,外模式对应于视图和部分基表,模式对应于基表,基表是独立存在的表。一个或若干个基表存放于一个存贮文件中,存贮文件中的逻辑结构组成了关系数据库的内模式。DM_SQL语言本身不提供对内模式的操纵语句。
​ 视图是从基表或其它视图上导出的表,DM 只将视图的定义保存在数据字典中。该定义实际为一查询语句,再为该查询语句取一名字即为视图名。每次调用该视图时,实际上是执行其对应的查询语句,导出的查询结果即为该视图的数据。所以视图并无自己的数据,它是一个虚表,其数据仍存放在导出该视图的基表之中。当基表中的数据改变时,视图中查询的数据也随之改变,因此,视图象一个窗口,用户透过它可看到自己权限内的数据。视图一旦定义也可以为多个用户所共享,对视图作类似于基表的一些操作就像对基表一样方便。

达梦数据库的学习使用

​ SQL语言的详细使用就不在这里一一赘述,详见达梦SQL语言使用手册。手册可以在达梦官网下载,可以直接下载,附上链接。http://www.dameng.com/down.aspx?TypeId=12&FId=t14:12:14

​ 还有其他的一些关于达梦数据库的使用手册都可以在网站上直接下载。

供对内模式的操纵语句。
​ 视图是从基表或其它视图上导出的表,DM 只将视图的定义保存在数据字典中。该定义实际为一查询语句,再为该查询语句取一名字即为视图名。每次调用该视图时,实际上是执行其对应的查询语句,导出的查询结果即为该视图的数据。所以视图并无自己的数据,它是一个虚表,其数据仍存放在导出该视图的基表之中。当基表中的数据改变时,视图中查询的数据也随之改变,因此,视图象一个窗口,用户透过它可看到自己权限内的数据。视图一旦定义也可以为多个用户所共享,对视图作类似于基表的一些操作就像对基表一样方便。

[外链图片转存中…(img-sJXgw2iE-1604047450586)]

​ SQL语言的详细使用就不在这里一一赘述,详见达梦SQL语言使用手册。手册可以在达梦官网下载,可以直接下载,附上链接。http://www.dameng.com/down.aspx?TypeId=12&FId=t14:12:14

​ 还有其他的一些关于达梦数据库的使用手册都可以在网站上直接下载。