oracle과 db2의 SQL 차이점: 1. Oracle은 유사한 테이블을 생성하기 위해 "create table a as select * from b"를 사용하고 db2는 유사한 테이블을 생성하기 위해 "create table a like b"를 사용합니다. "to_char" 함수를 사용하여 변환하면 db2는 varchar 유형 변환을 사용합니다.
이 튜토리얼의 운영 체제: Windows 10 시스템, Oracle 버전 19c, 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. 가져오기
Oracle : select * from a where rownum <= N; DB2 : select * from a fetch first N rows only;
4. 시스템 시간 구문
Oracle : select sysdate from dual; DB2 : select current timestamp from sysibm.sysdummy1;
5. Null 값 변환 방법이 다릅니다.
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를 지원합니다. 버전이 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' )
알아보기 more: Oracle 계층적 쿼리(재귀 쿼리): 시작...사전 및 수준 키워드로 연결
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
위에 표시된 것처럼 손자부터 시작하여 모든 상위 노드를 쿼리하고 먼저 시작을 설정합니다. 가상 테이블의 지점, 즉 왼쪽의 네 번째 행을 하나씩 밀어 올리면 이전 행의 아버지가 son = child, 즉 VT.parent = T.child...
최종 쿼리입니다. 결과는 다음과 같습니다.
test_parent
son
father
grandpa
10. 데이터 유형에 차이가 있습니다
比较大的差别: 1. char大小对比 Oracle: char 2000 DB2 : char 254 2. 日期类型 Oracle: date datetime DB2 :date(日期) time(时间)timestamp(日期时间)
11. rowId
Oracle中它是由数据库唯一产生的,在程序中可以获得 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 sql의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.
