🖥️
Oracle과 MS SQL의 쿼리문 작성법 차이점
June 23, 2024
데이터 타입
-
Oracle
- VARCHAR2: 가변 길이 문자열
- NUMBER: 모든 숫자 형식
- DATE: 날짜 및 시간
-
MS SQL
- VARCHAR: 가변 길이 문자열
- INT: 정수형
- DATETIME: 날짜 및 시간
자동 증가 필드
-
Oracle
- 시퀀스를 사용하여 자동 증가 값을 생성한다.
CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1; INSERT INTO table_name (id, column1) VALUES (seq_name.NEXTVAL, 'value');
-
MS SQL
- IDENTITY 속성을 사용하여 자동 증가 필드를 생성한다.
CREATE TABLE table_name ( id INT IDENTITY(1,1), column1 VARCHAR(50) ); INSERT INTO table_name (column1) VALUES ('value');
날짜와 시간 함수
-
Oracle
- SYSDATE: 현재 날짜와 시간을 반환
- TO_DATE: 문자열을 날짜 형식으로 변환
SELECT SYSDATE FROM dual; SELECT TO_DATE('2023-07-01', 'YYYY-MM-DD') FROM dual;
-
MS SQL
- GETDATE(): 현재 날짜와 시간을 반환
- CONVERT: 문자열을 날짜 형식으로 변환
SELECT GETDATE(); SELECT CONVERT(DATETIME, '2023-07-01', 102);
문자열 결합
-
Oracle
- || 연산자를 사용하여 문자열을 결합한다.
SELECT 'Hello' || ' ' || 'World' FROM dual;
-
MS SQL
-
- 연산자를 사용하여 문자열을 결합한다.
SELECT 'Hello' + ' ' + 'World';
-
테이블 생성과 삭제
-
Oracle
- 테이블 생성과 삭제 문법은 거의 동일하지만,
Purge
옵션이 추가로 제공된다.
CREATE TABLE table_name ( column1 VARCHAR2(50) ); DROP TABLE table_name PURGE;
- 테이블 생성과 삭제 문법은 거의 동일하지만,
-
MS SQL
- 표준적인 테이블 생성과 삭제 문법을 사용한다.
CREATE TABLE table_name ( column1 VARCHAR(50) ); DROP TABLE table_name;
트랜잭션 제어
-
Oracle
- COMMIT과 ROLLBACK을 사용하여 트랜잭션을 제어한다. Oracle은 자동으로 트랜잭션을 시작한다.
BEGIN UPDATE table_name SET column1 = 'value' WHERE condition; COMMIT; END;
-
MS SQL
- EXPLICIT 트랜잭션을 시작하기 위해 BEGIN TRANSACTION을 사용한다.
BEGIN TRANSACTION; UPDATE table_name SET column1 = 'value' WHERE condition; COMMIT TRANSACTION;
SELECT TOP과 ROWNUM
-
Oracle
- ROWNUM을 사용하여 제한된 수의 행을 반환한다.
SELECT * FROM table_name WHERE ROWNUM <= 10;
-
MS SQL
- TOP을 사용하여 제한된 수의 행을 반환한다.
SELECT TOP 10 * FROM table_name;