Sybase 와 Oracle의 차이
1) 공통점 : 둘다 RDBMS
* RDBMS란?
Relational Database Management System의 약자로 해석그대로 관계형 데이터베이스 관리 시스템의 약자다.
ex) Oracle, My SQL, MS SQL, Sybase 등이 있다.
2)
1. 실행계획 보기
- Oracle : Ctrl + p 를 통해 볼 수 있음
- Sybase : set showplan on 쿼리
ex) set showplan on
select * from a_table
2. 세미콜론 유무
- Oracle : 세미콜론 써야됨
- Sybase : 세미콜론 쓰면 에러남
3. 원하는 개수만큼 데이터 보기 방식
- Oracle : rownum을 조건절에 걸면 원하는 개수만큼 데이터를 볼 수 있었음
ex) select *
from exam_dt
where rownum <= 10
- Sybase : top 을 사용함! 아직까지도 적응이 안 되는건 함정
ex) select top 10 *
from exam_dt
4. TO_CHAR, TO_NUMBER 등의 형변환
- Oracle : TO_NUMBER, TO_CHAR, TO_DATE로 사용함,,
ex) SELECT TO_NUMBER('1234') FROM DUAL
ex) SELECT TO_CHAR(1234) FROM DUAL
ex) SELECT TO_DATE('20210201') FROM DUAL
- Sybase : cast 사용하거나 convert, getdate로 사용
ex) select cast(a as int) from exam_dt
ex) convert(varchar(10), getdate(), 1111) ==> yyyy/mm/dd
ex) select cast('2021-02-01 09:45:00' as datetime) [from sys.dummy] ==> 문자를 DATE형으로 변환할 때
5. outer join
- Oracle : select * from tb_1 a, tb_2 b where a.id = b.id(+)
- Sybase : select * from tb_1 a, tb_2 b where a.id *= b.id
6. 테이블 명세 보기
- Oracle : desc 테이블
- Sybase : sp_help 테이블
7. nullable 함수
- Oracle : NVL(a, '치환값')
- Sybase : isnull(a, '치환값')
7. with 구문(임시 테이블 만들기)
- Oracle : with 구문을 사용하여 사용가능
with exam_tb as a
( select a, b from dual)
select * from a
- Sybase : 임시테이블 만드는 기능 사용
select *
into #tmp_dt
where exam_tb
select *
from #tmp_dt