达梦数据库的学习使用
達夢數據庫的學習
一、數據庫的安裝
? 之前已有發表數據庫的安裝博文,在此附上鏈接。(單庫的安裝)
? 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.刪除表空間
? 已使用的,某個用戶默認的表空間不能夠刪除??梢怨芾砉ぞ哂益I相應的表空間,或者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*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
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*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
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語言集數據庫的定義、查詢、更新、控制、維護、恢復、安全等一系列操作于一體,每一項操作都只需一種操作符表示,格式規范,風格一致,簡單方便,很容易為用戶所掌握。
DM_SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能獨立運行于聯機交互方式。作為嵌入式語言,DM_SQL語句能夠嵌入到 C和 C++語言程序中,將高級語言(也稱主語言)靈活的表達能力、強大的計算功能與 DM_SQL 語言的數據處理功能相結合,完成各種復雜的事務處理。而在這兩種不同的使用方式中,DM_SQL語言的語法結構是一致的,從而為用戶使用提供了極大的方便性和靈活性。
DM_SQL語言是一種非過程化語言。用戶只需指出“做什么”,而不需指出“怎么做”,對數據存取路徑的選擇以及 DM_SQL 語句功能的實現均由系統自動完成,與用戶編制的應用程序與具體的機器及關系 DBMS的實現細節無關,從而方便了用戶,提高了應用程序的開發效率,也增強了數據獨立性和應用系統的可移植性。
DM_SQL語言采用了集合操作方式。不僅查詢結果可以是元組的集合,而且一次插入、刪除、修改操作的對象也可以是元組的集合,相對于面向記錄的數據庫語言(一次只能操作一條記錄)來說,DM_SQL語言的使用簡化了用戶的處理,提高了應用程序的運行效率。
DM_SQL語言功能強大,格式規范,表達簡潔,接近英語的語法結構,容易為用戶所掌握。
4.2DM_SQL語言的功能及語句
? DM_SQL語言是一種介于關系代數與關系演算之間的語言,其功能主要包括數據定義、查詢、操縱和控制四個方面,通過各種不同的 SQL語句來實現。按照所實現的功能,DM_SQL語句分為以下幾種:
用戶、模式、基表、視圖、索引、序列、全文索引、存儲過程、觸發器等數據庫對象的定義和刪除語句,數據庫、用戶、基表、視圖、索引、全文索引等數據庫對象的修改語句;
查詢(含全文檢索)、插入、刪除、修改語句;
數據庫安全語句。包括創建角色語句、刪除角色語句,授權語句、回收權限語句,修改登錄口令語句,審計設置語句、取消審計設置語句等。
在嵌入方式中,為了協調 DM_SQL語言與主語言不同的數據處理方式,DM_SQL語言引入了游標的概念。因此在嵌入方式下,除了數據查詢語句(一次查詢一條記錄)外,還有幾種與游標有關的語句:
游標的定義、打開、關閉、撥動語句;
游標定位方式的數據修改與刪除語句。
為了有效維護數據庫的完整性和一致性,支持 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
? 還有其他的一些關于達夢數據庫的使用手冊都可以在網站上直接下載。
總結
以上是生活随笔為你收集整理的达梦数据库的学习使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LaTeX数学符号大全
- 下一篇: mysql 慢查询过多_MySQL 慢查