您好,登錄后才能下訂單哦!
小編給大家分享一下mysql與oracle數據的語法有什么不同之處,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
mysql與oracle語法區別:
1、在MySQL中from 后的表如果是(select.......)這種,那么后面必須有別名
2、連接字符串在Oracle中用|| ,MySQL中用concat('a','b','c')
3、mysql沒有像orcale的動態游標,只有顯示游標
DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`liyukun`$$ CREATE DEFINER=`ids`@`localhost` PROCEDURE `liyukun`(out z int) BEGIN declare count1 int; DECLARE done INT DEFAULT 0; declare v_haoma varchar(50); declare v_yingyeting varchar(100); DECLARE cur1 CURSOR FOR select haoma,yingyeting from eryue where id<2; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; //這里和oracle有區別,Oracle的PL/SQL的指針有個隱性變 量%notfound,Mysql是通過一個Error handler的聲明來進行判斷的 OPEN cur1; cur1: LOOP FETCH cur1 INTO v_haoma,v_yingyeting; IF done=1 THEN //如果沒有數據了,則離開 LEAVE cur1; ELSE select count(*) into count1 from year2012 where haoma=v_haoma ; if(count1=0) then insert into year2012(haoma, yingyeting) values(v_haoma,v_yingyeting); else set z = z+1; update year2012 set eryue = ‘100’ where haoma=v_haoma; end if; END IF; END LOOP cur1; CLOSE cur1; END$$ DELIMITER ;
4、orcale用decode()來轉換數據,mysql用case when:
SELECT sql 中 case when Title, sql 中 case when 'Price Range'= sql 中 case when CASE sql 中 case when WHEN price ISNULLTHEN'Unpriced' sql 中 case when WHEN price <10THEN'Bargain' sql 中 case when WHEN price BETWEEN10and20THEN'Average' sql 中 case when ELSE'Gift to impress relatives' sql 中 case when END(必須有end)
5、Orcale中沒有TOP,是通過
select * from (select * from A order by id desc) where rownum=1
注:不能直接寫 select * from A where rownum=1 order by id desc 因為語句執行的順序是先where再order by ,如果這樣寫就無法按id的排序來取第一個了。
不能寫rownum=2或rownum>1這樣,因為Orcale 默認必須包含第一條。
如果非要取第二條的話,可以寫成:
select * from (select id,rownum as row_num from lws_q_bl_result r where r.sample_id = 'B10226072') where row_num=2
mysql:
limit是mysql的語法
select * from table limit m,n
其中m是指記錄開始的index,從0開始,表示第一條記錄
n是指從第m+1條開始,取n條。
select * from tablename limit 2,4
即取出第3條至第6條,4條記錄
6、Orcale,MySql while循環比較
Orcale:
while num<10 loop str := to_char(num); num := num+1; end loop;
mysql:
while num<10 do str := to_char(num); num := num+1; end while;
7、orcale 生成唯一序列是 select sys.guid() from dual ,mysql是 select uuid() from dual
看完了這篇文章,相信你對mysql與oracle數據的語法有什么不同之處有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。