본문 바로가기
개발일지/SQL

SQL 기초 3 BETWEEN 및 타임스탬프(timestamp) ft. SQLD 자격증 응시 취소

by 다니엘의 개발 이야기 2022. 8. 20.
320x100

오늘 SQLD 자격증 응시를 취소했다.

진짜 교재라고 나온게 너무 불친절해서 SQL는 뭘로 실행하는지, SQL 실습파일은 어디에 있는지, SQL SERVER는 뭘로 다루는지

아무 설명도 없이 갑자기 덜렁 나와서 저 3개로 계속 로테이션하는데 하.. ㅋㅋㅋ

진짜 무의미한 짓을 하고싶지 않았다. 굳이 그걸 찾아내서 하고싶지도 않았고

그나마 나에게 유의미한 SQL자격증의 중요부분은 앞의 100페이지 정도 구조이해 정도니깐 그것만 몇회독 해보기로 하고,

나머지 SQL은 그냥 따로 공부하기로 마음먹었다.


postgreSQL 툴도 사실 마음에 안든다.

슬로우 쿼리때문이다. 이거에 너무 쉽게 걸릴 뿐더러 한번 걸리면 한 쿼리 실행하는데 2분씩 걸린다.

SELECT * FROM 테이블명;

그냥 이 쿼리 문 하나로도 말이다

 

하.. 그나마 좀 가능성이 엿보이는 것은 대시보드 기능때문에 뭔가 유용할 것같아서 그래도 가급적이면 끝까지 배우려고 한다.

여태까지 썼던 관계형 SQL 툴 중에서는 MySQL이 가장 좋았다.

버벅대는거 단한번도 없었고, 에러를 경험해본 적이없다. 아무리 예제연습용이였다지만

지금 내가 경험하는 관계형 SQL툴들이 그럼 예제연습용이지 실습용은 아니지 않은가.

그 와중에도 이만큼의 에러와 문제가 있다면 말 다했지.

 

잡설이 길었다.

본론을 시작해야겠다.

 


#1 BETWEEN 사용 방법

 

SELECT * FROM payment

where amount BETWEEN 8 and 9

limit 3;

 

-해석

payment 테이블에서 모든 자료를 가져올 것이고

amount 라는 이름의 컬럼을 기준으로

8이상 9이하의 컬럼을

3개 케이스 이하로 출력해줘라.

 

 

-코드 응용

SELECT COUNT(*) FROM payment

WHERE amount BETWEEN 8 AND 9;

 

-해석

나머지 내용은 위의 해석과 동일하지만

차이점이 있다면 여기서는 8이상 9이하의

amount 갯수를 출력해줘라. 라는


# 2 BETWEEN 을 활용한 시간 확인 방법

 

아주 중요하다.

‘타임스탬프’라는 개념 때문이다.

 

SELECT * FROM payment

WHERE payment_date BETWEEN ‘2007-02-01’ AND ‘2007-02-15’;

라고 치면 당연히

payment 테이블의 payment_date 컬럼에 들어있던

2007년 2월 1일부터 2007년 2월 15일까지의 자료가 나올것이다.

 

지금부터 말할 ‘타임스탬프’라는 개념이 postgreSQL 에만 해당되는 내용인지는 모르겠다.

만약 postgreSQL에만 해당된다면 사용에 있어서 가급적 안쓰는 쪽으로 고려대상이 되겠지

 

아무튼 2007년 2월 1일부터 2007년 2월 15일까지의 자료가 출력되면

출력되는 동시에 ‘타임스탬프’가 찍힌다.

더 정확히는 output 영역에

timestamp without time zone이라고 찍힌다.

 

그리고 나서 끝의 날자에 해당하는 2007-02-15를 하루라도 당겨서 사용하게 될 경우

하루의 시간 표시기준이 0:00으로 당겨지기 때문에 아무값도 output되지 않는다.

 

타임스탬프 처리하는 방법에 대해서는 추후에 배울 예정이라고 한다.

300x250