order by
- Oracle은 NULL을 가장 큰값으로 인식
- SQL Server는 NULL을 가장 작은 값으로 인식
자동 Commit
- Oracle에서는 DDL 실행시 자동 커밋된다.
- SQLServer에서는 DDL 실행해도 자동 커밋되지 않는다.
트랜잭션
1) 저장점 (Savepoint)
Oracle
begin transaction;
savepoint sp1;
update ...;
savepoint sp2;
delete ...;
rollback to sp2;
commit;
SQL Server
begin transaction;
save transaction sp1;
update ...;
save transaction sp2;
delete ...;
rollback transaction sp2;
commit;
PK 제약조건
1) 제약조건 추가
CREATE TABLE TEST(
컬럼 NUMBER(5) CONSTRAINT 제약조건이름 PRIMARY KEY,
...
);
CREATE TABLE TEST(
컬럼 NUMBER(5) not null,
... ,
CONSTRAINT 제약조건이름 PRIMARY KEY (컬럼)
);
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 PRIMARY KEY (컬럼)
2) 제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;
테이블 관리 (추가, 변경, 삭제)
1) 이름 변경
Oracle
rename 기존테이블명 to 새테이블명;
SQL Server
sp_rename '기존테이블명', '새테이블명';
테이블 컬럼 관리 (추가,변경,삭제)
1) 컬럼 추가
2) 컬럼 변경
Oracle
alter table 테이블명 modify (
컬럼명1 데이터유형 [Default 식] [Not null],
컬럼명2 데이터유형 [Default 식] [Not null],
...
);
SQL Server
alter table 테이블명 alter column 컬럼명1 데이터유형 [Default 식] [Not null];
3) 컬럼 삭제
alter table 테이블명 drop column 컬럼명;
4) 컬럼명 변경
SQL Server
sp_rename '테이블.기존컬럼명', '새컬럼명';
집합 연산자
1) 차집합 (Difference)
- Oracle : MINUS
- ANSI/ISO : EXCEOT
계층쿼리
Oracle
- PRIOR 키워드 SELECT, WHERE절에서도 사용 가능
SQL Server
- 계층형 질의문은 CTE(Common Table Expression)을 재귀 호출함으로써 계층 구조를 전개한다.
- 계층형 질의문은 앵커 멤버를 실행하여 기본 결과집합을 만들고 이후 재귀멤버를 지속적으로 실행한다.
- PRIOR는 CONNECT BY절에서만 사용 가능하다.
서브쿼리
SQL Server
함수
SQL Server
- 행 순서 함수(
FIRST_VALUE, LAST_VALUE, LAG, LEAD)는 SQL Server에서는 지원하지 않는다.
- 그룹 내 비율 함수(
RATIO_TO_REPORT, PERCENT_RANK, CUME_DIST)는 SQL Server에서는 지원하지 않는다.