학습 기록/코딩 자율학습단 18기

코딩 자율학습단 18기 SQL 데이터베이스 3주차

dataminutestone 2025. 12. 15. 23:12

11일차: ~6.2 다양한 관계 만들기 (종이책: p168-183)

일대일 관계, 일대다 관계, 다대다 관계 등

다대다 관계에는 중간 테이블이 필수적이다 ex) 사용자 - 좋아요 - 사진

 

기본키 -> 유일성, 비널, 불변성, 식별성 보통은 id를 사용

외래키 -> null을 허용

제약조건을 걸어줄 수 있다. unsigned도 제약조건 중 하나 check는 where처럼 조건절

foreign key (country_id) refernces countries(id) -> 이렇게 외래키 지정 가능

 

12일차: ~6.4 셀프체크 (종이책 p.184-200)

auto_increment 제약조건을 걸면 1씩 추가됨

반드시 입력해야 하는 제약조건은 not null

 

일대다 관계에서는 일쪽이 기본키 다쪽이 외래키를 선언해야함!

다대다 관계는 중간 테이블이 외래키를 받고 연결해줘야 함.

-> 세개 테이블 조인과 유사하다.

 

13일차: ~7.2 조인의 유형 (종이책 p.202~p.218)

조인 -> 기본적으로 이너조인, 교집합을 의미

select 칼럼명 from 테이블 join 테이블B on 테이블 A 조인_칼럼 = B 조인_칼럼

이런 식으로 겹치는 키값을 조건으로 걸어준다.

중복 칼럼은 테이블명을 붙여서 구분! 

left 조인은 왼쪽 테이블의 모든 데이터 기준!

right조인은 오른쪽 테이블의 모든 데이터 기준!

full조인은 모든 데이터를 결합하는 것 but, mysql에서는 지원하지 않기에 union을 사용해야 함!

left조인 union right 조인 -> 이런 식으로 써야함!

 

14일차: ~7.4 셀프체크 (종이책 p.219-230)

조인을 여러번 활용할 수 있다.

이너조인을 주로 사용하게 될 것 같긴 하지만, left조인과  right조인도 확실히 알아둘 것!

 

15일차: ~8.2 그룹화 필터링, 정렬, 조회 개수 제한 (종이책 p.232-246)

그룹화란 데이터 분석 기법의 하나로, 특정 기준에 따라 여러 그룹으로 나누고 그룹별 데이터를 요약하거나 분석하는 것!

1. 집계함수와 함께 사용해야 함2. 여러 칼럼으로 그룹화할 수 있다. -> 도시 기준으로 그룹화 후 판매 연도 기준으로 세부 그룹을 나누어 특정 도시의 연도별 총 매출 group by city, year(sale_date) 이런 식으로 활용3. select 절에 올 수 있는 칼럼이 제한적이다 ! -> 그룹화에 사용한 컬럼이나 집계함수에 사용한 칼럼만 가능 

 

having 절로 group by절의 조건을 걸어줄 수 있다.

 

조회개수 제한은 limit를 사용할 것limit N offset M을 사용하면 중간 튜플을 가져올 수 있다.