16 Tue
Last updated
Was this helpful?
Last updated
Was this helpful?
시간 관련 함수
SET 문법
위 코드는 각 시간별(00~23) 데이터를 출력하는 코드이다. 위와 같이 SET 용법을 쓴 이유는 다음과 같다.
비어있는 데이터에 대한 출력을 할 수 없다.
실제 데이터가 8-13시 까지만 존재한다면 0-7시와 14-23시 데이터는 출력할 수 없다.
이는 IFNULL 이나 CASE WHEN으로도 표현할 수 없다. (데이터가 NULL인 것이 아니라 데이터 자체가 존재하지 않기 때문)
SET을 쓰지 않으면 다음 코드처럼 푸는 것이 최선이다. (Reccurssive 등의 문법 제외)
이외에도 SELECT UNION ALL 을 굉장히 많이 반복하는 어마어마한 코드도 제외했다.
RLIKE
REGEXP
정규 표현식을 의미
^
: 이후 문자열로 시작
[]
: 다음 문자열 중 하나 이상 포함
.*
: 와일드카드와 동일한 의미. 어떤 문자가 와도 가능. *
는 0번 이상이라는 의미. +
는 1번 이상이라는 의미.
에디터에 따라 구조가 다르지만 기본적으로 다음과 같은 구조를 가진다.
에디터에서 제공하므로 외울 필요는 없다.
2 : DETERMINISTIC
을 설정할 경우 입력한 인자가 동일하면 결과를 항상 동일하게 반환하라는 의미. 이것을 설정하지 않으면 NOT DETERMINISTIC
이 기본으로 설정된다
TODAY()나 RAND() 같은 함수. 즉 입력이 같지만 출력이 달라지는 함수들에 대해서는 이 옵션 설정에 유의해야 한다.
3, 7 : BEGIN
과 END
로 선언 및 종료한다.
이 때 내부는 항상 세미콜론을 끝에 붙여야 한다.
4, 5 : DECLARE
와 SET
을 통해서 변수를 선언한다.
DECLARE
는 변수의 이름과 타입을 선언한다.
SET
은 변수의 값을 정의한다.
SET
은 주로 다음과 같이 사용된다.
6 : 반환
사용 방법
SELECT 'function name' (parameter)