관리 메뉴

JumpUp

[SQL] MySQL 기출 문법 본문

알고리즘

[SQL] MySQL 기출 문법

yeunnnn 2021. 8. 11. 13:58

(계속해서 추가해 나가겠습니다.)

 

Select절


▶ DATETIME

1. DATETIME TO DATE -> date_format(컬럼명, '형식')이용

SELECT date_format(컬럼명, '%Y-%m-%d') FROM~~ 

2. DATETIME의 hour/minute/second값 -> HOUR(datetime type의칼럼명)/ MINUTE(datetime type의 칼럼명)/ SECOND(datetime type의 칼럼명)

3. 날짜차이 -> DATEDIFF(날짜1, 날짜2)
                  -> TIMESTAMPDIFF(단위, 날짜1, 날짜2) *단위는 second, minute, hour, day, week, month, year 등

 

 NULL

1. NULL 처리하기 -> IFNULL(칼럼명, 처리할 값)이용

ex) 칼럼명이 null인 경우 'No name' 속성값으로 처리해준다.

SELECT IFNULL(칼럼명, 'No name') FROM ~

 

 중복제거

1. 중복제거 -> DISTINCT 이용

ex) 중복을 제거하여 컬럼 개수를 count

SELECT count(distinct 컬럼명) FROM ~

 

 반올림과 버림

1. 반올림 -> Round(컬럼, 반올림할 자릿수)
                 반올림할 자릿수 +1 자릿수에서 반올림

SELECT ROUND(3456.1234567) FROM DUAL

// 3456

SELECT ROUND(3456.1234567 ,4) FROM DUAL

// 3456.1235

SELECT ROUND(3456.1234567 ,-1) FROM DUAL

// 3460

2. 버림 -> Truncate(컬럼, 버릴 자릿수)

SELECT TRUNCATE(3456.1234567 ,1) FROM DUAL;

// 3456.1

 

 

 


 

Where절


 레코드 제한

1. 상위 N개 레코드 -> LIMIT을 이용

SELECT ~ FROM ~ LIMIT N;

 

 like 복잡한 패턴 매칭 -> regexp [정규표현식] 사용

ex) harker rank [weather observaton station 6] 문제

hacker rank weather observation station 6 문제

select distinct(city) from station where city regexp '^[aeiou]';

 

ex) haker rank [weather observation station 8] 문제

hacker rank weather observation station 8 문제

//방법1. 정규표현식 사용 regexp
select distinct(city) from station where city regexp '^[aeiou]' and city regexp '[aeiou]$';

//방법2. 문자열 부분 가져오기 left, right
select distinct city from station where left(city,1) in ('a','e','i','o','u') 
and right(city, 1) in ('a','e','i','o','u');

 


 

변수 및 조건문


 조건문

1 CASE WHEN 조건 THEN 참일경우 ELSE 거짓일경우 END

ex) 프로그래머스 [중성화여부 파악하기] 문제

SELECT ANIMAL_ID, NAME, 
CASE WHEN SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%" THEN "O" ELSE 'X' END AS "중성화"
FROM ANIMAL_INS ORDER BY ANIMAL_ID;

 

변수 사용

SET @변수명 = 초기값; //변수 선언

@변수명 := @변수명 + 1; //변수 사용 예, SET외에 쿼리문에서 변수에 값을 '대입'하고 싶을 때는 ':=' 을 써준다.

ex) 프로그래머스 [입양 시각 구하기(2)] 문제

SET @HOUR_LIST = -1;
SELECT (@HOUR_LIST := @HOUR_LIST + 1) AS 'HOUR',
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR_LIST) AS 'COUNT'
FROM ANIMAL_OUTS WHERE @HOUR_LIST<23;

 

728x90

'알고리즘' 카테고리의 다른 글

백준 [N15650 - N과 M(2)]  (0) 2021.08.13
백준 [N15649 - N과 M(1)]  (0) 2021.08.12
프로그래머스 [더 맵게]  (0) 2021.07.27
[자료구조] HEAP(힙)  (0) 2021.07.23
프로그래머스 [다리를 지나는 트럭]  (0) 2021.07.15