mysql dms_关于MySQL与DMsql探寻

【前言】

DMsql指的是达梦数据库,这里只是一些浅显的sql。结合实际的运行效果和资料来探寻原理。我们以达梦数据库自带的表GRADE以及mysql随意创建的一个表作为测试。

1、查询全部数据

达梦数据库

select * from "SYSDBA"."GRADE";

f6f3cd3f756f2d482c6bb17c87b5acfe.png

mysql数据库

SELECT * FROM ceshi;

4023926335329bd135c1a96c6f2d59e2.png

2、更换表头

【加不加as的效果是一样的】

达梦数据库

select "CLASSID" frozen,"STU_COUNT" red ,"TEACHER_NAME" as red,"COURSE"

from "SYSDBA"."GRADE";

997a36c69f5ea093e6ed58e5e21d41ef.png

MySQL数据库

SELECT test as frozen, NAME as wcl,NAME wcl FROM ceshi;

3744dc7b2eb6977c025c93934b3439a7.png

3、组合新列 达梦与mysql只能拼接数字,不能拼接列或者其他字符

达梦数据库

select (123232+213213) as frozen from "SYSDBA"."GRADE";

ba4711ca239088154696980a0b5d27ab.png

MySQL数据库

SELECT (1232+13121) as frozen FROM ceshi;

343c71afbc71a33eefadb3a8c6400426.png

4、区间查询

达梦数据库

select "CLASSID","STU_COUNT","TEACHER_NAME","COURSE"

from "SYSDBA"."GRADE" where "STU_COUNT" between 20 and 38;

d7f8df4ef81a4c0e915bcf4ca659d2a2.png

MySQL数据库

SELECT FROM ceshi WHERE age BETWEEN 30 and 80;

0598ece3e7d7f030a4203e4f94c478a2.png

5、按首字母查

【ps】达梦数据库按照 ASCII(str)来排序、mysql在创建的时候一般选择选择utf-8作为编码

达梦数据库

select from "SYSDBA"."GRADE" order by "TEACHER_NAME";

16f8b34c478434847cde093658b775e5.png

MySQL数据库

SELECT *FROM ceshi ORDER BY Name;

3e8c788f277fa769862d59c73bda06dd.png

【ps】那么mysql的排序规则是什么呢,探究一下

SELECT SUBSTRING(name,1,1), ASCII(SUBSTRING(name,1,1)) FROM ceshi ORDER BY SUBSTRING(name,1,1);

a8808c937c549568ff9be5a0ad164f3a.png

6.1、按照gbk ASCII(str)试试?

SELECT SUBSTRING(name,1,1), ASCII(CONVERT(SUBSTRING(name,1,1) USING gbk)) FROM ceshi ORDER BY CONVERT(SUBSTRING(name,1,1) USING gbk);

ffbb3422a631be080ebdb1aec0acdab3.png

7、置换null为某个字符

达梦数据库

达梦的语法同mysql这里没有null的数据,就略过了。

mysql数据库

SELECT COALESCE(Name, "frozen") from ceshi ;

47ab32dfa532f729dbc185d571143bbb.png

8、【高级】条件返回case when

达梦数据库

select ,(case when "STU_COUNT" < 40 then ‘加油‘ else ‘还行‘ end)as frozen from "SYSDBA"."GRADE";

2108a61cc4fe6c7cdaf8d23c3e5c4d82.png

mysql数据库

【ps】我认为小于100的都是凡人,大于100的都是仙人。

SELECT,(CASE WHEN Age < 100 THEN "凡人" ELSE ‘仙人‘ END) as frozen from ceshi;

507b7778c1721653324b574fcd7eccf0.png

9、聚合函数

一、AVG()

AVG()函数计算一组值的平均值。 它计算过程中是忽略NULL值的.

达梦数据库

select avg("STU_COUNT") from "SYSDBA"."GRADE";

mysql数据库

SELECT AVG(Age) FROM ceshi;

da7eb45df5d7ddc7a00431b5e9502695.png

二、COUNT()函数

达梦数据库与mysql一致

SELECT COUNT(*) FROM ceshi;

三、SUM()函数

达梦数据库与mysql一致

SELECT SUM(Age) FROM ceshi;

四、MAX()函数

select max("STU_COUNT") from "SYSDBA"."GRADE";

五、MIN()函数

select min("STU_COUNT") from "SYSDBA"."GRADE";

10、循环函数

mysql数据库

delimiter $$$

create procedure zqtest() -- 创建函数

begin

declare i int default 0;

set i=0;

start transaction;

while i<12 do

INSERT into ceshi(uuid) VALUES (i);

set i=i+1;

end while;

commit;

end

$$$

delimiter;

call zqtest();

f82b37be84e5bec79881fda8ad7da52e.png

创建完执行过程,要在函数中运行。

得到结果:

e712a87780c35ba6235a7700524cbd87.png

关于MySQL与DMsql探寻

标签:条件   case   src   循环函数   comm   begin   i+1   star   min()

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://blog.51cto.com/13479739/2480879

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值