내일배움캠프/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
반응형