dms系统与mysql_关于MySQL与DMsql探寻

【前言】

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

1、查询全部数据

达梦数据库

select * from "SYSDBA"."GRADE";

e162220fba642badb2d94c9d07f27544.png

mysql数据库

SELECT * FROM ceshi;

be3f78eff805f30c18575187efb382d2.png

2、更换表头

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

达梦数据库

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

from "SYSDBA"."GRADE";

e3c3cadd371f4708386dcf39c6a74856.png

MySQL数据库

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

1588f4fe181e593a015352fab4d70400.png

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

达梦数据库

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

3f0c4f6ea8fb28ea331224220151a42e.png

MySQL数据库

SELECT (1232+13121) as frozen FROM ceshi;

0a9a51de14e9b965b671ac66f44bf4ee.png

4、区间查询

达梦数据库

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

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

0ca773e5b792993ef9df389b2971de1a.png

MySQL数据库

SELECT FROM ceshi WHERE age BETWEEN 30 and 80;

72bbcfdbd4e72577cb6f50e864c064ae.png

5、按首字母查

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

达梦数据库

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

c5537e029f05d346772520a3e1f9944b.png

MySQL数据库

SELECT *FROM ceshi ORDER BY Name;

85d174a1b47dea5bc4d0d158b86d9910.png

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

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

3cf40a145cdd21575e6576343553f5df.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);

f732946e12ce438742fb5072f3f2d30a.png

7、置换null为某个字符

达梦数据库

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

mysql数据库

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

c98023e644ca0476b19ffd7c176c7ecf.png

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

达梦数据库

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

d0fba46b721003bbf0187deaf2246ea4.png

mysql数据库

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

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

fdc47db216af951e7b82804f05147cf2.png

9、聚合函数

一、AVG()

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

达梦数据库

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

mysql数据库

SELECT AVG(Age) FROM ceshi;

4145f0d6f29ee2cd16e096142bfe7792.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();

07661829ac151002310c2aa2136ba369.png

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

得到结果:

9b3f04218b31d6bd39feda4b82a82020.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值