首先给大家分享一下学习使用达梦数据库的一些感受:
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的区别
COMMENT ON TABLE xxx IS xxx
COMMENT ON COLUMN xxx IS xxx
不支持 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());
不支持 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
不支持 substring_index 函数, 使用 substr / substring 代替,
语法:
substr(char[,m[,n]])
substring(char[from m[ for n]])
不支持 group_concat 函数,使用 wm_concat 代替,
例子:
select wm_concat(id) as idstr from persion ORDER BY id ;
不支持 from_unixtime 函数,使用 round 代替
语法:round(date[,format])
不支持 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;
current_timestamp 的返回值带有时区,
例子:
select current_timestamp();
2018-12-17 14:34:18.433839 +08:00
convert(type, value) 函数,
与 mysql 的 convert 一样,但是参数是反过来的,mysql 是 convert(value, type)
不支持 on duplicate key update,
使用 merge into 代替
不支持 ignore,即 insert ignore into
不支持 replace into,
使用 merge into 代替
不支持 if。
不支持 “”,只支持’’
不支持 auto_increment, 使用 identity 代替
如: identity(1, 1),从 1 开始,每次增 1
不支持 longtext 类型,
可用 CLOB 代替。
文章
阅读量
获赞