SQL 고득점 Kit 회고

송재호·3일 전
0

SQL 안 쓴지 좀 되어서 SQL 고득점키트 풀면서 상기시간을 가져보자

다 MySQL 기준이다.

  1. 널체크는 != null이 아니라 IS NULL, IS NOT NULL 써야 한다.
  2. DATE 타입에 대해 YEAR(), MONTH() 등의 함수를 쓸 수 있다.
  3. DATE타입 포매팅은 DATE_FORMAT(DATE, "%Y-%m-%d")와 같이 할 수 있다.
    다른 포맷은 다음을 참고 https://velog.io/@donghoim/MySQL-DATETIME-%EC%9B%90%ED%95%98%EB%8A%94-%EC%9C%A0%ED%98%95%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD-YYMMDD
  4. ORDER BY 여러개 하는 경우는 ,로 구분해줘야 한다.
  5. INNER JOIN INNER JOIN orders B ON A.id = B.id
  6. LEFT JOIN LEFT JOIN orders B ON A.id = B.customer_id;
  7. 반올림 ROUND() - 뒤에 숫자 지정하는 경우 해당 자릿수까지 포함
  8. 내림 FLOOR()
  9. 올림 CEILING()
  10. 소수점 자리 제한 TRUNCATE(12.3456, 2)
  11. LIKE 연산자의 와일드카드 %: 0개 이상과 일치 _: 정확히 1개와 일치. 아닌것 찾고싶으면 NOT LIKE
  12. MySQL은 기본적으로 LIKE에서 대소문자 구분하지 않음. 대소문자 정확히 구분하고 싶으면 BINARY 연산자 사용 필요 WHERE name LIKE BINARY 'kim%';
  13. 대문자변환 UPPER() 소문자변환 LOWER()
  14. NVL == IFNULL(some, replacement) 또는 COALESCE(some, replacement)
  15. 그룹바이는 두 개 이상도 가능. GROUP BY A, B 이후 HAVING count(*) > 1 하면 동일한 A, 동일한 B를 그룹화시키고 카운트를 세서 동일 건이 여러 개인 것을 확인 가능
  16. 갯수제한은 LIMIT 1
  17. 유니온 UNION
  18. IN 연산자를 까먹지 말자 WHERE 'Python' IN (SKILL_1,SKILL_2,SKILL3)
  19. 비트연산자도 사용 가능하다.
  20. DISTINCT를 까먹지 말자.
  21. 특정 월을 조회하고 싶은거라면 WHERE DATE_FORMAT(ORDER_DATE, '%Y-%m') BETWEEN '2020-08' AND '2020-11'
  22. 날짜 차이(일수)는 DATEDIFF(A, B) 으로 구할 수 있다. TIMESTAMPDIFF(단위, A, B) 를 하게 되면 지정한 단위로도 구할 수 있다. 예를 들면 MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
  23. 스트링에서 날짜 변환 함수 STR_TO_DATE('2022-05-01', '%Y-%m-%d')
  24. SUBSTRING, SUBSTR를 까먹지 말자.

다시 볼만한 문제들

profile
식지 않는 감자

0개의 댓글

관련 채용 정보