[SQLD] Oracle vs SQLServer

yjkim97·2023년 8월 28일

자격증

목록 보기
23/24
post-thumbnail

order by

  • Oracle은 NULL을 가장 큰값으로 인식
  • SQL Server는 NULL을 가장 작은 값으로 인식

자동 Commit

  • Oracle에서는 DDL 실행시 자동 커밋된다.
  • SQLServer에서는 DDL 실행해도 자동 커밋되지 않는다.

트랜잭션

1) 저장점 (Savepoint)

Oracle

-- 트랜잭션 시작
begin transaction;

-- sp1 저장점 설정
savepoint sp1;
update ...;

-- sp2 저장점 설정
savepoint sp2;
delete ...;

-- sp2 저장점 롤백 (delete 롤백됨)
rollback to sp2;

-- 커밋 (트랜잭션 종료)
commit;

SQL Server

-- 트랜잭션 시작
begin transaction;

-- sp1 저장점 설정
save transaction sp1;
update ...;

-- sp2 저장점 설정
save transaction sp2;
delete ...;

-- sp2 저장점 롤백 (delete 롤백됨)
rollback transaction sp2;

-- 커밋 (트랜잭션 종료)
commit;

PK 제약조건

1) 제약조건 추가

  • Oracle, SQLServer 동일
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) 제약조건 삭제

  • Oracle, SQLServer 동일
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;

테이블 관리 (추가, 변경, 삭제)

1) 이름 변경

Oracle

  • ANSI 표준기준과 동일
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) 컬럼 삭제

  • Oracle, SQL Server 동일
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에서는 지원하지 않는다.
profile
어제는 🐸두꺼비 오늘은 😄YJ

0개의 댓글