이전 게시물에선 관계형 데이터베이스(RDB)에 대해서 알아봤습니다!
그렇다면,
관계형 데이터베이스(RDB)에 쓰이는 SQL이란 무엇이며 SQL엔 어떤 것들이 있을까요?
추가로 함께 알아두면 좋을 SQL ANSI 표준에 대해서도 간략히 살펴보겠습니다.
SQL 이란?
SQL (Structured Query Language) 을 해석되는 대로 말해보면 '구조화된 쿼리(질의) 언어' 입니다.
RDB에서 데이터를 질의해 오기 위해서는 RDBMS가 해석할 수 있는 구조화된 문법이 필요합니다.
영어 문장도 문법이 있듯이요! (실제로 사용하다 보면 영어 문장같은 느낌을 많이 받습니다.)
그 구조화된 문법에 따라 만들어진 언어가 바로 SQL 입니다.
SQL을 사용하면 앞서 배웠던 Table이나 Column을 생성, 수정, 삭제할 수도 있고
Table들을 조합해 원하는 데이터셋 결과를 얻을 수도 있죠.
SQL 예시
간단하게 예시를 살펴볼게요!
아래는 customers라는 Table에서 customer_id가 1인 customer 정보를 불러오는 SQL 질의입니다.
(앞 게시물 예시에 대입해 보면 [ 1, 김철수 ] 가 조회되겠죠?)
여기서 사용되는 SELECT, FROM, WHERE 는 SQL에서 지정한 Keywords 들 중 하나입니다.
저 Keywords 들을 기준으로 SQL이 해석될 수 있는거죠!
SELECT는 '~를 조회해 오다', FROM은 '~로 부터', WHERE은 '~한 조건을 만족하는' 이라는 뜻을 담고 있어요
보통 기본적인 SELECT 문은 SELECT - FROM - WHERE 순으로 입력됩니다.
(눈치 채신 분들도 계시겠지만, 실제 해석되는 순서는 FROM - WHERE - SELECT 인데요! 이건 나중에 다뤄 볼게요)
SQL 종류
SQL은 데이터를 조회해 오는 것 외에도 데이터를 정의, 조작, 제어할 수 있도록 지원합니다.
SQL이 지원하는 기능에 따라 종류가 크게 4가지로 나뉘는데요.
SQL Developer 들이 주로 사용하게 되는 건 DDL, DML, TCL 라고 볼 수 있어요.
DCL은 Table 등과 같은 DB 구조체에 특정 DB 사용자가 접근할 수 있게 권한을 부여 또는 회수하는 언어 입니다.
SQL ANSI 표준
SQL가 모든 RDBMS에서 동일하게 적용되는 것은 아닙니다.
가령 Oracle에서 이상없이 돌아갔던 SQL이 MySql에선 수행되지 않는 경우도 있죠
이런 경우는 해당 SQL이 Oracle에서만 유효한 문법을 사용했기 때문입니다.
이러한 이슈들을 최소화 할 수 있게 미국 국가표준 협회(American National Standards Institute, ANSI)에서
SQL ANSI 표준을 정립시키게 됩니다.
그 중 한 예로, Oracle에서 Table을 JOIN할 때 WHERE 조건에 (+)를 붙여 JOIN 관계를 나타냈었는데
ANSI 표준에선 JOIN의 경우 (+)를 사용하지 않고 FROM 절에 INNER JOIN, LEFT OUTER JOIN과 같은
JOIN 관계를 직접 명시하도록 했죠.
이게 굳이 왜 필요가 있나요? 라고 하실 수 있지만,
Oracle을 사용하던 시스템이 MySQL로 DB 전환을 한다고 했을 때에는 저런 케이스들이 아주 큰 이슈가 될 수 있겠죠?
-
이상으로 오늘은
SQL의 정의, 종류 그리고 ANSI 표준에 대해서까지 알아봤습니다.
다음 게시물에선 SQL 중 가장 많이 사용되는 SELECT문 문법들을
엑셀을 통해 쉽고 더 이해가 잘 되게 다뤄볼게요 🥳
[ 참고 ]
책 MySQL로 배우는 데이터베이스 개론과 실습
책 SQL 개발자 이론서 + 기출문제
블로그 https://jieunkkim.tistory.com/entry/SQL관계형데이터베이스란
블로그 https://velog.io/@gillog/ANSI-SQL이란
'Database > 엑셀로 배우는 SQL 실무 - 입문' 카테고리의 다른 글
[SQL] 엑셀로 배우는 SQL - WHERE (=, !=, LIKE, NOT LIKE) (0) | 2023.01.02 |
---|---|
[SQL] 엑셀로 배우는 SQL - WHERE (=, >, <, !=, BETWEEN) (0) | 2022.12.30 |
[SQL] 엑셀로 배우는 SQL - SELECT 문, 읽는 순서, Alias (별칭) (0) | 2022.12.29 |
[SQL] 엑셀로 배우는 SQL - Table, Column, Row (0) | 2022.12.28 |
[SQL] 엑셀로 배우는 SQL - 관계형 데이터베이스(RDB) (0) | 2022.12.26 |
댓글