no image
[DB] Oracle PIVOT 사용 방법 및 조회 시 성능 주의사항
Oracle의 PIVOT 문법은 Oracle 11g부터 지원하는 기능으로 행을 열로 변환하여 사용할 수 있게 도와준다. SELECT ( 출력컬럼 ) FROM ( PIVOT 대상 쿼리문 ) PIVOT ( 집계함수(집계컬럼) FOR 컬럼 IN (컬럼값 AS 별칭 ... ) FROM절에 대상이 되는 테이블의 모든 컬럼은 GROUP BY의 대상이 된다. PIVOT문에 가로로 출력할 컬럼은 가로로 나열할 때의 GROUP BY의 대상이 된다. 집계함수에 사용되는 컬럼은 집계 대상이므로 GROUP BY 대상에서 제외되고 나머지 컬럼들은 세로로 나열할 때 GROUP BY 대상이 된다. 예를 들면 EMP 테이블에 아래와 같은 데이터가 있다고 하자 아래처럼 질의문을 작성하고 SELECT * FROM ( SELECT ENA..
2024.03.11
no image
[DB] Oracle 날짜 계산 시 INTERVAL 보단 ADD_MONTHS 를 사용하자
회사에서 INTERVAL을 사용하는 쿼리 때문에 장애가 발생해서 남기는 글이다. Oracle에서 날짜를 더하거나 뺄 때 두 가지 방법이 있는데 하나는 INTERVAL을 사용하는 것이고, 다른 하나는 ADD_MONTHS를 사용하는 것이다. INTERVAL은 아래와 같이 사용할 수 있다. SELECT SYSDATE - (INTERVAL '1' YEAR) , SYSDATE + (INTERVAL '1' YEAR) , SYSDATE + (INTERVAL '1' MONTH) , SYSDATE + (INTERVAL '1' DAY) , SYSDATE + (INTERVAL '1' HOUR) , SYSDATE + (INTERVAL '1' MINUTE) , SYSDATE + (INTERVAL '1' SECOND) FROM ..
2024.03.04
[DB] H2 데이터베이스 조회 시 한글 깨짐 수정
application.yml (또는 application.properties) 에 아래와 같은 속성을 추가한다. spring.sql.init.encoding=utf-8 # 또는 spring: sql: init: encoding: utf-8 Spring Boot 2.5 이전 버전까지는 spring.datasource.sql-script-encoding 속성을 사용했으나 현재 버전에 와서는 deprecrated 되었으므로 사용하지 말자
2022.10.01
no image
[DB] H2 데이터베이스 설정 초기화
윈도우 기준 1. 보통 c:\users\사용자이름 으로 이동하면 아래와 같이 3개의 파일이 있다. 이 중에서 .mv.db, .trace.db 확장자로 이루어진 파일은 삭제한다. 2. .h2.server.properties 파일을 메모장으로 열어서 아래와 같은 내용을 넣고 저장한다. #H2 Server Properties #Sat Sep 24 23:32:33 KST 2022 10=Generic DB2|com.ibm.db2.jcc.DB2Driver|jdbc\:db2\://localhost/test| 11=Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc\:oracle\:thin\:@localhost\:1521\:XE|sa 12=Generic MS SQL Server..
2022.09.28
no image
[DB] Oracle 특정 값 max/min 에 대한 column 선택
SELECT -- 제일 큰 값 MAX(seqno) KEEP (DENSE_RANK FIRST ORDER BY cnt DESC) -- 제일 작은 값 MIN(seqno) KEEP (DENSE_RANK LAST ORDER BY cnt DESC) FROM some_table
2022.06.08
[DB] Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Can't connect to local MySQL server through socket '/tmp/mysql.sock' # 또는 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' MySQL 을 처음 사용하거나 연관된 도구 또는 서버들을 이용할 때 의외로 자주 보는 오류이다. 보통 이 오류는 맨 뒤에 나타나는 번호에 따라서 원인이 다르다. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 이건 MySQL 서버가 실행되지 않아서 생긴 문제다. 서비스를 실행시키자. Can't connect to local MySQL server thro..
2019.08.29
[DB] mongoDB 외부 접속 허용하기
설정에서 bindIp 부분을 건드려주면 된다. 1. 우선 설정 파일로 들어간다. $ vi /etc/mongod.conf 2. bindIp 부분을 건드려준다. 기본적으로 아래와 같이 되어 있다. bindIp: 127.0.0.1 이것을 주석 처리해주거나 0.0.0.0을 써준다. #bindIp: 127.0.0.1 또는 bindIp: 0.0.0.0 만약, 여러 개의 IP를 지정하면서 원하는 IP만 접속이 가능하게 하려면 대괄호를 써서 이용해야 한다. bindIp: [127.0.0.1, 123.234.213.123] 아래는 전체 예시 # mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/con..
2017.01.15