區別:1、db2用「create table a like b」建立類似表,oracle用「create table a as select * from b」;2、db2用varchar型別轉換,oracle用「to_char」函數轉換。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
db2與oracle的sql語句有什麼不同
1.建立類似表格語法
Oracle : create table a as select * from b; DB2 : create table a like b; (8版本有效,9版本无效) create table new_a as select col1,col2... from a definition only
2.快速清除大表語法
Oracle : truncate table a; DB2 : alter table a active not logged initially with empty table;
3.取前N條資料語法
Oracle : select * from a where rownum <h4 id="strong-取得系統時間語法-strong"><strong>4.取得系統時間語法</strong></h4><pre class="brush:php;toolbar:false">Oracle : select sysdate from dual; DB2 : select current timestamp from sysibm.sysdummy1;
#5.空值轉換方式不同
Oracle : select col1,col2,nvl(col3,'0') from tablename; (判断col3字段是否为空,不为空就输出原来的数值,为空就输出0) DB2 : select col1,col2,value(col3,'0') from tablename; (mysql和Db2可以使用Coalesce(col3,'0')函数来实现上述功能)
Coalesce()函數
这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1,value2……,valuen) COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。 COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。 如果expression不为空值则返回expression; 否则判断value1是否是空值,如果value1不为空值则返回value1; 否则判断value2是否是空值,如果value2不为空值则返回value2; ……以此类推, 如果所有的表达式都为空值,则返回NULL。
##6.型別轉換方式不同oracle :
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
DB2 :
select varchar(current timestamp) from sysibm.sysdummy1;
解析:Oracle数据类型改变函数:to_char()、to_date()、to_number()等; 如果仅仅取年,月,日等,可以用 to_char(sysdate, 'YYYY'), to_char('MM') , to_char('DD')取得。 只取年月日TRUNC(SYSDATE)。 取时分秒TO_CHAR(SYSDATE,'HH24:MI:SS')。 DB2数据类型改变函数:char()、varchar()、int()、date()、time()等; 取得年,月,日等的写法: YEAR(current timestamp), MONTH(current timestamp), DAY(current timestamp), HOUR(current timestamp), MINUTE(current timestamp), SECOND(current timestamp), MICROSECOND(current timestamp), 只取年月日可以用 DATE(current timestamp), 取时分秒 TIME(current timestamp)。 Char()是定长字符串(1-255),varchar()为非定长字符串(1-32672)日期, 时间形态变为字符形态: char(current date), char(current time) 将字符串转换成日期或时间形态: TIMESTAMP('2002-10-2012:00:00'), DATE('2002-10-20'), DATE('10/20/2002'), TIME('12:00:00')目前DB2 V8也支援to_char和to_date,V9版新增了to_number
#7.字串轉換為日期方式不同(To_Number/cast)Oracle:
select to_number('123') from dual;
select cast('123' as integer) from dual;
DB2 :
select cast('123' as integer) from sysibm.sysdummy1;
select cast(current time as char(8)) from sysibm.sysdummy1;
8.子查詢Oracle:
直接用子查询
Db2:WITH语句
WITH a1 AS(SELECT max(id) AS aa1 FROM test )SELECT id ,aa1 FROM test ,a1
9.遞迴查詢(分層查詢)Oracle递归查询:CONNECT BY PRIOR ... START WITH ...
DB2 递归查询:DB2较难理解,要WITH一个虚拟表
Oracle://从child是son的数据向上查询出所有的长辈select distinct test_parent from (
select t.test_parent from t_test t
connect by prior t.test_parent = t.test_child
start with t.test_child = 'son' )
了解更多:Oracle分層查詢(遞迴查詢):start with …connect by prior 以及level關鍵字
DB2:// Db2递归查询写法with par_test(test_child,test_parent) as(
select test_child,test_parent from t_test where child='grandchild' -- 设置递归起点
union all
select t.test_child,t.test_parent from par_test pt,t_test t where pt.test_parent = t.test_child ----递归的方向为从子向父)select distinct test_parent from par_test
如上圖,從grandchild開始查詢其所有的父節點,先設定虛擬表起點,即左邊第四行;依序往上推,其父親是son = 上一行的child,即VT.parent = T.child…
比较大的差别:
1. char大小对比
Oracle: char 2000
DB2 : char 254
2. 日期类型
Oracle: date datetime
DB2 :date(日期) time(时间)timestamp(日期时间)
# 11.關於rowIdOracle中它是由数据库唯一产生的,在程序中可以获得
DB2 在V8版本才有此功能
12.decode方法
Oracle:
decode方法(decode(条件,值1,翻译值1,值2,翻译值2,...,值n,翻译值n,缺省值)) 【函数用法在下边有链接】
或者
case语句
DB2:
只有case表达式
示例语句:
select id,name,
case when integer(flag)=0 then '假'
when integer(flag)=1 then '真'
else '异常' end
from test
或者
select id,name,
case integer(flag) when 0 then '假'
when 1 then '真'
else '异常' end
from test
推薦教學:《
Oracle影片教學以上是db2與oracle的sql語句有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

