欢迎来到天天文库
浏览记录
ID:34724930
大小:72.18 KB
页数:3页
时间:2019-03-10
《oracle与mysql的区别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、mysql不能做但是oracle可以做的有好多。我就简单说点例子:Oracle可以执行匿名的代码段,例如:SQL>setserveroutputonSQL>BEGIN2dbms_output.put_line('HelloWorld');3END;4/HelloWorldMySQL不能执行匿名的,必须创建存储过程Oracle可以在2个表之间MERGE,如果有数据则更新,没有则插入。--源表CREATETABLEtest_from(idINT,valVARCHAR(20));--目标表CREATETABLEtest_to(idINT,valVARCH
2、AR(20));--插入源表INSERTINTOtest_fromVALUES(1,'A');INSERTINTOtest_fromVALUES(2,'B');--合并源表到目标表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--条件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的时候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表
3、有,目标表没有,插入MySQL好像没有。Oracle支持Check约束SQL>CREATETABLEtest_create_tab4(2idINTPRIMARYKEY,3valVARCHAR(10)4CONSTRAINTtest_tab4_val_nnNOTNULL,5val2INT,6CONSTRAINTtest_tab4_val2_100CHECK(val2>=0ANDval2<=100)7);MySQLCheck只是用来看的。Oracle使用STARTWITHCONNECTBY语句实现树状查询MySQL不知道有没有。OracleINTERSE
4、CT–仅仅给出2个表都有的数据(去除重复记录)MINUS返回第一个表中有、第二个表中没有的数据MySQL好像是没这功能Oracle支持CREATEVIEW。。。。。WITHREADONLY;MySQL不知道有没有。Oracle触发器有2种一种语句级别的一种行级的FOREACHROWMySQL只有FOREACHROW级别的不支持一个触发器同时处理INSERTUPDATEDELETE触发器OracleGROUPBYROLLUP的时候,有个GROUPING函数MySQL也可以WITHROLLUP,不过GROUPING好像没有。Oracle支持CUBEMy
5、SQL好像没有Oracle可以按拼音/笔画排序--按照拼音来排序SQL>SELECT2*3FROM4Tab5ORDERBYNLSSORT(val,'NLS_SORT=SCHINESE_PINYIN_M');--按照笔画数来排序SQL>SELECT2*3FROM4Tab5ORDERBYNLSSORT(val,'NLS_SORT=SCHINESE_STROKE_M');MySQL好像没有笔画的Oracle可以存储过程里面抛异常--错误代码允许的范围是-20,000~20,999RAISE_APPLICATION_ERROR(-20000,'MyErro
6、rHappen!');MySQL好像没有Oracle有自治事务PRAGMAAUTONOMOUS_TRANSACTION;MySQL好像没有Oracle支持FlashbackQuery也就是错误更新/删除的可以通过ASOFTIMESTAMPTO_TIMESTAMP查询更新/删除之前的数据。这个MySQL好像也没有-----最后Oracle卖得很贵很贵MySQL这个真没有......
此文档下载收益归作者所有