brunch

You can make anything
by writing

- C.S.Lewis -

by 호달 Sep 23. 2020

함께해요 SQL : SQL 엿보기!

- CHAPTER 01 : SQL 왜 필요한지 알고 살짝 맛보기! -

함께해요 SQL 스타트!


SQL 왜? 필요할까
데이터가 더 좋은 생각을 가지고 있다.


지금 세계는 데이터가 지배 중!

데이터를 활용하려면 관리도 필요하다.

세상이 발전하면서 데이터는 크게 자리 잡고 있다. 특히 인터넷과 스마트폰이 생기면서 데이터의 비중은 더욱 커졌다. 많은 곳에선 데이터를 활용해 다양한 접근 방법을 기획하고 효율적인 의사소통을 하려고 노력한다. 결국 데이터 기반의 의사결정이 활발해지면서 데이터를 효율적으로 다룰 필요가 생겼다.


데이터를 다루는 도구는 필수가 되었다!

도구를 활용하여 데이터를 관리하자.

데이터가 많아지면서 유의미한 데이터를 찾는 것도 어려워졌다. 의미 있는 인사이트를 얻기 위해서 어떠한 데이터를 저장하고, 어떻게 추출하여, 어떻게 볼지를 고민하게 되었다. 데이터베이스 역시 점점 늘어나는 데이터를 어떻게 관리할지를 고민하기 시작하면서 탄생하게 되었다. 즉 늘어나는 데이터를 손쉽게 처리하고, 관리하기 위해서는 데이터 도구는 필수다.


누구나 쉽게 사용할 수 있는 Excel과 스프레드시트

Excel과 스프레드시트 유용하다! 하지만...

데이터의 중요함은 특정 전문가에게만 해당되는 이야기는 아니었다. 데이터베이스를 탄생하게 한 고민은 '다양한 직군도 유용하게 사용할 수 있는 도구'로 이어졌고, 그렇게 Excel과 스프레드시트와 같은 도구가 나오게 되었다. 이들을 사용해보면 알겠지만, 전문 프로그래밍 언어를 사용하지 않아도 데이터를 활용할 수 있다. 또한 셀(cell) 구조로 이루어져 즉각적인 데이터 표현이 가능해 자유로운 장점이 있다. 이러한 이유로 Excel과 스프레드시트는 많이 사용된다. 하지만 많은 데이터를 관리하기엔 한계가 있다.


비전공자도 배우기 시작한 데이터베이스

데이터베이스의 장점?

Excel과 스프레드시트는 자유로운 데이터 활용이 가능하지만 데이터가 더욱 방대해지는 상황에 점점 한계가 나타난다. 많은 데이터를 적재해야 하고, 빠르게 데이터를 처리할 수 있어야 한다. 데이터베이스의 사용자 편의성은 Excel과 스프레드시트에 비해 떨어지지만, 많은 데이터를 관리할 수 있고 빠르게 처리할 수 있다. 또한 복잡한 쿼리를 구조화할 수 있어 다양한 형태로 데이터를 추출할 수 있는 장점이 있다. 이러한 이유로 비전공자도 데이터베이스를 배우며 활용하려는 노력이 활발해졌다.


데이터베이스와 소통하는 언어 SQL

SQL이 필요한 이유

SQL은 무엇일까? 간단히 설명하자면, 데이터베이스를 활용하는 프로그래밍 언어이다(자세한 설명은 아래에서 하도록 함). SQL은 데이터베이스에서 원하는 정보를 가져오고 사용할 수 있도록 활용하는 의사소통 언어로, 데이터베이스를 활용하기 위해선 필수적이다. 따라서 데이터베이스의 활용이 많아지면 SQL의 중요도 역시 높아진다.


#(SQL 왜 필요할까?) 요약정리

1. 현재 데이터는 다양한 분야에 자리 잡았고, 활용되고 있다.
2. 데이터 기반의 의사결정을 하기 위해선 데이터를 효율적으로 관리해야 한다.
3. 점점 많아지는 데이터를 관리하기엔 Excel과 스프레드시트로는 한계가 있다.
4. 데이터베이스의 활용도가 높아지면서 비전공자들도 데이터베이스를 활용하려고 노력한다.
5. 데이터베이스가 많이 사용되는 만큼 SQL의 중요도 역시 높아진다.


SQL관련 기본개념

   

데이터베이스란?

구조적인 방식으로 관리되는 데이터의 집합

데이터베이스란 무엇일까? 사전에선 '여러 사람이 공유하고 사용할 목적으로 종합 관리되는 데이터의 집합'이라고 설명한다. 데이터베이스란 개념은 컴퓨터를 사용하여 데이터를 효율적으로 관리하는 목적으로 '데이터 기지'라는 의미에서 시작되었다. 당시 기존의 파일 시스템은 중복된 정보가 상당히 많았다. 따라서 데이터의 중복을 피해 효율적으로 관리하는 것이 당시의 목표였다. 목표를 달성하고자 관련성을 가진 데이터를 기준으로 하나의 집합으로 구성하고 시스템화하였다. 즉 데이터베이스는 중복된 데이터를 줄이고자 관련성을 가진 데이터를 하나의 집합으로 효율적으로 관리하는 시스템이라고 볼 수 있다.


테이블(Table)이란?

열과 행으로 구성된 데이터의 집합

테이블(Table)은 열(세로줄)과 행(가로줄)으로 정렬한 데이터 집합이다. 최상단 행(가로줄)을 기준으로 동일한 형태의 데이터가 각 열(세로줄)에 쌓이는데, 각 데이터는 하나의 주제로  구성다. 예를 들어 1열의 최상단이 '유저 이름'의 항목을 가지고 있으면, 1열은 유저의 이름이 적재되어야 한다(갑자기 전화번호가 들어가면 안 됨).


