SQL
1. SQL
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 관리하고 조작하기 위해 사용하는 언어입니다. SQL은 테이블에서 데이터를 조회, 삽입, 수정, 삭제하는 기능을 제공하며, 데이터베이스 스키마를 정의하고 관리할 수 있습니다. 관계형 데이터베이스에서 데이터를 다루기 위해 필수적으로 사용되는 도구입니다.
SQL은 크게 세 가지 주요 역할을 합니다.
-
데이터 정의(DDL - Data Definition Language): 데이터베이스의 구조를 정의하는 명령어입니다. 테이블을 생성하거나 삭제하고, 테이블의 속성을 정의합니다.
- 예:
CREATE
,ALTER
,DROP
- 예:
-
데이터 조작(DML - Data Manipulation Language): 데이터베이스 내의 데이터를 조회, 삽입, 수정, 삭제하는 명령어입니다.
- 예:
SELECT
,INSERT
,UPDATE
,DELETE
- 예:
-
데이터 제어(DCL - Data Control Language): 데이터베이스에 대한 사용 권한을 관리하는 명령어입니다.
- 예:
GRANT
,REVOKE
- 예:
2. 테이블과 제약 조건
관계형 데이터베이스에서 데이터를 저장하는 기본 단위는 테이블입니다. 테이블은 열(속성)과 행(튜플)으로 구성되며, 데이터를 구조화하여 저장합니다. 테이블을 생성할 때 각 열에 데이터 타입과 제약 조건을 지정할 수 있습니다.
예를 들어, customer
테이블을 생성하면서 각 열에 제약 조건을 설정할 수 있습니다.
CREATE TABLE customer (
customer_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE
);
CREATE TABLE customer (
customer_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE
);
이 예시는 다음과 같은 제약 조건을 포함합니다.
- PRIMARY KEY: 각 고객을 고유하게 식별할 수 있는 열입니다.
- NOT NULL:
name
은 반드시 값이 있어야 하며, 비워둘 수 없습니다. - UNIQUE:
email
값은 중복될 수 없습니다.
3. 테이블 간의 관계
SQL에서 테이블 간의 관계를 정의할 수 있습니다. 예를 들어, order
테이블과 customer
테이블이 있을 때, 각 주문이 특정 고객과 연결되도록 외래 키(Foreign Key)를 설정할 수 있습니다.
CREATE TABLE order (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);
CREATE TABLE order (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);
여기서 customer_id
는 customer
테이블의 customer_id
와 연결된 외래 키로 설정됩니다. 이를 통해 order
테이블과 customer
테이블 간의 관계를 정의합니다.
4. SQL의 7가지 원칙
아래와 같은 SQL의 7가지 원칙에 대해 알면 좀 더 효율적으로 데이터를 다룰 수 있습니다. 다만 이 원칙은 SQL을 처음 접하는 사람에게는 조금 어려울 수 있습니다. 베이스캠프에서는 원칙만 다뤄드리고 이 원칙에 기반한 수업은 베이스캠프 시리즈가 아니라 에센셜 시리즈에서 다루게 됩니다.
- 지시 사항 및 분석할 내용 파악
- 어떤 테이블로 분석해야하는가? (
from
) - 어떤 컬럼이 필요한가? (
select
) - 어떤 조건이 필요한가? (
where
) - 집계가 필요한가? (
group by
) - 집계된 자료에 추가 조건이 필요한가? (
having
) - 보기 좋게 정렬이 필요한가? (
order by
)
위의 원칙을 프로세스로 나누면 다음과 같습니다.
업무 과정 | SQL 과정 |
---|---|
1. 업무 파악 | 1) 지시 사항 및 분석할 내용 파악 |
2. 데이터 준비 | 2) 어떤 테이블로 분석해야하는가? (from ) |
3. 데이터 전처리 | 3) 어떤 컬럼이 필요한가? (select ) |
4) 어떤 조건이 필요한가? (where ) |
|
4. 데이터 집계 | 5) 집계가 필요한가? (group by ) |
5. 데이터 정리 및 보고자료 작성 | 6) 집계된 자료에 추가 조건이 필요한가? (having ) |
7) 보기 좋게 정렬이 필요한가? (order by ) |