SQL
: 구조화된 쿼리 언어 -> 데이터베이스 용 프로그래밍 언어
예) MySQL, Oracle, SQLite, PostgreSQL
SQL Basics
SOL 기초
"type!=?"
= "type<>?"
- 특정 값과 비슷한 값들을 필터할 때:
LIKE
+ '%문자열%'
- 특정 값 일치하는 데이터를 필터할 때:
WHERE 특성_2 IN ("특정값_1", "특정값_2");
- 값이 없는 경우를 제외할 때:
WHERE 특성_1 IS NOT NULL;
Join
OUTER JOIN: LEFT OUTER JOI
, RIGHT OUTER JOIN
SELECT *
FROM 테이블_1
LEFT(RIGHT) OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
SQL 조인 시각
이미지 출처
연습용 사이트
관계형 데이터베이스
: 테이블을 사용하는 데이터베이스
스키마
: 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계
- 데이터 : 각 항목에 저장되는 값입니다.
- 테이블 (= relation, entity) : 사전에 정의된 행과 열로 구성되어 있는 체계화된 데이터
- 필드 (= column, attribute) : 테이블의 열을 가리킵니다.
- 레코드 (=tuple, instance) : 테이블의 한 행의 저장된 정보
- 키 : 테이블의 각 레코드를 구분할 수 있는 값
각 레코드마다 고유값이어야 하며 기본키 (primary key) 와 외래키 (foreign key) 등이 있음
이미지 출처
관계의 종류
이미지 출처
1:1 관계
1:N 관계
- 한 명의 유저가 여러 전화번호를 가질 수 있으나 여러명의 유저가 하나의 전화번호를 가질 수는 없음
- 가장 많이 쓰이는 관계
N:N 관계
-고객 한 명은 여러 개의 여행 상품을 구매할 수 있고, 여행 상품 하나는 여러 명의 고객이 구매할 수 있음
- customer_package 테이블은 customer_id와 package_id를 묶어주는 역할
자기참조
- 유저당 한 명만 추천할 수 있지만 추천 받은 사람은 여러 명에서부터 추천을 받게 됨
출처