고양이와 코딩

[웹 풀사이클 데브코스 TIL] - 8주차 Day 3 - SQL 함수의 활용, 데이터베이스 페이징 본문

데브코스 TIL

[웹 풀사이클 데브코스 TIL] - 8주차 Day 3 - SQL 함수의 활용, 데이터베이스 페이징

ovovvvvv 2024. 1. 4. 19:26
728x90

DATE_ADD 함수 활용 : 시간 더하기

DATE_ADD 함수는 지정된 날짜 또는 시간에 특정 시간 간격을 더하는 데 사용되는데요,

예를 들어 현재 날짜와 시간에서 3일을 더하려면 다음과 같이 사용할 수 있습니다!

SELECT DATE_ADD(NOW(), INTERVAL 3 DAY) AS added_time;

: 현재 날짜와 시간에 3일을 더한 값을 반환

SELECT DATE_ADD("2024-01-04", INTERVAL 1 MONTH);

: 지정 날짜에서 한 달을 더한 값을 반환

DATE_SUB 함수 활용 : 시간 빼기

DATE_SUB 함수는 지정된 날짜 또는 시간에서 특정 시간 간격을 뺄 때 사용됩니다!

예를 들어 현재 날짜와 시간에서 일주일을 뺀 값을 구하려면 다음과 같이 상요할 수 있습니다

SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK) AS subtracted_time;

: 현재 날짜와 시간에서 일주일을 뺀 값을 반환

 

SELECT * FROM books WHERE pub_date BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW();

: 현재 날짜를 기준으로 한달 이내에 들어온 책(신간) 찾기

 

 

데이터베이스 페이징을 해보자 (Pagination)

현재 구현하고 있는 book shop 프로젝트에서, 도서가 100권,, 500권.... 오천만권.. 이렇게 많아진다면 전체 도서 조회를 할 때

너무 많은 데이터가 한번에 보여지겠죠 ? (렌더링 느리고,, 프론트엔드 대환장 하고.. Ꙩ_Ꙩ)

그래서 내가 지정 한 만큼만 데이터를 보여주는것이, 페이지네이션 입니다 !

== 쿼리 실행 결과를 일정한 페이지 단위로 제공하는 프로세스다 

 

이렇게 페이지네이션을 수행하면, 사용자 경험을 향상시키고 성능을 최적화 하는데 큰 도움이 됩니다!

 

페이징을 구현하는 데는 주로 "LIMIT" || "OFFSET" 절을 사용합니다.

"LIMIT"가져올 레코드의 최대 수를 정하고, "OFFSET"시작 위치를 나타냅니다 !

SELECT * FROM books LIMIT 3 OFFSET 0;

id값이 이런 이유는,, 제가 AI를 믿고.. 아이디를 지정하지 않았더니 이렇게 되었네요 (왜 이러는지는 모름 ㅎㅎ)

 

SELECT * FROM books LIMIT 8, 4;

이렇게도 쓸 수 있는데요, 이건 8번째부터 4개씩 보여달라는 의미입니다!