C#,Delphi,Oracle,MSSQL 개발자블로그

ANSI SQL 이란? 본문

Programming/Oracle

ANSI SQL 이란?

19760323 2017. 5. 29. 17:51

ANSI ( American National Standards Institute) / 미국표준협회

 

SQL 공부를 하다가 역사가 궁금해서 찾아보았다. ANSI SQL이라는 용어가 보여 ANSI가 무엇인지 정리하였다. 

 

SQL은 IBM에서 1970년대 초에 도널드 D. 챔벌린과 레이먼드 F. 보이스가 처음 개발하였다. 초기에는 SEQUEL (Structured English Query Language, 구조 영어 질의어)라는 이름으로 시작하였으며, IBM의 준 관계형 데이터베이스 관리 시스템 시스템 R에 저장된 데이터를 조작하고 수신하기 위해 고안되었다. SEQUEL은 나중에 SQL으로 바뀌었다. 그 까닭은 SEQUEL이 영국의 호커 시들리 항공사의 상표였기 때문이다.

 

1986년 SQL-86의 명칭(별칭 SQL-87)으로 ANSI에 의한 최초의 표준화가 되었다.

 

각 나라별 표준협회

일본규격협회(JIS)

미국표준협회(ANSI)

한국표준협회(KS)

유럽(DIN)

 

여러 데이터베이스들의 SQL들이 제공해주는 특성에 따라 SQL이 다를 수 있다. 하지만 ANSI 표준으로 작성된 SQL은 모든 데이터베이스에서 호환된다. 

 

그러므로 ANSI SQL 작성하게끔 습관을 들이는 것이 좋다.

[출처] SQL, ANSI ( American National Standards Institute) / 미국표준협회|작성자

 

Ex. Oracle에서의 쿼리

SELECT a.ename
      ,b.ename
  FROM scott.emp a, scott.emp b
 WHERE a.mgr = b.empno
    
 ANSI SQL

SELECT a.ename
      ,b.ename
  FROM scott.emp a JOIN scott.emp b
    ON a.mgr = b.empno
    

두 쿼리는 같은 출력을 낸다.
   

 

 

● ANSI가 표준이고, 모든 DB에서 호환되는데 보통 ANSI를 배우지 않는 이유.

 

기본적인 데이터 조회 구문(JOIN)은 ANSI SQL로 작성 가능하나, ANSI를 벗어나게 되는 경우는 DBMS에서 제공하는 함수를 사용할 때 이다.

 

대부분 테이블에 저장된 데이터를 그대로 보지 않고 가공(문자열 잘라내기, 숫자 계산, 포맷 지정, 데이터 암 복호화 등)해서 보는 경우가

 

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

 

특히 자주 사용되는 것은 윈도우 함수(분석 함수)이며 ORACLE에서 제일 많이 제공하고 있다.

Comments