DB(26)
-
[SQL] MySQL 날짜관련 함수 사용시 주의할 점
MySQL 에서 지원하는 DATE_ADD / DATE_SUB 사용시 INTERVAL 을 선언하여 시간 유형의 조합으로 많이 쓰이는데, 아무 생각 없이 INTERVAL 을 사용할 경우 주의가 필요한 사항이 있어 기록. [문제상황] 2월 같은 윤달의 경우 2월이 28일까지 있으면, 1월은 31일까지 존재하는데, 1월에 한 달을 더 할 경우 문제 발생 문제상황 : '2019-01-30 12:00:00' 와 '2019-01-31 11:00:00'의 경우 시간의 순서 상으로 전자 ('2019-01-30 12:00:00')가 먼저 발생하게 되는데, 두 날짜에 아래와 같이 1달을 더하는 함수를 적용할 경우 출력 값을 확인해보면 동일하게 1달을 더했지만 후자('2019-01-31 11:00:00') 의 출력값이 시간 ..
2023.12.13 -
[SQL] MySQL DATE_ADD(날짜 더하기) & DATE_SUB(날짜 빼기)
DATE_ADD (날짜 더하기), DATE_SUB(날짜 빼기) -- 날짜더하기 DATE_ADD([DATE 타입 대상컬럼] , INTERVAL [시간 유형]) -- 날짜빼기 DATE_SUB([DATE 타입 대상컬럼] , INTERVAL [시간 유형]) 기본 시간유형 - MICROSECOND(마이크로 초/백만분의 1초) - SECOND (초) - MINUTE (분) - HOUR (시) - DAY (일) - WEEK (주) - MONTH (달) - QUARTER (분기) - YEAR (년도) /* 기본 시간유형 사용 예제 */ -- 한 달 더하기 select DATE_ADD(NOW() , INTERVAL 1 MONTH) ; -- 한 달 빼기 DATE_SUB([DATE 타입 대상컬럼] , INTERVAL [시간..
2023.12.13 -
[SQL] SQL WITH RECURSIVE 사용
WITH 구문 WITH 구분 이후에 오는 쿼리에서 임시 테이블의 테이블명을 사용하여 값을 참조할 수 있음 WITH TABLE명 AS ( SELECT - ) WITH RECURSIVE 문 (재귀 쿼리) 프로그래밍에서 재귀 함수가 있듯이, SQL에서 사용하는 재귀쿼리 기법 WITH RECURSIVE 구분은 가상 테이블을 생성하면서 가상 테이블 자신의 값을 참조하여 재귀적으로 호출하는 방식 WITH [RECURSIVE] TABLE명 AS ( SELECT - # RECURSIVE 사용 시 필수. Non-Recursive 문장 :: 첫번째 루프에서만 실행됨 (초기값 세팅) [UNION ALL] SELECT - # Recursive 문장:: 읽어 올 때마다 행의 위치가 기억되어 다음번 읽어 올 때 다음 행으로 이동..
2023.12.12 -
[설치] h2 데이터베이스 설치방법
1. 사이트( https://www.h2database.com ) 접속 2. 원하는 버전 선택하여 다운로드 3. 다운로드된 h2-2019-10-14.zip 파일 압축풀기 4. ~/bin/h2.bat 실행하여 웹사이트실행확인 >h2.bat 만약 실행이 되지 않는다면, 사이트 URL(빨간색 밑줄) 'localhost' 변경 후 실행 확인 '연결' 5. '연결' 후 window 홈 경로 이동후 'test.mv.db' 생성 확인 >cd %userprofile% >dir 6. 최초접속 이후 시점 부터 접속 안될경우 'JDBC URL ' 변경 후 '연결' JDBC URL : jdbc:h2:tcp://localhost/~/test
2023.03.09 -
[SQL] 오라클 컬럼을 데이터로 바꾸는 UNPIVOT
UNPIVOT - UNPIVOT 오라클에서 가로 행의 데이터를 세로로 출력 *좌측의 테이블구조를 우측의 테이블구조로 조회되도록 함. - UNPIVOT 사용방법 'UNPIVOT 대상 테이블' 에서 기존 컬럼(속성)이 UNPIVOT시에는 데이터화되어 가로(로우)로 조회됨. 어떤 컬럼들을 조회할지 'IN' 절에 명시해야함. 'IN' 절에 명시되는 속성들은 모두 동일한 타입이어야함 (UNION ALL과 동일한 원리). 'FOR' 다음에는 'IN'절에서 명시한 컬럼을 조회시 어떤 명으로 조회될지 별칭을 지정. 'FOR' 전에는 'IN'절에서 명시한 컬럼의 실제 데이터가 조회될 때 어떤 명으로 조회될지 별칭을 지정 SELECT * FROM ( [UNPIVOT 대상 테이블] ) UNPIVOT [IN절에 명시할 컬럼의..
2023.02.02 -
[SQL] 오라클 데이터를 컬럼으로 바꾸는 PIVOT
PIVOT - PIVOT 오라클에서 기본적으로 조회되는 세로 행의 데이터를 가로로 뒤집어서 조회되도록 함. *좌측의 테이블구조를 우측의 테이블구조로 조회되도록 함. SELECT 출력할 컬럼 FROM [PIVOT 대상 테이블] PIVOT( [집계함수] FOR [컬럼(가로)으로 출력할 열] IN ([조건 대상 값]) ); --조건 대상값은 컬럼으로 출력할 열 내 존재하는 데이터여야 타깃데이터가 조회됨. (ALIAS 역할이 되기도 함) *예제테이블(오라클 내에 SCOTT 계정 내 기본적으로 제공되는 EMP 테이블 사용)- 예제테이블 기본조회 SELECT DEPTNO , JOB , AVG(SAL) AS SAL FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB; - [목적..
2023.01.31