达梦数据库的SQL语言学习(一)

DM_SQL语言集数据库的定义、查询、更新、控制、维护、恢复、安全等一系列操作于一体,每一项操作都只需一种操作符表示。DM_SQL语句分为以下几种:1.用户、模式、基表、视图、索引、序列、全文索引、存储过程、触发器等数据库对象的定义和删除语句,数据库、用户、基表、视图、索引、全文索引等数据库对象的修改语句;2.查询(含全文检索)、插入、删除、修改语句;3.数据库安全语句。创建角色、删除角色、授权、

DM_SQL语言集数据库的定义、查询、更新、控制、维护、恢复、安全等一系列操作于一体,每一项操作都只需一种操作符表示。
DM_SQL语句分为以下几种:
1.用户、模式、基表、视图、索引、序列、全文索引、存储过程、触发器等数据库对象的定义和删除语句,数据库、用户、基表、视图、索引、全文索引等数据库对象的修改语句;
2.查询(含全文检索)、插入、删除、修改语句;
3.数据库安全语句。创建角色、删除角色、授权、回收权限语句、修改登录口令语句,审计设置语句、取消审计设置语句等。
DM_SQL语言引入了游标的概念,游标的定义、打开、关闭、拨动语句;游标定位方式的数据修改和删除语句。
DM_SQL语言提供了事务的回滚(ROLLBACK)和提交(COMMIT)语句。
数据库修改语句
使用DM_SQL创建一个模式
SQL> create schema res authorization sysdba;
2 /
创建一个表空间
SQL> create tablespace bookshop1 datafile ‘bookshop1.dbf’ size 100;
创建表,将表存储在表空间bookshop1中
SQL> create table res.address(addressid int identity(1,1) primary key,address1 varchar(60) not null,address2 varchar(60),postalcode varchar(15) not null) storage(on bookshop1);
添加日志文件
SQL> alter database add logfile ‘/dm8/dameng01_0.log’ size 200;
扩充日志文件
SQL> alter database resize logfile ‘/dm8/dmlog_0.log’ to 300;
将数据库改为mount状态,重命名日志文件
SQL> alter database rename logfile ‘/dm8/dmlog_0.log’ to ‘dm8/dmlog_1.log’;
将数据库改为mount状态,设置数据库模式为非归档
SQL> alter database archivelog;
将数据库改为mount状态,设置数据库模式为归档
SQL> alter database noarchivelog;
将数据库改为mount状态,添加本地归档
SQL> alter database mount;
SQL> alter database add archivelog ‘dest=/dm8/arch_local,type=local,file_size=128,space_limit=1024’;
将数据库改为mount状态,添加一个实时归档配置,远程服务实例名为realtime,需要事先配置mail
SQL> alter database add archivelog ‘dest= realtime,type=realtime’;
将数据库改为mount状态,增加一个异步归档配置,远程服务实例名为asyn,定时器名为timer1,需事先配置好mail和timer。
SQL> alter database add archivelog ‘dest=asyn,type=async,timer_name=timer1’;

创建用户
用户名在服务器中唯一;
系统为一个用户存储的信息主要有:用户名、口令、资源限制
用户口令以密文形式存储
如果没有指定用户默认表空间,则系统指定MAIN表空间为用户的默认表空间
如果没有指定用户默认索引表空间,则HUGE表的索引缺省存储在用户的默认表空间中,普通表的索引缺省存储在表的聚集索引所在的表空间中。临时表的索引永远存储在TEMP表空间。
系统预先设置了三个用户,分别为SYSDBA\SYSAUDITOR和SYSSSO,其中SYSDBA具备DBA角色,SYSAUDITOR具备DB_AUDIT_ADMIN角色,而SYSSSO具备DB_POLICY_ADMIN系统角色。
创建一个用户bookshop,设置会话超时为30分钟
SQL> create user bookshop_user identified by bookshop1 limit connect_time 30;
每个用户均可修改自身的口令,SYSDBA用户可强制修改所有其他用户的口令;只有具备ALTER USER权限的用户才能修改其身份验证模式、系统角色及资源限制项;不论dm.ini的DDL_AUTO_COMMIT设置为自动提交还是非自动提交,ALTER USER操作都会被自动提交。
修改用户BOOKSHOP_USER,会话空闲期为无限制,最大连接数为10.
SQL> alter user bookshop_user limit session_per_user 10,connect_idle_time unlimited;
只有具备DROP USER权限的用户才能进行删除用户的操作。
管理模式
模式定义语句创建一个架构,可以将模式看作是一个包含表、视图和权限定义的对象。在DM数据库中, 一个用户可以创建多个模式,一个模式中的对象(表、视图)可以被多个用户使用。
系统为每个用户自动建立了一个与用户名同名的模式作为默认模式,用户可以用模式定义语句建立其他模式。
只有具有DBA或CREATE SCHEMA权限的用户才能在指定的数据库中定义模式。
将当前的模式切换为rem模式。
SQL> set schema rem;
删除一个模式,选项CASCADE表示将整个模式、模式中的对象、以及该模式相关的依赖关系全部删除。
SQL> drop schema rem cascade;
删除一个模式,选项RESTRICT表示将一个空的模式删除,如果模式不为空,将不能删除。
SQL> drop schema re restrict;
管理表空间
只有具有创建表空间权限的用户才能创建表空间
表空间名在数据库中是唯一的
一个表空间中,数据文件和镜像文件不能超过256个
如果数据库已经加密,就不再支持表空间加密。
创建一个表空间
SQL> create tablespace ts datafile ‘/dm8/rs.dbf’ size 128;
将表空间重命名
SQL> alter tablespace ts rename to ts1;
给表空间添加数据文件
SQL> alter tablespace ts1 add datafile ‘/dm8/ts1_1.dbf’ size 128;
修改表空间数据文件的大小
SQL> alter tablespace ts1 resize datafile ‘/dm8/ts1_1.dbf’ to 200;
将表空间中的数据文件重命名
SQL> alter tablespace ts1 offline;
SQL> alter tablespace ts1 rename datafile ‘/dm8/ts1_1.dbf’ to ‘/dm8/ts1_2.dbf’;
SQL> alter tablespace ts1 online;
修改表空间中的数据文件自动扩展,每次扩展10M,最大文件为1000M
SQL> alter tablespace ts1 datafile ‘/dm8/ts1_2.dbf’ autoextend on next 10 maxsize 1000;
修改表空间TS1的缓冲池名字为KEEP
SQL> alter tablespace ts1 cache=‘KEEP’;
修改表空间为CORRUPT状态,CORRUPT是当表空间发送损坏(表空间还原失败,或者数据文件丢失或损坏情况下),CORRUPT状态运行删除损坏的表空间,如果表空间上定义有对象,需要先删除所有对象,再删除表空间。
SQL> alter tablespace ts1 offline;
SQL> alter tablespace ts1 corrupt;

阅读剩余
THE END