SQL 기본 문법 복기 (2)

2024. 12. 27. 20:07·공부하기/Database

SQL 강의를 마저 들었다 !


REPLACE : 글자 대치하기

  • replace(컬럼, 대상 글자, 바뀔 글자)

 

CONCAT : 문자열 합치기

  • concat(합칠 문자열, 합칠 문자열, ...)
select concat('[',substr(addr,1,2),']',restaurant_name,' (',cuisine_type,')') "음식점",
		count(1) "주문 건수"
from food_orders
group by 1

 

SUBSTR : 원하는 위치의 글자만 가져오기

  • substr(컬럼, 시작 인덱스, 가져올 글자 수)
    • 시작 인덱스 >= 1
    • '가져올 글자 수'를 명시하지 않고 substr(컬럼, 시작 인덱스)로 적을 경우, 시작 인덱스부터 끝까지 가져옴

 

GROUP BY : select 절의 n번째 컬럼으로 묶기

group by 뒤에 n을 적어준다

select substr(email,10) "도메인", count(1) "고객 수", avg(age) "평균연령"
from customers
group by 1

 

조건문 IF : 단일 조건에 따른 처리

  • if(조건, true일 경우 값, false일 경우 값)

음식 타입이 'Korean'이라면 '한식'을, 다른 타입이라면 '기타'를 출력

select restaurant_name '음식점 이름', if(cuisine_type='Korean','한식','기타') '음식타입'
from food_orders

 

조건문 CASE : 여러 조건에 따른 처리

  • case when 조건1 then 값1 when 조건2 then 값2 else 값3 end

음식 타입이 'Korean'이라면 '한식'을, 'Japanese'나 'Chinese'라면 '아시아'를, 그외 다른 타입이라면 '기타'를 출력

select restaurant_name "음식점 이름", 
    case when cuisine_type="Korean" then "한식"
    when cuisine_type in ("Japanese","Chinese") then "아시아"
    else "기타" end "음식 타입"
from food_orders

 

10세 이상 30세 미만의 고객 정보 분류하기

select case when (age between 10 and 19) and (gender='male') then '10대 남성'
	 		when (age between 10 and 19) and (gender='female') then '10대 여성'
	 		when (age between 20 and 29) and (gender='male') then '20대 남성'
	 		when (age between 20 and 29) and (gender='female') then '20대 여성'
	 		end "고객 분류",
 		name,
 		age,
 		gender
from customers
where age between 10 and 29

 

서브쿼리 사용하기

서브쿼리가 필요한 경우

  1. 여러번의 연산을 수행할 필요가 있을 때
  2. 조건문에 연산 결과를 사용해야 할 때
  3. 조건에 Query 결과를 사용하고 싶을 때
select column1, special_column
from
    ( /* subquery */
    select column1, column2 special_column
    from table1
    ) a
⚠️ from절에 서브쿼리를 사용하는 경우, 서브쿼리에 별명을 지정해주어야한다.

 

JOIN 사용하기

 

저작자표시 비영리 변경금지 (새창열림)

'공부하기 > Database' 카테고리의 다른 글

[Database] 트랜잭션과 ACID 원칙에 대해 정리해보자  (0) 2025.03.10
Redis에 대해 정리해보자  (0) 2025.03.05
[MySQL] DATE 데이터 다루기  (2) 2025.01.16
SQL 기본 문법 복기 (1)  (0) 2024.12.26
'공부하기/Database' 카테고리의 다른 글
  • [Database] 트랜잭션과 ACID 원칙에 대해 정리해보자
  • Redis에 대해 정리해보자
  • [MySQL] DATE 데이터 다루기
  • SQL 기본 문법 복기 (1)
다섯자두
다섯자두
All I need is 💻 , ☕️ and a dash of luck
  • 다섯자두
    subbni
    다섯자두
  • 전체
    오늘
    어제
    • 전체 글 (88) N
      • 개발 이야기 (0)
      • 만들어보기 (17)
        • FromBookToBook (5)
        • Spring (5)
        • Node.js & React (3)
        • TroubleShooting (4)
      • 공부하기 (71) N
        • Network (3)
        • Cloud (1)
        • Database (5)
        • Java (13)
        • Javascript (0)
        • Spring (9)
        • React (18)
        • Algorithm (8)
        • 자료구조 (7)
        • ETC (7) N
      • 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • velog
  • 공지사항

  • 인기 글

  • 태그

    Express
    Spring
    pdf 자동 다운로드
    알고리즘
    SQL
    java
    HTTP
    JPA
    최단거리
    aws
    SSE
    오블완
    로그인
    Database
    mysql
    springboot
    outbox
    outbox 패턴
    Til
    SQS
    실시간 데이터 전송 기술
    redis
    알림 기능
    서명알고리즘
    pdf 프리뷰 실패
    자료구조
    재시도 로직
    티스토리챌린지
    network
    프로젝트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
다섯자두
SQL 기본 문법 복기 (2)
상단으로

티스토리툴바