본문 바로가기

개발중/MYSQL

ANSI 정리

728x90
반응형
ANSI ( American National Standards Institute ) / 미국표준협회
각 나라별 표준협회

일본규격협회(JIS)
미국표준협회(ANSI)

한국표준협회(KS)

유럽(DIN)

여러 데이터베이스들의 SQL들이 제공해주는 특성에 따라 SQL이 다를 수 있다. 

하지만 ANSI 표준으로 작성된 SQL은 모든 데이터베이스에서 호환된다.

 

Oracle ANSI

SELECT a.ename ,b.ename

  FROM scott.emp a, scott.emp b

 WHERE a.mgr = b.empno

SELECT a.ename ,b.ename

  FROM scott.emp a JOIN scott.emp b

ON a.mgr = b.empno

 

ANSI 를 배우지 않는 이유

기본적인 데이터 조회구문은 ANSI SQL 문으로 작성 가능하지만.

ANSI를 벗어나게 되는 경우는 DBMS에서 제공되는 함수를 사용할 때이다.


대부분 테이블에 저장된 데이터를 그대로 보지 않고 가공 해서 보는 경우가 대부분이다.

( 문자열 잘라내기, 숫자 계산, 포맷 지정, 데이터 암 복호화 등 ) 


이러한 경우 내장된 함수 또는 별도로 개발한 함수 등을 이용해서 데이터를 가공하여 보여준다.

특히 자주 사용되는 것은 윈도우 함수 이며, Oracle 에서 가장 많이 사용된다.




  • 대표적인 윈도우 함수

RANK 

SUM 

ROWNUM

MAX

MIN

 

  • ANSI SOL 을 쓰면 좋은 점

  1. 표준 SQL 문이므로 웬만한 DBMS에서 다 인식

  2. 테이블 간의 JOIN관계가 FROM 절에서 모두 기술되고
    WHERE 이하 절에선 순수하게 체크 조건만 나오도록 가독성이 좋습니다.

  • ANSI SQL 특징

  1. FROM 절에서 JOIN 구문사용

  2. 조인 조건은  ON 절에 명시

  3. WHERE 절에는 검색 조건만 명시

  • ANSI 조인 키워드

    INNER JOIN
     연결 조인을 만족하는 행동들을 포함

    CROSS JOIN
     테이블 간의 모든 행들의 조합을 포함

    OUTER JOIN 
     연결 조건을 만족하는 행들과 연결된 테이블 중 한 테이블의 남은 행을 포함
    한 테이블에 있는 행에는 제한 조건을 가하지 않는 반면에 다른 테이블에 대해서는 행에 제한을 한다.

 

728x90
반응형

'개발중 > MYSQL' 카테고리의 다른 글

PLAN  (0) 2020.10.27
SQL문 튜닝  (0) 2020.10.27
INDEX 정리  (0) 2020.10.27
SQL 최대값 구하기  (0) 2020.07.27
ALTER TYPE 변경  (0) 2020.07.24