[SQL] SQL 문법

Hyunji·2022년 5월 7일
0

공부

목록 보기
23/35
post-thumbnail

SET 구문

  • 프로시저에 변수나 파라미터에 값을 저장하려면 보통 2가지 방법이 있는데 SET 을 이용하거나 SELECT 를 이용해 값을 넣는 방법이다

SET 을 이용하는 경우는 SET 변수 = 100; 이러한 형식으로 값을 넣지만 SELECT는 조건이 필요하다
SELECT 로 값을 받아오려면 사용자 정의 변수를 사용해야 하는데 3가지 조건이 필요하다

  • 변수 이름은 @로 시작한다
  • Declare는 해주지 않는다
  • = 이 아니라 := 를 사용한다

이 SET을 사용해서 입양 시각 구하기(2) 문제를 풀었는데

SET @hour := -1;

SELECT ( @hour := @hour +1 ) as HOUR,
    (
        select count(*) from ANIMAL_OUTS
        where HOUR(DATETIME) = @hour
    ) as COUNT
from ANIMAL_OUTS
where @hour < 23

코드는 다음과 같다

IFNULL

IFNULL (expression1, expression2)
  • expression1이 NULL이 아니면 expression1을, NULL이면 expression2를 반환한다

IFNULL 을 이용해 NULL 처리하기 문제를 풀었는데

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') as NAME, SEX_UPON_INTAKE from ANIMAL_INS as a
order by ANIMAL_ID

코드는 다음과 같다

DATE 형변환

MySQL에서는 to_char() 이 없기 때문에 date_format() 을 사용해야 한다
주의해야 할 부분은 Data_format 같은 경우 format부분에 대소문자를 구분한다
대문자를 넣었을 때와, 소문자를 넣었을 때가 다르므로 잘 구분해야한다!

변환함수실행예제실행결과
date_format()date_format(sysdate(), '%y-%m-%d')22-05-08
date_format()date_format(sysdate(), '%Y-%m-%d')2022-05-08
date_format()date_format(sysdate(), '%Y-%M-%d')2022-May-08
  • 년도에서 y 를 소문자로 쓴 경우 뒤에 두자리만 표기 가 된다
  • 대문자로 쓴 경우 4자리로 표기 가 된다
  • 월에서 대문자 (M) 를 사용하면 영어로 표기 가 된다

예시:

형식설명
%Y4자리 연도
%y2자리 연도
%m2자리 월(00-12)
%c1자리 월, 10보다 작을 경우(1-12)
%M영어로 표기(January, February ..)
%b영어 약어로 표기(Jan, Feb ...)
%d2자리 일
%e1자리 일, 10보다 작을 경우(0-31)
%D1st, 2nd ..

date_format()을 이용해 DATETIME에서 DATE로 형변환 문제를 풀었는데

SELECT ANIMAL_ID, NAME, date_format(DATETIME, '%Y-%m-%d') as '날짜' FROM ANIMAL_INS as A
order by ANIMAL_ID

코드는 다음과 같다


https://dkkim2318.tistory.com/10

profile
성장중인 개발자

0개의 댓글