MySQL, Oracle 등 여러 종류의 SQL

코드잇

여러 종류의 SQL이 있다구요?

이전 글이었던 '데이터베이스와 DBMS, 그리고 SQL'에서는

(1) 데이터베이스를 다룰려면 DBMS라는 프로그램을 사용해야 하고,

(2) DBMS를 사용하려면 SQL이라는 언어의 사용법을 알아야한다

고 했습니다.

그런데 SQL을 배울 때, 많은 분들이 다음과 같은 말들을 듣고, 혼란을 느끼시곤 합니다.

'SQL은 한 번만 배워두면, 두고두고 사용할 수 있다'

'SQL 하나를 배웠다고 해도 끝난 게 아니다, 다른 DBMS를 사용하려면 또 다른 SQL을 배워야 한다'

등과 같은 말들이죠.

이 중 도대체 뭐가 정답인 걸까요? 답은 '둘다 맞다'입니다.

특정 DBMS를 사용할 수 있게 해주는 언어라면 모두 SQL이라고 할 수 있습니다. 그런데 이 SQL은 사실 국제적으로 공인된 표준이 존재합니다. 이 표준에는 SQL을 사용할 때 필요한 각종 데이터들의 타입과 SQL에서 사용되는 키워드들에 대한 설명이 담겨 있는데요.

각 DBMS들에서 지원하는 저마다의 SQL들은, 이 SQL 표준을 '대부분' 잘 준수해서 사용자들이 표준의 내용을 문제없이 사용할 수 있도록 지원하

고 있습니다.

그래서 DBMS마다 지원하는 SQL 문이 '거의 다 비슷'하고, 그래서 '하나의 DBMS로 배운 SQL을 다른 DBMS에서도 문제없이 그대로 잘 활용할 수 있다'는 말도 어느 정도 맞는 말입니다.

하지만 저는 방금 '거의 다 비슷'이라는 표현을 썼습니다. 이 부분이 중요한데요. 아무리 DBMS들의 SQL이 서로 비슷하다고 해도 어느 정도의 차이가 존재하기는 합니다.

좀 더 자세히 말하자면, DBMS마다

(1) SQL 표준을 준수하는 정도가 다르고,

(2) 같은 기능이라도 다른 구문을 사용해야한다거나,

(3) 지원하는 기능의 범위 자체가 차이가 난다거나 하는 식으로

SQL 문법 간에 일부 차이가 존재하는 것도 엄연한 사실입니다.

간단한 예를 살펴볼까요? 만약 SQL에서 값이 없음을 나타내는 NULL을 처리할 때 Oracle이라는 DBMS에서는 NVL이라고 하는 함수가 보통 쓰입니다. 하지만 MySQL이라는 DBMS에는 이런 함수는 없고, 대신 같은 역할을 하는 COALESCE라는 함수가 있습니다.

그리고 테이블에서 데이터를 조회하는 경우, 데이터 전부를 다 보는 게 아니라 원하는 몇 개만 추려야할 때, Oracle에서는 FETCH NEXT 5 ROWS ONLY 같은 구문을 써야하고, MySQL에서는 LIMIT이라는 간단한 구문을 사용하면 되죠.

세세한 부분들에서 이런 차이점들이 있기 때문에 한 DBMS의 SQL을 다 배웠다고 해서, 바로 다른 DBMS를 완벽하게 사용할 수 있는 것은 아니라는 말도 맞습니다.

그럼 SQL을 배워야하는 분들은 학습 방향을 어떻게 잡고 공부해야할까요? 일단은 하나의 DBMS에서 지원하는 SQL 문을 완벽하게 배우는 것이 중요합니다. 그 과정 속에서 SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 등과 같이 DBMS마다 거의 차이가 없는, 보편적인 SQL 구문들에 익숙해지고 그 과정 속에서 데이터베이스에 관한 여러 개념, 원리들을 잘 이해하는 것이 핵심입니다.

이렇게 하나의 DBMS를 통해 SQL로 할 수 있는 작업들이 무엇인지에 대한 감을 잡고 난 후에는 다른 DBMS의 SQL도 금방 배울 수 있습니다. 이미 한 DBMS를 능숙하게 사용할 줄 아는 상태에서는, 다른 DBMS라고 해도 그 SQL 문법이, 이미 알고 있는 SQL 문법과 거의 다 겹치고, 혹시 이전 DBMS와 다른 부분이 있더라도 이미 기본 개념과 원리를 숙지한 상태이기 때문에 스스로 새로운 정보를 검색하고 이해하는데 전혀 문제가 없습니다.

정리하면 결국 SQL을 일단 하나의 DBMS로 제대로 배우는 것이 가장 빠른 길이라는 뜻입니다.

코드잇에서는 이번에 MySQL이라는 DBMS를 통해 SQL을 배우는 토픽을 준비했습니다. 'SQL로 하는 데이터 분석'이라는 토픽인데요.

데이터베이스에 저장된 데이터를 조회하고 분석하기 위해 알아야하는 개념과, 세세한 실무 팁까지 배울 수 있습니다.

코드잇에서 SQL 데이터베이스 무료로 시작해보세요 :-)

기업문화 엿볼 때, 더팀스

로그인

/