【前言】
DMsql指的是達夢數據庫,這裏只是一些淺顯的sql。結合實際的運行效果和資料來探尋原理。咱們以達夢數據庫自帶的表GRADE以及mysql隨意建立的一個表做爲測試。
一、查詢所有數據
達夢數據庫
select * from "SYSDBA"."GRADE";
mysql
mysql數據庫
SELECT * FROM ceshi;
sql
二、更換表頭
【加不加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;
三、組合新列 達夢與mysql只能拼接數字,不能拼接列或者其餘字符
達夢數據庫
select (123232+213213) as frozen from "SYSDBA"."GRADE";
MySQL數據庫
SELECT (1232+13121) as frozen FROM ceshi;
四、區間查詢
達夢數據庫
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;
五、按首字母查
【ps】達夢數據庫按照 ASCII(str)來排序、mysql在建立的時候通常選擇選擇utf-8做爲編碼
達夢數據庫
select from "SYSDBA"."GRADE" order by "TEACHER_NAME";
MySQL數據庫
SELECT *FROM ceshi ORDER BY Name;
ide
【ps】那麼mysql的排序規則是什麼呢,探究一下
SELECT SUBSTRING(name,1,1), ASCII(SUBSTRING(name,1,1)) FROM ceshi ORDER BY SUBSTRING(name,1,1);
6.一、按照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);
函數
七、置換null爲某個字符
達夢數據庫
達夢的語法同mysql這裏沒有null的數據,就略過了。
mysql數據庫
SELECT COALESCE(Name, "frozen") from ceshi ;
八、【高級】條件返回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;
測試
九、聚合函數
1、AVG()
AVG()函數計算一組值的平均值。 它計算過程當中是忽略NULL值的.
達夢數據庫
select avg("STU_COUNT") from "SYSDBA"."GRADE";
mysql數據庫
SELECT AVG(Age) FROM ceshi;
ui
2、COUNT()函數
達夢數據庫與mysql一致
SELECT COUNT(*) FROM ceshi;
3、SUM()函數
達夢數據庫與mysql一致
SELECT SUM(Age) FROM ceshi;
4、MAX()函數
select max("STU_COUNT") from "SYSDBA"."GRADE";
5、MIN()函數
select min("STU_COUNT") from "SYSDBA"."GRADE";
十、循環函數
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();
建立完執行過程,要在函數中運行。
獲得結果:
3d