注册
达梦数据库学习使用过程中的一些感受
培训园地/ 文章详情 /

达梦数据库学习使用过程中的一些感受

流兮 2023/02/15 1916 0 0

首先给大家分享一下学习使用达梦数据库的一些感受:
1、相对比较容易上手;
2、想当人性化,大多数操作都可以图形化解决;
3、遇到的大部分问题都可以在网上找到,这点很重要;

达梦数据库介绍

达梦数据库管理系统(以下简称DM)是基于客户/服务器方式的国产数据库管理系统,可以安装在多种计算机操作系统平台上,典型的操作系统有:Windows(Windows2000/2003、XP/Vista/7/8/10/Server等)、Linux、HP-UNIX、Solaris、FreeBSD和AIX等。对于不同的系统平台,有不同的安装步骤(我使用的是vmware15和国产麒麟系统)。后面主要也是介绍在麒麟系统中操作。

数据库开发
先从几个比较浅显的技术点总结达梦数据库需要注意的地方,先保证能够完成基础的开发工作,今后随时补充和修正。
(1)创建数据库时注意大小写敏感问题

主要注意表名和字段名,小写时需要加双引号。

(2)如何连接达梦数据库 ,使用什么工具?

基于JDBC的工具就可以,比如:SQuirrel SQL、DbVisualizer

(3)客户询问数据支持的环境?

数据库基于RH6,支持国产华为芯片,操作系统可在中标麒麟环境中运行

(4)SQL开发时困难吗?

对于有开发经验的技术人员几乎没有难度,符合SQL92标准,完美契合Oracle,具有很好的兼容性。

研发人员使用存储过程、触发器、函数等研发与Oracle相近,对于系统改造而言几乎没有重新学习的成本。

(5)达梦数据库性能如何?

哇,太专业了,上文已经提到过,达梦数据库在国产数据产品中有很高的市场占有率,已成功应用于金融、电力、航空、通信、电子政务等30多个行业领域。最近在湖北银行网银核心系统上线,证明未来在金融行业的竞争力,也表明产品具备高复杂应用环境下的支撑水准。

与MySQL的区别

  1. 创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON IS 代替,如:

COMMENT ON TABLE xxx IS xxx
COMMENT ON COLUMN xxx IS xxx

  1. 不支持 date_sub 函数,使用 dateadd(datepart,n,date) 代替,

    其中,datepart可以为:year(yy,yyyy),quarter(qq,q),month(mm,m),dayofyear(dy,y),day(dd,d),week(wk,ww),weekday(dw),hour(hh), minute(mi,n), second(ss,s), millisecond(ms)
    例子:
    select dateadd(month, -6, now());
    select dateadd(month, 2, now());

  2. 不支持 date_format 函数,它有三种代替方法:

    a: 使用 datepart 代替:语法:datepart(datepart, date),返回代表日期的指定部分的整数,

     datepart可以为:year(yy,yyyy),quarter(qq,q),month(mm,m),dayofyear(dy,y),day(dd,d),week(wk,ww),weekday(dw),hour(hh),                   minute(mi,n),second(ss,s), millisecond(ms)
      例子:
      select datepart(year, '2018-12-13 08:45:00'); --2018
      select datepart(month, '2018-12-13 08:45:00'); --12
    

    b: 使用 date_part 代替,功能和 datepart 一样,写法不同,参数顺序颠倒,且都要加引号,

    例子:
    select date_part('2018-12-13 08:45:00', 'year');--2018
    select date_part('2018-12-13 08:45:00', 'mm'); -- 12
    

    c: 使用 extract 代替,语法:extract(dtfield from date),从日期类型date中抽取dtfield对应的值
    dtfield 可以是 year,month,day,hour,minute,second
    例子:
    select extract(year from ‘2018-12-13 08:45:00’); --2018
    select extract(month from ‘2018-12-13 08:45:00’); --12

  3. 不支持 substring_index 函数, 使用 substr / substring 代替,

    语法:
    substr(char[,m[,n]])
    substring(char[from m[ for n]])

  4. 不支持 group_concat 函数,使用 wm_concat 代替,

    例子:
    select wm_concat(id) as idstr from persion ORDER BY id ;

  5. 不支持 from_unixtime 函数,使用 round 代替

    语法:round(date[,format])

  6. 不支持 case-when-then-else ,

    例如:
    select case when id = 2 then “aaa” when id = 3 then “bbb” else “ccc” end as test
    from (select id from person) tt;

  7. current_timestamp 的返回值带有时区,

    例子:
    select current_timestamp();
    2018-12-17 14:34:18.433839 +08:00

  8. convert(type, value) 函数,

    与 mysql 的 convert 一样,但是参数是反过来的,mysql 是 convert(value, type)

  9. 不支持 on duplicate key update,

    使用 merge into 代替

  10. 不支持 ignore,即 insert ignore into

  11. 不支持 replace into,

    使用 merge into 代替

  12. 不支持 if。

  13. 不支持 “”,只支持’’

  14. 不支持 auto_increment, 使用 identity 代替

    如: identity(1, 1),从 1 开始,每次增 1

  15. 不支持 longtext 类型,

    可用 CLOB 代替。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服