mysql dms,关于MySQL与DMsql探寻

【前言】

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

1、查询全部数据

达梦数据库

select * from "SYSDBA"."GRADE";

079a5c090a06f965ba21ce0070722f6d.png

mysql数据库

SELECT * FROM ceshi;

d0d34c636be1c7dd6279d0e9d16b1a92.png

2、更换表头

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

达梦数据库

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

from "SYSDBA"."GRADE";

2bbfcf7384667a6a7d77cf754d97f278.png

MySQL数据库

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

ae3a94590f584fc2479733a23fee3ea6.png

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

达梦数据库

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

e4ffef838dc4b06b74870a439babd8fd.png

MySQL数据库

SELECT (1232+13121) as frozen FROM ceshi;

ef9562c345c8ab439047fcd1e467391c.png

4、区间查询

达梦数据库

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

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

fe6d1ff7c2d544f2b9dbb394045463a0.png

MySQL数据库

SELECT FROM ceshi WHERE age BETWEEN 30 and 80;

af5aee78687da5238c4cb93098d23e3c.png

5、按首字母查

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

达梦数据库

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

c1e9e908d6bf50906ff8148c16edcbb5.png

MySQL数据库

SELECT *FROM ceshi ORDER BY Name;

04e981e46eed87b4b96f149cedd9b3a4.png

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

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

54d6627b9253f0203250cb0a11421cc7.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);

bf08f9163808e74eb2adf332f0f982c9.png

7、置换null为某个字符

达梦数据库

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

mysql数据库

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

01efecdc2b840675fa935425e31471d5.png

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

达梦数据库

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

b046a392097aa6bc450ebca88c213e16.png

mysql数据库

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

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

312e57227093e577143095194b4099af.png

9、聚合函数

一、AVG()

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

达梦数据库

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

mysql数据库

SELECT AVG(Age) FROM ceshi;

71ceb3bf466fa2873b68ec3546243648.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();

653c1f6de5afc2f1ee986c4145331ca0.png

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

得到结果:

203f750b06b527024c48c7c67fcde1f4.png

标签:ceshi,GRADE,DMsql,MySQL,SELECT,mysql,数据库,达梦,探寻

来源: https://blog.51cto.com/13479739/2480879

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值