[스파르타코딩클럽] 엑셀보다 쉬운 SQL - SQL문법정리

hanna·2022년 3월 20일
0

📙 selet, where 절

select 추출할 필드(*은 모든 필드를 추출함) from 테이블
where 필드값 조건

select * from orders
where course_title = "앱개발 종합반" and payment_method = "kakaopay";

필드나 테이블이 아닌 '문자'는 '작은 따옴표'로 묶기

  • where 절 조건문
    1. 같지 않음 !=
    2. 범위(~에서'''까지) 날짜, 포인트 등 between ~ and '''
    1. 포함 in( )
      - 다중을 포함하는 경우 ex. in(1,3,5,7)
    2. 패턴 like
      ex. where email like '%daum.net' (다음이메일을 사용하는 필드만 추출)
      - '%'는 뭐가 들어가도 상관없는 경우에 사용 / ex. 'a%t' (a로 시작해서 t로 끝나는 것 모두)
  • 추가로 배운 기능
    1. limit
    ex.limit 5 : 값을 5개만 보여줌)

    2. distinct : 추출할 필드 내 값들을 중복제거하고 보여줌
    ex. select distinct (추출할 필드) from 테이블

    3. count
    ex. 카카오페이 필드값의 개수 표시
	select count(*) from table 
    where payment_method = 'kakaopay'

📙 group by

select * from users
group by name

📙 order by

order by count(*) asc (생략가능) - 오름차순 정렬
order by count(*) desc - 내림차순 정렬

📙 join

select * from point_users
inner join users on point_users.user_id = users.user_id

📙 union

(
......
)
union all
(
...
)

📘 subquery

쿼리문 안에 들어가는 쿼리문, 실행순서는 가장 안쪽에 있는 쿼리문 부터

  • where 필드명 in (subquery)
  • select 필드명, 필드명, (subquery) from 테이블
  • from (subquery)

📙 with

최상단에 사용해야함. 전체 블록해서 실행해야 값을 확인할 수 있음.

with table1 as (subquery1), table2 as (subquery2)
select * from table1 a

table1이라는 이름의 임시 테이블(서브쿼리1의 내용을 가진)을 생성+
table2이라는 이름의 임시 테이블(서브쿼리2의 내용을 가진)을 생성

📘 문자열 쪼개기

  • substring_index : 기준값으로 문자열쪼개기
    substring_index(쪼갤 문자열이 있는 필드이름, '쪼갤기준',1 or -1)
    1: 기준앞, -1: 기준뒤
    ex. email의 도메인 추출 ->substring_index(email,'@',-1)
  • substring : 추출하고 싶은 시작문자부터 끝문자까지 설정
    substring(추출하고 싶은 문자열이 있는 필드이름, 시작글자자리수, 시작글자로부터 마지막글자 자리)
    ex. 2016-10-08 11:00:00 의 날짜만 추출 -> substring(date,1,10)

📙 case

엑셀의 ifs함수와 비슷함.

select pu.point_user_id, pu.point,
case 
when pu.point > 10000 then '잘 하고 있어요!'
else '조금 더 달려주세요!'
END as '구분'
from point_users pu;

0개의 댓글

관련 채용 정보