내일배움캠프/SQL

예제로 익히는 SQL 1~3회차

hyezdata 2025. 2. 25. 11:55
1회차

 

DBMS

  • DB에 규칙성 및 정합성을 부여하며, 데이터 등록/정리/검색/이 용이하도록 하는 Software System이다.
  • 다수의 사용자가 동시 접속 및 공유가 가능하게 한다.

 

  • 저장방식은 크게 관계형, 계층형, 망형이 있는데 가장 널리 사용되는 방식은 '관계형'이다.
  • 관계형의 최소 단위를 테이블로 약속, 테이블은 하나 이상의 열(column, 세로)과 행(row, 가로)으로 이루어져 있다.

 

QUERY

DB에 정보를 요청하고 결과를 얻기 위해 사용되는 언어

 

★ SQL 작동 순서

FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY

 

  SQL 작성 순서

SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY 

 


2회차

 

LIKE와 IN

IN : 무조건 적혀있는 텍스트와 같아야 함

 

CASE WHEN 안에 IF가 포함된다.

 

다중 조건을 사용할 땐 먼저 해야하는 조건을 괄호로 묶어주기

괄호로 안 묶어주면 쿼리가 깨져서 값이 이상하게 나온다.

 

기억하기

  • 큰따옴표(" ")는 작은따옴표로 다 커버가 돼서 사실 안써도 된다.
  • 백틱 SELECT가 예약어이지만 나는 그냥 쓰고 싶어! 이럴 때 사용

 


3회차

 

GROUP BY

  • 집계함수에 그룹(기준)이 더해진 개념
  •  전체 데이터를 기준으로 조회할 때는 GROUP BY절이 필요하지 않지만, 특정 컬럼을 기준으로 데이터를 요약해서 비교하고 싶을 때 사용한다.

GROUP BY 작성방법

  • 집계함수를 뺀 나머지 기준 컬럼들을 GROUP BY절에 적어줘야 한다.

HAVING

  • GROUP BY 결과 필터링 할 때 사용한다.
  • GROUP BY절 뒤에 위치한다.

WHERE절과 HAVING절 차이

결과값을 기준으로 데이터를 필터링한다.

 

SUBQUERY

  • 괄호 안에 SELECT, FROM 반드시 명시해줘야 한다.
  • 쿼리 마지막에 ; 기호를 사용할 수 없다.
  • ORDER BY절을 사용할 수 없다.

 

중첩(일반) 서브쿼리

  • WHERE절에서 사용한다. (하나의 조건처럼 사용)
  • 서브쿼리의 결과에 따라 조건절이 달라진다.

 

스칼라 서브쿼리

  • SELECT절에서 사용한다.
  • 하나의 컬럼처럼 사용한다.
# 스칼라 서브쿼리 실습
# theglory 의 이름과 theglory2 테이블의 이름이 일치하는 경우를 count 하여 
# same_name_cnt 컬럼으로 반환
# theglory 의 이름과 theglory 테이블의 이름이 일치하는 경우의 결제금액을 sum 하여 
# same_name_sumamount 컬럼으로 반환
select 이름
, 나이
, (select count(*) from theglory2 where theglory2.이름=theglory.이름) as same_name_cnt
, (select sum(결제금액) from theglory2 where theglory2.이름=theglory.이름)as same_name_sumamount
from basic.theglory
;

 

인라인 뷰 (가장 많이 사용)

  • FROM절에서 사용한다.
  • 하나의 테이블처럼 사용한다.
  • 명칭을 반드시 기재해야 한다.
  • JOIN, UNION 시 가장 유용하게 사용된다.

728x90
반응형