MySQL和Oracle在用戶體驗上的差異主要體現在:1.MySQL簡潔易用,適合快速上手和靈活性高的場景;2.Oracle功能強大,適合需要企業級支持的場景。 MySQL的開源和免費特性吸引初創公司和個人開發者,而Oracle的複雜功能和工具則滿足大型企業的需求。

MySQL和Oracle在性能和可擴展性上的區別在於:1.MySQL在小型到中型數據集上表現更好,適合快速擴展和高效讀寫;2.Oracle在處理大型數據集和復雜查詢時更具優勢,適合高可用性和復雜業務邏輯。 MySQL通過主從復制和分片技術實現擴展,而Oracle通過RAC實現高可用性和擴展性。

Oracle軟件的關鍵功能包括多租戶架構、高級分析和數據挖掘、實時應用集群(RAC)以及自動化管理和監控。 1)多租戶架構允許在一個數據庫實例中管理多個獨立的數據庫,簡化管理並降低成本。 2)高級分析和數據挖掘工具如OracleAdvancedAnalytics和OracleDataMining幫助從數據中提取洞察。 3)實時應用集群(RAC)提供高可用性和可擴展性,提高系統容錯能力和性能。 4)自動化管理和監控工具如OracleEnterpriseManager(OEM)自動化日常維護任務並實時監控數

Oracle在数据管理和企业应用领域具有深远影响,其数据库以可靠性、可扩展性和安全性著称,广泛应用于金融、医疗和政府等行业。Oracle的影响力还扩展到中间件和云计算领域,如WebLogicServer和OracleCloudInfrastructure(OCI),提供创新解决方案。尽管面临开源数据库和云计算市场竞争,Oracle通过不断创新保持领先地位。

Oracle的使命是“幫助人們看到數據的價值”,其核心價值觀包括:1)客戶至上,2)誠信,3)創新,4)團隊合作。這些價值觀指導Oracle在市場中的戰略決策和業務創新。

Oracle數據庫是一種關係型數據庫管理系統,支持SQL和對象關係模型,提供數據安全和高可用性。 1.Oracle數據庫的核心功能包括數據存儲、檢索、安全和備份恢復。 2.其工作原理涉及多層存儲結構、MVCC機制和優化器。 3.基本用法包括創建表、插入和查詢數據;高級用法涉及存儲過程和触發器。 4.性能優化策略包括使用索引、優化SQL語句和內存管理。

Oracle軟件除了數據庫管理外,還用於JavaEE應用、數據網格和高性能計算。 1.OracleWebLogicServer用於部署和管理JavaEE應用。 2.OracleCoherence提供高性能的數據存儲和緩存服務。 3.OracleExadata用於高性能計算。這些工具使得Oracle在企業IT架構中扮演了更加多元化的角色。

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。