더북(TheBook)

1.4.3 SQL 표준

앞에서 말했듯이 SQL은 표준이 있습니다. 표준이 있다는 것은 하나의 RDBMS에서 SQL 사용법을 익히면 종류에 상관없이 어떤 RDBMS에서나 사용할 수 있다는 뜻입니다. 즉, MySQL에서 사용하는 SQL을 배워 두면 여기서 배운 내용을 오라클, SQL Server, PostgreSQL 등 다른 RDBMS에서도 동일하게 사용할 수 있습니다.

비슷한 예로, 국산 자동차를 운전할 줄 알면 전 세계 어느 회사의 자동차도 운전할 수 있습니다. 물론 운전 방법에 명시적인 표준이 있지는 않지만, 운전을 배우고 면허만 있으면 어떤 차든 운전할 수 있죠. 왜냐하면 대부분 자동차 제조사들이 자동차 내부 구조와 운전 방식을 거의 동일하게 만들기 때문입니다.

SQL 표준은 ANSI와 ISO 두 개가 있습니다. ANSI(American National Standards Institute)는 미국 국립표준협회고, ISO(International Organization for Standardization)는 국제표준화기구입니다. 1986년 ANSI에서 SQL-86이라는 최초의 표준을 제정했고, ISO는 이듬해에 표준을 제정했습니다. 가장 최근 표준은 2019년에 발표됐습니다.

그런데 문제가 있습니다. 표준이 있긴 해도 RDBMS 제품마다 사용하는 SQL 구문이 모두 같은 것은 아닙니다. 큰 틀은 같지만, 제품별로 세부적인 SQL 문법이 많이 다른 것이 현실입니다. 이렇게 된 가장 큰 이유는 RDBMS 제품보다(1970년대) SQL 표준이 늦게(1986년) 제정됐기 때문이죠. 자동차 운전 방법은 같지만, 영국이나 일본은 좌측통행을 하므로 운전석이 오른쪽에 있는 것과 마찬가지입니다.

다행인 점은 각 RDBMS 제조사가 버전을 올리며 SQL 표준에 맞추려고 노력해 왔습니다. 그래서 요즘에는 표준 SQL 구문이 대부분 통용됩니다. 다만 제품별로 지원하는 기능에는 차이가 좀 있습니다. 그래도 MySQL과 MariaDB는 자매나 마찬가지여서 이 책에서 배우는 대부분의 SQL 문장은 MariaDB에서 그대로 사용할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.