04. SQL 활용 기초 - as, view, 날짜와 시간, 조건절

다뉴기·2024년 4월 3일

백엔드 공부 - DB

목록 보기
4/11

기초 지식

AS

조회 결과에서 컬럼명이 다른 이름으로 보이게 한다.
사용 예시:

SELECT
    Name AS "이름",
    Birthday AS "생일"
FROM Person;

view

뷰는 SELECT 문을 미리 만들어서 이름을 붙여둔 것이라 할 수 있다.
사용 예시:

CREATE VIEW BirthdayView
AS
SELECT
    Name,
    Birthday bdate,
    substr(Birthday, 1, 4) YYYY,
    substr(Birthday, 6, 2) MM,
    substr(Birthday, 9, 2) DD
FROM Person;

substr()

문자열의 일부를 반환하는 함수이다.
사용 예시:

SELECT
   substr('abcdefg', 3),      -- 셋째 자리부터 끝까지
   substr('abcdefg', 3, 2);  -- 셋째 자리부터 두 글자

날짜와 시간

sfrtime()

date 값을 포멧에 맞추어 반환하는 함수이다. 아래와 같이 사용할 수 있다.

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now') 현재시간;

단, 위와 같이 실행하면 세계표준시가 반환되기 때문에 현지 시간을 구하고 싶다면 아래와 같이 작성해주어야 한다.

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime') 현지시간;

SQLite에서 제공하는 리터럴값

  • CURRENT_DATE
    • 현재 날짜를 YYYY-MM-DD의 형식으로 반환한다.
  • CURRENT_TIME
    • 현재 시간을 HH:MM:SS의 형식으로 반환한다.
  • CURRENT_TIMESTAMP
    • 현재 날짜와 시간을 YYYY-MM-DD HH:MM:SS의 형태로 반환한다.

조건절

CASE

사용 예시:

CASE
    WHEN 조건 THENWHEN 조건 THEN...
    [ELSE]
END

AS

SELECT test1 as '테스트1' FROM Test;

  • as 키워드를 생략할 수도 있다.

간단한 계산

SELECT를 이용하는 등으로 간단한 계산을 실행할 수도 있다. 연산자는 기본적으로 다른 언어들과 같으나, SQL에서는 같다를 ==이 아닌 =으로 사용한다.


VIEW 생성

CREATE VIEW vw_test1
as
SELECT
	test1 as 테스트1
FROM Test;

위 코드를 실행하면 아래와 같이 vw_test1이라는 이름의 view를 만들었다는 결과가 나온다.

이제 만들어진 view를 확인해보자.

SELECT * FROM vw_test1;

아래와 같이 출력되는 것을 확인할 수 있다. view는 이미 정의된 select와 같이 사용할 수 있다. view는 업데이트가 불가능하며 변경하려면 삭제 후 다시 만드는 방법 뿐이다.

view를 삭제하는 방법은 다음과 같다.

DROP VIEW vw_test1;

조건절 : 월 변경

SELECT
    Name,
    bdate,
    MM,
    CASE
        WHEN MM = '01' THEN 'Jan.'
        WHEN MM = '02' THEN 'Feb.'
        WHEN MM = '03' THEN 'Mar.'
        WHEN MM = '04' THEN 'Apr.'
        WHEN MM = '05' THEN 'May.'
        WHEN MM = '06' THEN 'Jun.'
        WHEN MM = '07' THEN 'Jul.'      
        WHEN MM = '08' THEN 'Aug.'
        WHEN MM = '09' THEN 'Sep.'
        WHEN MM = '10' THEN 'Oct.'
        WHEN MM = '11' THEN 'Nov.'
        WHEN MM = '12' THEN 'Dec.'
    END Month
FROM BirthdayView;

알아두면 좋은 내용

  • SQLite의 주석 오류를 꼭... 조심하자.

0개의 댓글