본문 바로가기

IT/Sybase

Sybase 기본 문법

오라클과 비교했을 때 Sybase의 차이점은 다음과 같다.

1. null값 허용 안함

2. table 앞에 dba. 붙여야함.

3. table명과 컬럼명은 대문자로

4. ';' 문법 에러남.

1. DUMMY TABLE
[오라클]
from dual
[Sybase]
SELECT now() FROM sys.dummy;
SELECT now();  (from절 생략)


2. OUTER JOIN
[오라클]
SELECT a.부서명, b.이름
FROM 부서테이블 a, 사원테이블 b
WHERE a.부서코드 = b.부서코드(+);
[Sybase]
SELECT a.부서명, b.이름
FROM 부서테이블 a, 사원테이블 b
WHERE a.부서코드 *= b.부서코드


3. 테이블 구조보기
[오라클]
desc 테이블명;
[Sybase]
sp_iqcolumn 테이블명


4. 테이블 목록보기
[오라클]
SELECT * FROM tab;
[Sybase]
sp_iqtable


5. 자주쓰는 함수
[오라클]
SELECT SYSDATE FROM dual;
SELECT CURRENT_DATE FROM dual;
[Sybase]
SELECT TODAY() [ FROM sys.dummy ];
SELECT NOW() [ FROM sys.dummy ];
SELECT CURRENT DATE [ FROM sys.dummy ];


6. 소수점 이하 올림을 구하는 함수
[오라클]
SELECT CEIL (12.3) FROM dual;
[Sybase]
SELECT CEILING (12.3) [ FROM sys.dummy ];


7. 지정된 소수점 이하를 버리는 함수
[오라클]
SELECT TRUNC(123.4567, 2) FROM dual;
[Sybase]
SELECT "TRUNCATE"(123.4567, 2) [ FROM sys.dummy ];


8. 문자열을 연결하는 함수
[오라클]
SELECT CONCAT(CONCAT ( 'a', 'b' ), 'c') FROM dual;
SELECT 'a' || 'b' || 'c' FROM dual;
[Sybase]
SELECT STRING('a','b','c') [ FROM sys.dummy ];
SELECT 'a' || 'b' || 'c' [ FROM sys.dummy ];


9. NULL을 다른 값으로 변환해 주는 함수
[오라클]
SELECT NVL (null,1) FROM dual;
SELECT COALESCE (NULL, 1) FROM dual;
[Sybase]
SELECT COALESCE (NULL, 1) [ FROM sys.dummy ];


10. 숫자를 문자로 변환하는 함수
[오라클]
SELECT TO_CHAR (12345) FROM dual;
[Sybase]
SELECT STR(12345, 5) [ FROM sys.dummy ];


11. 문자를 숫자로 변경하는 함수
[오라클]
SELECT TO_NUMBER ('123456') FROM dual;
[Sybase]
SELECT CAST('123456' AS INT) [ FROM sys.dummy ];


12. 문자를 DATE형으로 변환하는 함수
[오라클]
SELECT TO_DATE('1999-01-02 12:20:53','YYYY-MM-DD HH:MI:SS') FROM dual;
[Sybase]
SELECT CAST('1999-01-02 12:20:53' as DATE) [ FROM sys.dummy ];
SELECT CAST('1999-01-02 12:20:53' as DATETIME) [ FROM sys.dummy ];
SELECT DATE('1999-01-02 12:20:53') [ FROM sys.dummy ];
SELECT DATETIME('1999-01-02 12:20:53') [ FROM sys.dummy ];


 

 

[출처] Sybase Adaptive Server IQ 와 Oracle 의 SQL 비교|작성자 레드