關於MySQL與DMsql探尋

【前言】
DMsql指的是達夢數據庫,這裏只是一些淺顯的sql。結合實際的運行效果和資料來探尋原理。咱們以達夢數據庫自帶的表GRADE以及mysql隨意建立的一個表做爲測試。
一、查詢所有數據
達夢數據庫
select * from "SYSDBA"."GRADE";
關於MySQL與DMsql探尋mysql

mysql數據庫
SELECT * FROM ceshi;
關於MySQL與DMsql探尋sql

二、更換表頭
【加不加as的效果是同樣的】
達夢數據庫
select "CLASSID" frozen,"STU_COUNT" red ,"TEACHER_NAME" as red,"COURSE"
from "SYSDBA"."GRADE";數據庫

關於MySQL與DMsql探尋

MySQL數據庫
SELECT test as frozen, NAME as wcl,NAME wcl FROM ceshi;
關於MySQL與DMsql探尋
三、組合新列 達夢與mysql只能拼接數字,不能拼接列或者其餘字符
達夢數據庫
select (123232+213213) as frozen from "SYSDBA"."GRADE";
關於MySQL與DMsql探尋
MySQL數據庫
SELECT (1232+13121) as frozen FROM ceshi;
關於MySQL與DMsql探尋
四、區間查詢
達夢數據庫
select "CLASSID","STU_COUNT","TEACHER_NAME","COURSE"
from "SYSDBA"."GRADE" where "STU_COUNT" between 20 and 38;
關於MySQL與DMsql探尋
MySQL數據庫
SELECT FROM ceshi WHERE age BETWEEN 30 and 80;
關於MySQL與DMsql探尋
五、按首字母查
【ps】達夢數據庫按照 ASCII(str)來排序、mysql在建立的時候通常選擇選擇utf-8做爲編碼
達夢數據庫
select
from "SYSDBA"."GRADE" order by "TEACHER_NAME";
關於MySQL與DMsql探尋
MySQL數據庫
SELECT *FROM ceshi ORDER BY Name;
關於MySQL與DMsql探尋ide

【ps】那麼mysql的排序規則是什麼呢,探究一下
SELECT SUBSTRING(name,1,1), ASCII(SUBSTRING(name,1,1)) FROM ceshi ORDER BY SUBSTRING(name,1,1);
關於MySQL與DMsql探尋
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);
關於MySQL與DMsql探尋函數

七、置換null爲某個字符
達夢數據庫
達夢的語法同mysql這裏沒有null的數據,就略過了。
mysql數據庫
SELECT COALESCE(Name, "frozen") from ceshi ;
關於MySQL與DMsql探尋
八、【高級】條件返回case when
達夢數據庫
select ,(case when "STU_COUNT" < 40 then '加油' else '還行' end)as frozen from "SYSDBA"."GRADE";
關於MySQL與DMsql探尋
mysql數據庫
【ps】我認爲小於100的都是凡人,大於100的都是仙人。
SELECT
,(CASE WHEN Age < 100 THEN "凡人" ELSE '仙人' END) as frozen from ceshi;
關於MySQL與DMsql探尋測試

九、聚合函數
1、AVG()
AVG()函數計算一組值的平均值。 它計算過程當中是忽略NULL值的.
達夢數據庫
select avg("STU_COUNT") from "SYSDBA"."GRADE";
mysql數據庫
SELECT AVG(Age) FROM ceshi;
關於MySQL與DMsql探尋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();

關於MySQL與DMsql探尋

建立完執行過程,要在函數中運行。
獲得結果:
關於MySQL與DMsql探尋3d

相關文章
相關標籤/搜索