SQL

SQL 4주차. 서브쿼리와 문자열

두캔두잇 2023. 3. 12. 22:02

Subquery란? 쿼리 안의 쿼리라는 의미 , 더 편하고 간단하게 정리할수 있음

(서브쿼리가 없는것)
select u.user_id, u.name, u.email from users u
inner join orders o on u.user_id = o.user_id
where o.payment_method = 'kakaopay'

(서브쿼리가 있는것)
select u.user_id, u.name, u.email from users u
where u.user_id in (
select user_id from orders
where payment_method = 'kakaopay' 
)

자주 쓰이는 서브쿼리 유형 ex)) where, select, from절 

where에 들어가는 서브쿼리 >>> where 필드명 in (subquery) 이런 방식
select에 들어가는 서브쿼리 >>> select 필드명, 필드명, (subquery) from .. 
from에 들어가는 서브쿼리 ## 제일 많이 쓰임 ##
>>> ex)) select pu.user_id, a.avg_like, pu.point from point_users pu
               inner join (
select user_id, round(avg(likes),1) as avg_like from checkins
group by user_id
                                   ) a on pu.user_id = a.user_id


<문자열>
ex)) 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오고 싶어요!

SUBSTRING_INDEX 문법을쓰면 된다.

<<이메일에서 아이디만 가져와보기 >>

select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
    
 @를 기준으로 텍스트를 쪼개고, 그 중 첫 번째 조각을 가져오라는 뜻!  1or -1

ex))문자열 일부만 출력하기        SUBSTRING 문법 사용

orders 테이블에서 날짜까지 출력하게 해보기

select order_no, created_at, substring(created_at,1,10) as date from orders

SUBSTRING(문자열, 출력을 하고싶은 첫 글자의 위치, 몇개의 글자를 출력하고 싶은지)

'SQL' 카테고리의 다른 글

SQL 3주차. inner join, left join, union all  (0) 2023.03.05
SQL 2주차.  (0) 2023.02.26
SQL 문법 1주차(select , where 문)  (0) 2023.02.19