关于MySQL与DMsql探寻
【前言】
DMsql指的是达梦数据库,这里只是一些浅显的sql。结合实际的运行效果和资料来探寻原理。我们以达梦数据库自带的表GRADE以及mysql随意创建的一个表作为测试。
1、查询全部数据
达梦数据库
select * from "SYSDBA"."GRADE";
mysql数据库
SELECT * FROM ceshi;
2、更换表头
【加不加as的效果是一样的】
达梦数据库
select "CLASSID" frozen,"STU_COUNT" red ,"TEACHER_NAME" as red,"COURSE"
from "SYSDBA"."GRADE";
MySQL数据库
SELECT test as frozen, NAME as wcl,NAME wcl FROM ceshi;
3、组合新列 达梦与mysql只能拼接数字,不能拼接列或者其他字符
达梦数据库
select (123232+213213) as frozen from "SYSDBA"."GRADE";
MySQL数据库
SELECT (1232+13121) as frozen FROM ceshi;
4、区间查询
达梦数据库
select "CLASSID","STU_COUNT","TEACHER_NAME","COURSE"
from "SYSDBA"."GRADE" where "STU_COUNT" between 20 and 38;
MySQL数据库
SELECT FROM ceshi WHERE age BETWEEN 30 and 80;
5、按首字母查
【ps】达梦数据库按照 ASCII(str)来排序、mysql在创建的时候一般选择选择utf-8作为编码
达梦数据库
select from "SYSDBA"."GRADE" order by "TEACHER_NAME";
MySQL数据库
SELECT *FROM ceshi ORDER BY Name;
【ps】那么mysql的排序规则是什么呢,探究一下
SELECT SUBSTRING(name,1,1), ASCII(SUBSTRING(name,1,1)) FROM ceshi ORDER BY SUBSTRING(name,1,1);
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);
7、置换null为某个字符
达梦数据库
达梦的语法同mysql这里没有null的数据,就略过了。
mysql数据库
SELECT COALESCE(Name, "frozen") from ceshi ;
8、【高级】条件返回case when
达梦数据库
select ,(case when "STU_COUNT" < 40 then '加油' else '还行' end)as frozen from "SYSDBA"."GRADE";
mysql数据库
【ps】我认为小于100的都是凡人,大于100的都是仙人。
SELECT ,(CASE WHEN Age < 100 THEN "凡人" ELSE '仙人' END) as frozen from ceshi;
9、聚合函数
一、AVG()
AVG()函数计算一组值的平均值。 它计算过程中是忽略NULL值的.
达梦数据库
select avg("STU_COUNT") from "SYSDBA"."GRADE";
mysql数据库
SELECT AVG(Age) FROM ceshi;
二、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();
创建完执行过程,要在函数中运行。
得到结果:
- [转]关于MYSQL的show status解详
- MySQL中关于join的一个误区
- 关于mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
- 关于MySQL分表操作的研究
- 关于MySQL的卸载
- 关于mysql 执行批量的sql 语句问题:&allowMultiQueries=true
- 关于mysql里面写sql语句,或者直接在表里写汉字,都是乱码问题解决
- MySQL主从复制中关于AUTO_INCREMENT的奇怪问题
- MYSQL 中关于时间戳在C#中的实现
- 关于mysql的基本函数,
- 关于MYSQL 远程登录的授权方法 命令
- 关于MySQL数据导出导入方法
- 关于mysql varchar 类型的最大长度限制
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
- mysql官方关于2013和2006错误代码产生原因和解决方案
- 关于mysql-5.7.9-winx64以及其他系列安装的问题解决
- MySQL学习笔记(四):关于模糊匹配like
- 关于c++下使用mysql的一些问题
- 关于 MySQL LEFT JOIN 你可能需要了解的三点
- tomcat+mysql+jsp关于数据库驱动的配置