메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
편집 요약 없음
2번째 줄: 2번째 줄:


=== Oracle SQL vs ANSI SQL===
=== Oracle SQL vs ANSI SQL===
{{{요점
{{요점
|내용= 개념정리
|내용= 개념정리
{| class=”wikitable“
{| class=”wikitable“
15번째 줄: 15번째 줄:
|-
|-
|}
|}
 
}}


=== JOIN 문법 차이점 ===
=== JOIN 문법 차이점 ===

2025년 6월 24일 (화) 22:23 판

Oracle SQL과 ANSI SQL의 차이

Oracle SQL vs ANSI SQL

menu_book 개념정리 {


JOIN 문법 차이점

Oracle 스타일

SELECT e.EMP_NAME, d.DEPT_NAME
  FROM EMPLOYEE e
     , DEPARTMENT d
 WHERE e.DEPT_ID = d.DEPT_ID;

ANSI SQL 스타일 (표준 Join)

SELECT e.EMP_NAME, d.DEPT_NAME
  FROM EMPLOYEE e
  JOIN DEPARTMENT d
    ON e.DEPT_ID = d.DEPT_ID;
  • Oracle 스타일은 WHERE절에서 조인을 처리
  • ANSI 스타일은 JOIN절을 명시적으로 사용 (가독성 좋고 유지보수 용이)

OUTER JOIN

Oracle 스타일

SELECT e.EMP_NAME, d.DEPT_NAME
  FROM EMPLOYEE e, DEPARTMENT d
 WHERE e.DEPT_ID = d.DEPT_ID(+);
  • (+) 기호는 Oracle 전용 문법입니다 (우측 테이블 기준 OUTER JOIN)

ANSI SQL 스타일

SELECT e.EMP_NAME, d.DEPT_NAME
FROM EMPLOYEE e
LEFT JOIN DEPARTMENT d
  ON e.DEPT_ID = d.DEPT_ID;
  • LEFT JOIN, RIGHT JOIN 명시적으로 사용 (ANSI)

시퀀스를 사용한 INSERT

Oracle 스타일

INSERT INTO CUSTOMER (ID, NAME)
VALUES (CUSTOMER_SEQ.NEXTVAL, '홍길동');

Oracle은 시퀀스명.NEXTVAL 방식으로 고유값을 생성합니다.

ANSI SQL 스타일

  • ANSI SQL에는 직접적인 NEXTVAL 문법이 없고, 일반적으로 IDENTITY 또는 AUTO_INCREMENT 사용을 다른 DBMS에서 지원합니다.

(Oracle에서 표준 방식처럼 하려면 IDENTITY 컬럼 사용)

-- Oracle 12c 이상에서 ANSI 스타일 유사하게 사용하는 경우
CREATE TABLE CUSTOMER (
  ID NUMBER GENERATED ALWAYS AS IDENTITY,
  NAME VARCHAR2(100)
);

Oracle SQL vs ANSI SQL 요점 정리

Oracle SQL과 ANSI SQL 비교
항목 Oracle SQL 스타일 ANSI SQL 스타일
INNER JOIN SELECT * FROM emp e, dept d WHERE e.dept_id = d.dept_id; SELECT * FROM emp e JOIN dept d ON e.dept_id = d.dept_id;
OUTER JOIN SELECT * FROM emp e, dept d WHERE e.dept_id = d.dept_id(+); SELECT * FROM emp e LEFT JOIN dept d ON e.dept_id = d.dept_id;
시퀀스 사용 INSERT INTO customer (id) VALUES (customer_seq.NEXTVAL); -- Oracle 12c 이상: GENERATED AS IDENTITY 사용
조인 표현 방식 WHERE절 중심 조인 JOIN절 중심 명시적 조인
가독성 및 유지보수 복잡한 조인일수록 해석 어려움 구조적이고 읽기 쉬움



menu_book 내용: 결론 요약
  • Oracle SQL: Oracle에 특화된 문법. 속도, 유연성 좋지만 이식성이 낮음.
  • ANSI SQL: 표준 SQL. 다양한 DBMS와 호환되며 유지보수가 용이함.
  • 신규 개발이나 협업 환경에서는 ANSI SQL 권장.