[SQL] MYSQL 정리

이말감·2022년 2월 4일
0

SQL

목록 보기
14/14

기본 문법

SELECT [DISTINCT] 출력할 컬럼명, 그룹함수
FROM 검색할 테이블명
[WHERE 조건]
[GROUP BY 그룹으로 묶을 컬럼명]
[HAVING 그룹 조건]
[ORDER BY 정렬 기준 컬럼명 {ASC/DESC}]

FROM 프로그래머스 문제 풀이

상위 N개 출력하기

LIMIT N

  • 2번째에서 6번째까지 정보를 조회하고 싶을 땐 'LIMIT 2,6'

중복 제거

SELECT DISTINCT 출력할 컬럼명

개수 구하기

COUNT()

그룹으로 묶기

GROUP BY 그룹으로 묶을 컬럼 명
HAVING 그 그룹의 조건

GROUP BY와 HAVING은 같이 다닌다. HAVING만 쓸 수 없다.

DATETIME

날짜 데이터의 일부만 추출하기

HOUR(DATETIME)

  • YEAR : 연도
  • MONTH : 월
  • DAY : 일
  • HOUR : 시
  • MINUTE : 분
  • SECOND : 초

변수 사용

변수 사용 기본 문법

SET @변수명 = 변수값; SET @변수이름 := 변수값
-- 변수 선언, 값 대입
SELECT @변수이름; SELECT @변수이름 := 대입값
-- 변수 출력
  • SET 이외의 명령문에서는 =가 비교연산자로 취급되기 때문에 SELECT로 변수를 선언하고 값을 대입할 때는 :=를 사용한다.
-- 변수를 먼저 선언한다.
SET @hour = -1;

SELECT (@hour := @hour + 1) AS HOUR, 
-- @hour := @hour + 1 을 통해서 0부터 계속 생성된다.
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT
-- 위에서 생성된 @hour를 통해 HOUR(DATETIME) = @hour인 값을 센다.
FROM ANIMAL_OUTS
WHERE @hour < 23;
-- @hour의 범위를 설정해주는 것

NULL

NULL 여부

  • IS NULL : 널일 때
  • IS NOT NULL : 널이 아닐 때

IFNULL

  • IFNULL은 MSSQL의 ISNULL과 동일하다.

    IFNULL(값1, 값2)

  • 값1이 NULL이면 값2를 출력해라.

JOIN

INNER JOIN

  • 교집합
  • 보통 사용하는 JOIN이 INNER JOIN이다.

OUTER JOIN

LEFT OUTER JOIN

  • A - B 한 차집합
  • A에는 있는데 B에는 없을 때

RIGHT OUTER JOIN

  • B - A 한 차집합
  • B에는 있는데 A에는 없을 때

LIKE

  • 패턴 일치를 검사할 때 사용
  • % : 개수 상관 없이 사용
    -> NAME LIKE '%A%' : AAA, NAN, NAME, HAHAHAHA
  • _ : 한 개당 한 문자
    -> NAME LIKE '_A' : NA, HA, GA

CASE

  • WHEN-THEN은 항상 같이 사용되어야 한다.
  • WHEN-THEN은 여러 개 사용 가능
  • ELSE가 존재할 때, WHEN-THEN 조건이 참이 아닌 경우 ELSE의 결과값을 반환
  • ELSE가 없고, 조건이 TRUE가 아니면 NULL 반환
CASE
	WHEN 조건1 THEN 결과값1
    WHEN 조건2 THEN 결과값2
    WHEN 조건3 THEN 결과값3
    ELSE 결과값
END

TIMESTAMPDIFF

  • 시간 또는 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
-- UNIT : 반환값 형식
-- 시작일, 종료일
  • 반환값은 MONTH, YEAR, HOUR 외에도 MINUTE, SECOND ... 등 여러 가지 반환값을 지정할 수 있다.
profile
전 척척학사지만 말하는 감자에요

0개의 댓글