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 ENAM..
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 + (INTER..
2024.03.04
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 202210=Generic DB2|com.ibm.db2.jcc.DB2Driver|jdbc\:db2\://localhost/test|11=Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc\:oracle\:thin\:@localhost\:1521\:XE|sa12=Generic MS SQL Server 2000|..
2022.09.28
no image
[DB] Oracle 최대/최소값에 대한 특정 컬럼 데이터 조회
예를 들어, SOME_TABLE 테이블 안에 SEQNO, CNT 컬럼이 있다.SEQNO 컬럼은 기본 키이고, CNT 컬럼은 중복된 값이 올 수 있으며 숫자만 취급한다. 여기서 CNT가 제일 큰 값을 찾으려면 아래와 같이 작성할 수 있을 것이다.SELECT MAX(CNT)FROM SOME_TABLE근데 여기서 CNT가 제일 큰 값의 레코드 중에 다른 컬럼의 데이터를 가져오고 싶은 경우가 있다.그렇다면 아래와 같이 작성할 수도 있을 것이다.SELECT SEQNO, CNTFROM SOME_TABLEWHERE CNT = ( SELECT MAX(CNT) FROM SOME_TABLE ) AND romnum =..
2022.06.08
no image
[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 through so..
2019.08.29
no image
[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/configuration-..
2017.01.15