❄️ 내일배움캠프 7기

[사전캠프/SQL] 1-4주차 복습

Genie_. 2024. 9. 12. 13:03
728x90
반응형

1주차

  • SELECT : 데이터를 가져오는 기본 명령어(데이터 조회하는 쿼리에 사용)
  • FROM : 데이터를 가져올 테이블을 특정
  • * : 모든 컬럼을 가져와준다는 의미

컬럼에 별명주기

방법1 : 컬럼1 as 별명1
방법2 : 컬럼2 별명2

WHERE 절

  • 특정 조건 필터링(찾아야 하는 경우) 해야하는 경우 사용
  • 문자는 작은 따옴표('') 사용
  • 기본 조건은 '='를 통해 줄 수 있음
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)

BETWEEN 

  • A와 B사이
WHERE age BETWEEN a AND b

IN(포함)

  • '포함'하는 조건 주기
IN (A,B,C)

LIKE

  • 완전히 똑같지는 않지만, 비슷한 값 조건으로 주기
  • 특정한 문자로 시작하는 경우
    • LIKE '시작문자'%
    • 예시 : '김'으로 시작하는 이름
name LIKE '김%'
  • 특정한 문자를 포함하는 경우
    • LIKE '%포함문자%'
    • 예시 : 식당 이름에 'Next'를 포함하는 경우
restaurant_name LIKE '%Next%'
  • 특정한 문자로 끝나는 경우
    • LIKE '%끝나는문자'
    • 예시 : '임'으로 끝나는 이름
name LIKE '%임'

논리연산

  • 여러개의 조건을 적용할 때 사용되는 연산
  • 종류는 3가지가 있다.
    • AND : 그리고
    • OR : 또는
    • NOT : 아닌

2주차

SUM(컬럼), AVG(컬럼)

  • SUM(컬럼) : 컬럼에 해당하는 값 다 더하기
  • AVG(컬럼) : 컬럼에 해당하는 값 평균

COUNT

  • 데이터 갯수 : COUNT(컬럼) / 컬럼명 대신 1 혹은 * 사용가능
  • 몇개의 값을 가지고 있는지 구할 때 : DISTINCT(중복 값 제외)
SELECT COUNT(1) count_of_orders,
       COUNT(DISTINCT customer_id) count_of_customers
FROM food_orders

MAX(컬럼), MIN(컬럼)

  • 최솟값 : MIN(컬럼)
  • 최댓값 : MAX(컬럼)
SELECT MIN(price) min_price,
       MAX(price) max_price
FROM food_orders

GROUP BY

  • Group by는 카테고리 컬럼 지정, Group by를 적어주는 것으로 적용 가능
SELECT 카테고리컬럼(원하는컬럼 아무거나),
       SUM(계산 컬럼),
FROM
GROUP BY 카테고리컬럼(원하는컬럼 아무거나)

ORDER BY(정렬문)

  • 오름차순(생략) : 숫자가 점점 커지는 순서로 정렬
  • 내림차순(desc) : 숫자가 점점 작아지는 순서로 정렬
SELECT 카테고리컬럼(원하는컬럼 아무거나),
       SUM(계산 컬럼),
FROM
GROUP BY 카테고리컬럼(원하는컬럼 아무거나)
ORDER BY 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)

3주차(REPLACE,SUBSTRING,CONCAT,IF,CASE)

REPLACE

  • 특정 문자를 다른 것으로 바꿀 수 있는 기능
replace(바꿀 컬럼, 현재 값, 바꿀 값)

SUBSTRING

  • 특정 문자만 골라서 조회할 수 있는 기능
substr(조회 할 컬럼, 시작 위치, 글자 수)

CONCAT

  • 여러 컬럼의 값을 하나로 합칠 수 있는 기능
  • 붙일 수 있는 문자의 종류
    • 컬럼
    • 한글
    • 영어
    • 숫자
    • 기타 특수문자
concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, .....)

IF(조건문)

  • IF 문은 원하는 조건에 충족할 때 적용할 방법과 아닌 방법을 지정
IF(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)

CASE(중첩 IF문 느낌)

  • Case 문은 각 조건별로 적용 할 값을 지정해 줄 수 있음 = if문 여러번 쓴 효과
  • CASE(조건1, 값1, CASE(조건2, 값2, 값3))
CASE WHEN 조건1 THEN 값(수식)1
     WHEN 조건2 THEN 값(수식)2
     ELSE 값(수식)3
END

4주차

SUBQUERY

  • 여러번의 연산을 수행해야할 때
  • 조건문에 연산 결과를 사용해야 할 때
  • 조건에 Query 결과를 사용하고 싶을 때
SELECT column1, special_column
FROM
    ( /* subquery */
    SELECT column1, column2 special_column
    FROM table1
    ) a

JOIN

  • 필요한 데이터가 하나의 테이블에 모여있지 않을때(여러 테이블에서 데이터를 불러와야 할 때)
  • LEFT JOIN : 공통 컬럼(키값)을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회되는 경우  
SELECT 조회 할 컬럼 
FROM 테이블1 a LEFT JOIN 테이블2 b ON a.공통컬럼명=b.공통컬럼명
  • INNER JOIN : 공통 컬럼(키값)을 기준으로, 두 테이블 모두에 있는 값만 조회(교집합)
SELECT 조회 할 컬럼 
FROM 테이블1 a INNER JOIN 테이블2 b ON a.공통컬럼명=b.공통컬럼명
728x90
반응형