一、登录DM8数据库的两种方式
1、通过自带的disql工具
进入数据库软件安装目录的 bin 目录下
[dmdba@mydb bin]$ cd /home/dmdba/dmdbms/bin
登录命令:./disql username/password@IP:PORT
[dmdba@mydb bin]$ ./disql SYSDBA/SYSDBA@192.168.59.223:5237
出现如上页面代表登录成功。
2、通过DM客户端工具进行连接
通过官网下载windows版本。
下载后直接解压先点击iso镜像,再点击setup开始安装
一路默认至此界面,选择客户端
然后默认至成功即可。
点击DM管理工具进行数据库的连接
点击新建连接,输入IP、端口、用户名和密码进行连接。此处类似oracle数据库,使用超级管理员进行连接。
出现以下页面即登录成功。
二、创建表空间
使用命令创建表空间 TEST, 指定数据库文件为 ‘/data/dmdata/dameng/TEST.DBF’,初始化最小为 128M,其它默认,
表空间路径要提前规划创建。
create tablespace "TEST" datafile '/data/dmdata/dameng/TEST.DBF' size 128 ;
如果不想一直手动去增加表空间的空间,可以提前设置,命令行修改表空间,打开自动扩展,每次自动扩展 100M ,扩展上限 10240M,两个参数可以根据自身的机器情况进行变化。示例如下:
alter tablespace "TEST" datafile '/data/dmdata/dameng/TEST.DBF' autoextend on next 100 maxsize 10240;
同样地,为了安全可以设置加密算法。
示例如下:
create tablespace “TEST1” datafile ‘/data/dmdata/damneg/TEST.DBF’ size 128 autoextend on next 100 maxsize 10240 CACHE = NORMAL encrypt with RC4;
三、创建用户并关联表空间
使用命令行方式创建用户 TEST ,密码 “Dameng@123”,使用散列算法 SHA512 ,使用存储加密密钥为 “123456”,指定表空间为 TEST,索引表空间为 TEST,授予 “PUBLIC” 和 “SOI” 权限。示例参考如下:
create user "TEST" identified by "Dameng@123" hash with SHA512 salt
encrypt by "123456"
default tablespace "TEST"
default index tablespace "TEST";
grant "PUBLIC","SOI" to "TEST";
授予用户DBA和RESOURCE 权限
grant "DBA" to "TEST";
grant "RESOURCE" to "TEST";
登录创建的普通用户test,需要注意的是如果密码含有特殊字符的情况下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移。
[dmdba@mydb bin]$ ./disql TEST/‘“Dameng@123”‘@192.168.59.223:5237
四、创建数据库对象
1、用户与模式的关系
每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要拥有访问权限,访问时还需加上模式名。
select * from SYSOBJECTS t where t."TYPE$" ='SCH'; --查看模式
select * from SYSOBJECTS t where t."SUBTYPE$" ='USER'; --查看用户
--查询模式和用户的对应关系:
select a.id scheid, a.name schename, b.id userid, b.name username
from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b
where a."TYPE$" = 'SCH' and a.pid = b.id;
切换至test schema
set SCHEMA test;
2、创建表
在模式 TEST 下创建表 CITY,并插入数据。示例语句如下所示:
CREATE TABLE test.city
(
city_id CHAR(3) NOT NULL,
city_name VARCHAR(40) NULL,
region_id INT NULL
);
3、插入数据
INSERT INTO test.city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('NJ','南京',2);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('GZ','广州',3);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('HK','海口',3);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('WH','武汉',4);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('CS','长沙',4);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('SY','沈阳',5);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('XA','西安',6);
INSERT INTO test.city(city_id,city_name,region_id) VALUES('CD','成都',7);
4、查询插入的数据
SELECT * FROM test.city;
5、创建视图
对 CITY 表创建一个视图,命名为 V_CITY,保存 region_id 小于 4 的数据,列名有:city_id,city_name,region_id。示例语句如下所示:
CREATE VIEW test.v_city AS
SELECT
city_id ,
city_name ,
region_id
FROM
test.city
WHERE
region_id < 4;
查询视图数据:
SELECT * FROM test.v_city;
6、创建存储过程
创建一个名为 PROC_1 的存储过程,入参数据类型为 INT,变量 B 赋予初始值 10,输出变量 A 的值为输入的变量 A 值与变量 B 值之和。示例语句如下所示:
CREATE
PROCEDURE test.proc_1
(a IN OUT INT)
AS
b INT:=10;
BEGIN
a:=a+b;
PRINT 'test.PROC_1调用结果:'||a;
END;/
CALL test.proc_1(3);
7、创建函数
创建一个名为 FUN_1 的存储函数。该函数的返回类型为 INT 类型。两个参数 A、B 的和赋给了变量 S,RETURN 语句则将变量 S 的值作为函数的返回值返回。示例语句如下所示:
CREATE
FUNCTION test.fun_1
(a INT, b INT)
RETURN INT
AS
s INT;
BEGIN
s:=a+b;
RETURN s;
END;/
SELECT test.fun_1(4,5);
8、创建序列
创建序列 SEQ_QUANTITY,起始值为 5,增量值为 2,最大值为 200。示例语句如下所示:
CREATE SEQUENCE test.seq_quantity START WITH 5 INCREMENT BY 2 MAXVALUE 200;
SELECT test.seq_quantity.nextval FROM dual;
9、创建触发器
创建一个触发器 TRG_UPD,当对表 CITY 进行更新操作时,定义的触发器 TRG_UPD 将被激发。示例语句如下所示:
CREATE TRIGGER test.trg_upd AFTER
UPDATE ON test.city
FOR EACH ROW
BEGIN
PRINT 'UPDATE OPERATION ON CITY !!';
END;
UPDATE test.city SET city.region_id=8 WHERE city.city_id='XA';