데이터 분석에 관해서는 대부분 R, Python을 사용합니다. 그렇지만 방대한 데이터를 저장하기 위해서는 DBMS를 사용하는 것이 좋은데, 이를 다루기 위해서는 SQL을 알아야 합니다.
국비지원교육에서 수업을 들은 내용, 거기에 제가 SQLD를 취득하면서 공부했던 내용들을 하나씩 풀어나가려고 합니다.
앞으로 서술할 SQL문은 Oracle을 기준으로 작성된다는 점
DB vs DBMS
둘을 구분하지 않고 사용하는 경우가 많지만, 엄연히 다른 의미를 가지고 있습니다.
- DB(DataBase): 데이터들의 집합
- DBMS(DataBase Management System): DB를 관리하는 소프트웨어를 의미
SQL이란?
SQL이란 Structured Query Language(구조적 질의 언어)의 줄임말이며, 관계형데이터베이스 시스템(RDBMS)에서 자료를 관리하고 처리하기 위해 설계된 언어입니다. 각 RDBMS 프로그램은 현재 SQL의 표준인 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 근소한 차이를 보이고 있습니다.
SQL의 종류는 다섯 가지로 구분되며, 이 곳에서는 간단하게 소개하고, 추후 자세히 다루도록 하겠습니다.
- DQL(Data Query Language, 질의어): 테이블에 저장된 데이터를 검색할 때 사용하는 SQL문. 대표적으로 SELECT 문이 있습니다.
- DML(Data Manipulation Language, 데이터 조작어): 데이터베이스에 저장된 데이터를 조작하기 위해 사용되는 SQL문.
INSERT(생성), UPDATE(수정), DELETE(삭제), MERGE(병합)이 해당됩니다. - TCL(Transaction Control Language, 트랜잭션 처리어): 트랜적션과 관련된 작업을 처리하기 위한 SQL문.
COMMIT, ROLLBACK이 있습니다. - DDL(Data Definition Language, 데이터 정의어): 객체를 생성, 수정, 삭제하는데 사용하는 SQL문.
CREATE, ALTER, DROP이 있습니다. - DCL(Data Control Language, 데이터 제어어): 데이터베이스에 저장된 데이터를 보호하기 위해 권한을 부여하고 취소하는 SQL문.
GRANT(권한 부여), REVOKE(권한 취소)가 해당합니다.
데이터의 유형(Data Type)
SQL에서 데이터의 유형은 크게 세 가지로 나누어집니다.
- 수치형: 일반적인 숫자 형태로 정수와 실수가 있으며, 두 타입 모두 number로 지정할 수 있습니다.
정수의 경우 number(자릿수), 실수의 경우 (전체 자릿수, 소수점 자릿수)로 지정합니다. - 문자형: 가나다, abc 등의 문자 형태로 고정형 문자열과 가변형 문자열이 있습니다.
고정형 문자열은 CHAR(byte), 가변형 문자열은 VARCHAR2(byte)로 지정합니다.
둘은 차지하는 공간에 차이점이 있습니다. 고정형 문자열의 경우 지정한 byte 수를 무조건 차지하는 반면, 가변형 문자열의 경우 지정한 byte 수보다 적게 들어온 경우 들어온 byte 수만큼만 크기를 차지합니다. - 날짜: 일반적인 년, 월, 일, 시, 분, 초가 해당되며, DATE로 지정할 수 있습니다.
위에서 서술한 세 가지 유형과 NULL이라는 것이 존재합니다. NULL은 값이 없음을 의미하며 0을 의미하는 것이 아니라는 점을 주의해야 합니다.
위 내용들은 기초적인 내용들로, 다음 글들로 하나씩 자세히 다루도록 하겠습니다.