데이터베이스 스키마(Database Schema)

데이터 형식 정의 값

데이터베이스 스키마(Database Schema)는 데이터 특성에 대한 정보이다. 각 열(Column)은 동일한 형태의 데이터가 들어가야 하는데, 이를 유형적으로 정의한 내용이라고 볼 수 있다. 쉽게 설명하자면 Excel이나 스프레드시트에서 데이터 서식과 동일한 맥락이라고 보면 된다.


열(Column)이란?

테이블의 세로줄

열(Column)은 앞서 설명한 테이블에서 세로줄을 뜻한다. 각 열(Column)은 테이블을 구성하는 세부 정보를 담으며 속성(Attribute), 필드(Field)라고도 불린다.


행(Row)이란?

테이블의 가로줄

행(Row)은 테이블에서 가로줄을 뜻한다. 각 행(Row)은 테이블에 들어가는 각각의 정보 집합이다. 각 열의 서식에 맞추어 관련 있는 정보를 구성한 데이터의 집합으로 보면 된다. 예를 들어 설명하면 행(Row)은 A라는 사람의 정보를 각 열(Column)의 서식(이름, 전화번호, 주소 등)에 맞춰 한 행에 나열하는 것이다.


기본 키(Primary Key)란?

테이블을 대표하는 기준 열(Column)

기본 키(Primary Key)는 테이블의 가장 고유한 식별 값이다. 사람이 이름이 없다면 그 사람을 정의하기 힘들다. 데이터도 마찬가지다. 데이터를 구성할 때 대표 정보를 기준으로 나머지 데이터를 나열한다. 따라서 가장 고유한 속성을 지니며 빈칸이거나 자주 변경되면 안 된다(개명하면 주민등록증, 은행계좌, 카드 등 많은 걸 바꾸는 것처럼 복잡하고 어려운 일).


SQL 시작하기


SQL은 무엇일까?

데이터베이스를 활용하는 프로그래밍 언어

SQL은 Structured Query Language의 약자로 구조화 질의어라는 뜻이다. 앞서 언급한 것처럼 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. SQL은 다른 프로그래밍 언어와 다르게 테이블의 관계를 명시하는 형태로 질의하고 결과를 받는  언어이다. SQL의 종류를 나누면 크게 3가지로 나뉜다.

1. 데이터 정의 언어(DDL : Data Definition Language)
2. 데이터 조작 언어(DML : Data Manipulation Language)
3. 데이터 제어 언어(DCL : Data Control Language)

위의 내용과 같이 SQL은 단순한 질의문에서 끝나는 게 아닌 데이터를 정의하고 조작하는 언어이기도 하다.


데이터 정의 언어(DDL : Data Definition Language)

데이터를 담을 수 있는 틀을 만드는 언어
CREATE : 데이터베이스에서 테이블을 생성
DROP : 데이터베이스에서 테이블을 삭제
ALTER : 데이터베이스에서 테이블 구조를 변경

데이터 정의 언어는 테이블을 어떻게 구성할지 정의하는 언어이다. 데이터가 저장될 공간(테이블)을 구성하고, 공간의 형식(스키마)을 정의하는 역할을 수행한다.


# DDL 사용 예시 : 새로운 테이블 생성 

CREATE TABLE TABLE_NAME(  

        COLUMN_NAME1 INT,  

        COLUMN_NAME2 VARCHAR(50),  

        COLUMN_NAME3 BOOLEAN DEFAULT NULL,  

        COLUMN_NAME4 TIMESTAMP NOT NULL,  

        PRIMARY KEY (COLUMN_NAME1)

);

# DDL 사용 예시 : 기존에 있는 테이블 복사 

CREATE TABLE TABLE_NAME_COPY  

AS SELECT * FROM TABLE_NAME;


# DDL 사용 예시 : 테이블 삭제 

DROP TABLE TABLE_NAME_COPY;



데이터 조작 언어(DML : Data Manipulation Language)

틀 안에 들어갈 데이터를 조작하는 언어
INSERT : 테이블에 데이터 입력
DELETE : 테이블에서 데이터 삭제
UPDATE : 테이블의 데이터를 수정
SELECT : 테이블의 데이터를 검색

데이터 조작 언어는 데이터 정의 언어로 구성한 데이터의 틀에 데이터를 저장, 삭제, 수정, 검색 등의 역할을 수행하는 언어이다.


# DML 사용 예시 : 테이블 전체 데이터 검색 

SELECT * FROM TABLE_NAME;


# DML 사용 예시 : 테이블 특정 열 데이터 검색 

SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME;


# DML 사용 예시 : 테이블 특정 조건 데이터 검색 

SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME

WHERE COLUMN_NAME1 = 'VALUE_1';


데이터 제어 언어(DCL : Data Control Language)

데이터에 대한 권한(액세스)을 제어하기 위한 언어
GRANT : 특정 사용자에게 작업 권한을 부여
REVOKE : 사용자에게 부여된 권한을 박탈

데이터 제어 언어는 데이터베이스의 사용권한을 제어하는 언어이다. 데이터베이스 관리자가 아닌 이상 잘 사용하지 않음



CHAPTER 02에서 계속.

매거진 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
브런치 시작하기

카카오계정으로 간편하게 가입하고
좋은 글과 작가를 만나보세요

카카오계정으로 시작하기
페이스북·트위터로 가입했다면