728x90
반응형

MYSQL 4

[MYSQL] 그룹화된 데이터의 합계 구하기 : WITH ROLLUP 활용 (feat. GROUP BY)

WITH ROLLUP 데이터베이스에서 그룹화된 데이터를 조회할 때, 마지막 행에 합계를 자동으로 구해주는 기능이 있습니다. 이 기능을 몰랐을 땐 반복문으로 데이터를 스택으로 쌓거나, 따로 쿼리로 추출했었지만, 이 기능을 사용하면 매우 쉽게 합계를 구할 수 있습니다. 정의WITH ROLLUP은 GROUP BY와 함께 사용되어 그룹화된 데이터의 합계를 계산합니다. 사용 사례데이터 분석에서 각 그룹의 합계를 구할 때.재무 보고서에서 월별, 연도별 합계를 계산할 때. 작동 원리마지막에 추가된 행에 각 그룹의 합계를 계산.NULL 값으로 그룹화 키를 표시.  예시 SELECT department, SUM(salary) AS total_salaryFROM employeesGROUP BY departmen..

DB/SQL 2024.12.20

[MYSQL] HeidiSQL로 트리거(Trigger) 부착하기

트리거는 테이블의 삽입, 수정, 삭제 등의 작업이 이루어졌을 경우 자동으로 실행되는 기능이다. 트리거에 많이 활용되는 사례는 쇼핑몰의 경우 어떤 상품을 실수로 삭제했다고 가정해보자. 삭제된 데이터는 복구하는 것이 어렵고, 누가 지웠는지 추적하는 것도 쉽지가 않다. 만약 이럴때 트리거를 이용해서 다른 테이블에 기록을 해놓는다면 문제점을 해결할 수 있다. 그러면 고의든 실수든 기록되었던 다른 테이블에서 확인하고 문제를 해결하는데 도움이 될 수 있다. 트리거의 종류는 AFTER, BEFORE 종류가 있다. AFTER트리거는 삽입, 삭제, 수정 작업이 이루어진 후에 작동하는 트리거이고, BEFORE트리거는 AFTER트리거와 반대로 작업이 이루어지기 전에 작동하는 트리거이다. AFTER 트리거 예제 먼저 트리거를..

DB/SQL 2023.06.08

SQL 페이지네이션(Pagination) 최적화

Pagination(페이지네이션)을 구현하면서 최적화가 필요하다고 느낀적이 있나요? Pagination을 구현하면서 DB데이터가 100만개 정도로 되는 페이지를 구현한 적이 있나요?? 데이터가 별로 없어서 필요없다고 느낄 수 있지만, 시간이 지나면서 데이터가 10만개 이상, 특히 상태에 따른 정렬이나 검색에 따르게 된다면 얘기가 다를수 있습니다. 다음은 제가 실제 데이터에서 극단적인 케이스의 쿼리와 결과값을 보여드립니다. 먼저 총 데이터의 갯수가 23만개의 데이터로 예를 드려고 합니다. 극단적이겠지만 먼저 LIMIT 0,10의 결과 값과 210000,10 의 쿼리 수행속도 차이를 보여드립니다. 실제로 구현한다고 가정하더라도 관리자에서 이러한 페이지네이션의 결과값을 보여줄 일은 사실상 없다고 무방할 수 있..

DB/SQL 2023.05.27

[DB] 엑셀(Excel)로 대량 SQL 쿼리 만들기

"카제인나트륨씨 엑셀파일 하나 드릴테니, 데이터 DB에 업데이트해주세요~ " 백엔드 업무를 하면, 서버 이전이나 리뉴얼 개발 등을 할 때 DB 데이터를 일괄 넣어주거나 수정해줘야 할 일이 있다. 쿼리 하나를 작성하면 한번에 모든 행에 맞는 쿼리를 생성할 수 있는 방법에 대해 공유하고자 한다. 먼저 등록일 데이터 옆에 쿼리 하나를 작성해줍니다. 셀에 작성 형식은 "INSERT INTO 테이블 SET 열1='"&데이터1&"', 열2='"&데이터2&"' ; " 형식으로 작성해주면 됩니다. 아래처럼 먼저 쿼리를 작성해줍니다. 그리고 A~C사이에 셀을 하나 클릭하고 컨트롤을 누른채로 방향키 아래로 누르면 마지막으로 데이터가 있는 부분까지 한번에 갈 수 있습니다. (실제 데이터가 10만개 100만개 이렇게 있을수도..

DB/EXCEL 2023.05.22
728x90
반응형