[MySQL] 코딩테스트용 문법 요약정리

SQL

목록 보기
6/8
post-thumbnail

작성 순서

select
from (tb1 join tb2 on 조인조건)
where
group by
having
order by 컬1, 컬2 (asc, desc)
limit 출력개수

실행 순서

FROM : 조회 테이블 확인
ON : 조인 조건 확인
JOIN : 테이블 조인(병합)
WHERE : 데이터 추출 조건 확인
GROUP BY : 특정 컬럼 그룹화
HAVING : 그룹화 시킨 후 각 그룹에 적용될 조건
SELECT : 데이터 추출
DISTINCT : 중복 제거
ORDER BY : 데이터 순서 정렬
LIMIT

문법

select 문

  1. Date_fromat(col, '%Y-%m-%d') -> 2023-11-03 출력
    DATE_FORMAT(col, '%p %h;%i:%s') -> pm 05:22:21 출력
  2. 반올림 ROUND(반올림할 수, 자리수) 디폴트 0 -> 1의 자리수까지 표현
  3. 버림 TRUNCATE(대상이 되는 수, 버릴 자리 수) 반드시 버릴 자리 수를 기재해야 함.
    ex) truncate(1.59 , 1) -> 1.5
  4. DISTINCT 컬럼 -> 중복제거
  5. 조회할 컬럼에 null 넣으면 전부 null로 들어감

조건 :

  1. IFNULL(컬럼명, 대체값)
  2. NVL(컬럼명, 대체값)
    -> 컬럼의 값이 null 이면 대체값, null 아니면 컬럼값
  3. IF(조건, '참일때 값', '거짓일 때 값') -> if문도 컬럼 취급함.
    ex) select name, grade, if(grade=1, '신입생', '재학생') from student

from 문

join 을 기재, on 조인 조건
섭쿼리(뷰) 가능

where 문

정리
1. LIKE '%찾을문자%' -> 찾을 문자 기준 앞뒤에 오는 문자열 길이 상관없음
LIKE '_찾을문자' -> 찾을 문자 앞에 딱 한 글자만 위치하는 데이터 찾음

  1. NOT LIKE '%해당문자' -> 문자가 포함되지 않은 데이터 조회

  2. WHERE 컬럼 IN (이 중에 있는지)

  3. 날짜 선택
    1) member 테이블에 가입날짜 join 이 2023년 1월 1일 이후인 데이터 출력

    SELECT * FROM member WHERE join > '2023-01-01'

    2) member 테이블에 가입날짜 join이 2023인 데이터 출력

    SELECT * FROM member WHERE join BETWEEN '2023-01-01' AND '2023-12-31'
  4. 연결 AND , OR

서브쿼리

섭쿼리 참고
-select, from, where, having, order by, insert 문 values, update문 set

  • 섭쿼리에서 order by 못 씀.

JOIN

이 블로그 참고하기

1. 교집합 -> 이너조인, 그냥 join on 써도 됨
2. 한쪽 집합 -> left join or right join
3. 한쪽 차집합

SELECT * 
FROM table1 A LEFT JOIN table2 B
ON A.ID_SEQ = B.ID_SEQ 
WHERE B.ID_SEQ IS NULL
  1. 합집합
    -> ( left join 한 테이블 ) union (right join 한 테이블)
    알아서 중복제거 해줌.
    다 보고 싶으면 Union all

SET

이건 변수처럼 선언하는 것 같은데 신기해서 넣어봄.
https://school.programmers.co.kr/questions/57353 참고

profile
두둥탁 뉴비등장

0개의 댓글