暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

带你学习DM数据库的基本操作



一、登录DM8数据库的两种方式

1、通过自带的disql工具

进入数据库软件安装目录的 bin 目录下

  1. [dmdba@mydb bin]$ cd /home/dmdba/dmdbms/bin

  1. 登录命令:./disql username/password@IP:PORT

  2. [dmdba@mydb bin]$ ./disql SYSDBA/SYSDBA@192.168.59.223:5237


出现如上页面代表登录成功。

2、通过DM客户端工具进行连接

通过官网下载windows版本。

官网地址:https://www.dameng.com/list_103.html


下载后直接解压先点击iso镜像,再点击setup开始安装


一路默认至此界面,选择客户端

然后默认至成功即可。
点击DM管理工具进行数据库的连接


点击新建连接,输入IP、端口、用户名和密码进行连接。此处类似oracle数据库,使用超级管理员进行连接。


出现以下页面即登录成功。

二、创建表空间

使用命令创建表空间 TEST, 指定数据库文件为 ‘/data/dmdata/dameng/TEST.DBF’,初始化最小为 128M,其它默认,
表空间路径要提前规划创建。

  1. create tablespace "TEST" datafile '/data/dmdata/dameng/TEST.DBF' size 128 ;


如果不想一直手动去增加表空间的空间,可以提前设置,命令行修改表空间,打开自动扩展,每次自动扩展 100M ,扩展上限 10240M,两个参数可以根据自身的机器情况进行变化。示例如下:

  1. 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” 权限。示例参考如下:

  1. create user "TEST" identified by "Dameng@123" hash with SHA512 salt

  2. encrypt by "123456"

  3. default tablespace "TEST"

  4. default index tablespace "TEST";

  1. grant "PUBLIC","SOI" to "TEST";


授予用户DBA和RESOURCE 权限

  1. grant "DBA" to "TEST";

  2. grant "RESOURCE" to "TEST";


登录创建的普通用户test,需要注意的是如果密码含有特殊字符的情况下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移。
[dmdba@mydb bin]$ ./disql TEST/‘“Dameng@123”‘@192.168.59.223:5237

四、创建数据库对象

1、用户与模式的关系

每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要拥有访问权限,访问时还需加上模式名。

  1. select * from SYSOBJECTS t where t."TYPE$" ='SCH'; --查看模式

  2. select * from SYSOBJECTS t where t."SUBTYPE$" ='USER'; --查看用户

  3. --查询模式和用户的对应关系:

  4. select a.id scheid, a.name schename, b.id userid, b.name username

  5. from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b

  6. where a."TYPE$" = 'SCH' and a.pid = b.id;

切换至test schema

  1. set SCHEMA test;

2、创建表

在模式 TEST 下创建表 CITY,并插入数据。示例语句如下所示:

  1. CREATE TABLE test.city

  2. (

  3. city_id CHAR(3) NOT NULL,

  4. city_name VARCHAR(40) NULL,

  5. region_id INT NULL

  6. );

3、插入数据

  1. INSERT INTO test.city(city_id,city_name,region_id) VALUES('BJ','北京',1);

  2. INSERT INTO test.city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);

  3. INSERT INTO test.city(city_id,city_name,region_id) VALUES('SH','上海',2);

  4. INSERT INTO test.city(city_id,city_name,region_id) VALUES('NJ','南京',2);

  5. INSERT INTO test.city(city_id,city_name,region_id) VALUES('GZ','广州',3);

  6. INSERT INTO test.city(city_id,city_name,region_id) VALUES('HK','海口',3);

  7. INSERT INTO test.city(city_id,city_name,region_id) VALUES('WH','武汉',4);

  8. INSERT INTO test.city(city_id,city_name,region_id) VALUES('CS','长沙',4);

  9. INSERT INTO test.city(city_id,city_name,region_id) VALUES('SY','沈阳',5);

  10. INSERT INTO test.city(city_id,city_name,region_id) VALUES('XA','西安',6);

  11. INSERT INTO test.city(city_id,city_name,region_id) VALUES('CD','成都',7);

4、查询插入的数据

  1. SELECT * FROM test.city;

5、创建视图

对 CITY 表创建一个视图,命名为 V_CITY,保存 region_id 小于 4 的数据,列名有:city_id,city_name,region_id。示例语句如下所示:

  1. CREATE VIEW test.v_city AS

  2. SELECT

  3. city_id ,

  4. city_name ,

  5. region_id

  6. FROM

  7. test.city

  8. WHERE

  9. region_id < 4;


查询视图数据:

  1. SELECT * FROM test.v_city;

6、创建存储过程

创建一个名为 PROC_1 的存储过程,入参数据类型为 INT,变量 B 赋予初始值 10,输出变量 A 的值为输入的变量 A 值与变量 B 值之和。示例语句如下所示:

  1. CREATE

  2. PROCEDURE test.proc_1

  3. (a IN OUT INT)

  4. AS

  5. b INT:=10;

  6. BEGIN

  7. a:=a+b;

  8. PRINT 'test.PROC_1调用结果:'||a;

  9. END;/

  1. CALL test.proc_1(3);

7、创建函数

创建一个名为 FUN_1 的存储函数。该函数的返回类型为 INT 类型。两个参数 A、B 的和赋给了变量 S,RETURN 语句则将变量 S 的值作为函数的返回值返回。示例语句如下所示:

  1. CREATE

  2. FUNCTION test.fun_1

  3. (a INT, b INT)

  4. RETURN INT

  5. AS

  6. s INT;

  7. BEGIN

  8. s:=a+b;

  9. RETURN s;

  10. END;/

  1. SELECT test.fun_1(4,5);

8、创建序列

创建序列 SEQ_QUANTITY,起始值为 5,增量值为 2,最大值为 200。示例语句如下所示:

  1. CREATE SEQUENCE test.seq_quantity START WITH 5 INCREMENT BY 2 MAXVALUE 200;

  2. SELECT test.seq_quantity.nextval FROM dual;

9、创建触发器

创建一个触发器 TRG_UPD,当对表 CITY 进行更新操作时,定义的触发器 TRG_UPD 将被激发。示例语句如下所示:

  1. CREATE TRIGGER test.trg_upd AFTER

  2. UPDATE ON test.city

  3. FOR EACH ROW

  4. BEGIN

  5. PRINT 'UPDATE OPERATION ON CITY !!';

  6. END;

  1. UPDATE test.city SET city.region_id=8 WHERE city.city_id='XA';


文中的概念来源于网络,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。


文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论