일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 티스토리챌린지
- 자바의정석
- CPU
- 프로그래머스
- 혼공얄코
- 입출력
- 붕대 감기 자바
- java
- over()
- 오블완
- spring security 설정
- 붕대 감기
- 쿠키
- 프로그래머스 붕대 감기
- 오버라이딩
- 멀티프로세싱
- break 사용법
- 자바의 정석
- spring security
- 오버로딩
- continue 사용법
- contiune
- hackerrank
- 리눅스
- SQL Mapper
- 멀티태스킹
- 객체지향
- 중첩 break
- 다형성
- 캡슐화
- Today
- Total
목록DB (8)
쉽게 쉽게
▤ 목차1. 이슈MariaDB에서 오라클 DB를 연동하여 데이터를 실시간으로 가져와야 할 필요성이 생겼다.때문에 이기종간의 DB를 연동하기 위해서 MariaDB(MySQL)에서 제공하는 CONNECT Storage Engine을 사용하고자 했다. CONNECT Storage Engine은 XML이나 엑셀 파일, 오라클이나 MSSQL과 같은 DBMS들의 테이블을 MariaDB에서 직접 쿼리 할 수 있도록 연결 기능을 제공해주는 스토리지 엔진이다.https://mariadb.com/kb/en/connect/ CONNECT mariadb.com다만 이 글은 CONNECT Storage Engine 연동 후 사용법과 주의점을 기록하기 위해 글을 작성했다.구현방법은 아래 링크를 참고하시길 바란다.https://c..
▤ 목차1. MariaDB JDBC 버전 확인 및 다운로드이클립스에 MariaDB를 연동하기 위해서는 MariaDB JDBC (MariaDB_Java_Client.jar)가 필요하다.자바 버전에 따른 JDBC 버전이 다르기 때문에 알맞은 JDBC를 다운로드할 필요가 있다.https://mariadb.com/kb/en/mariadb-connector-j-releases/ List of MariaDB Connector/J ReleasesA list of all Connector/J releasesmariadb.com이 링크를 통해 자바버전에 맞는 JDBC를 알 수 있다.버전을 확인 후 아래의 링크를 통해 JDBC를 다운받을 수 있다.https://mvnrepository.com/artifact/org.mar..
▤ 목차1. 윈도우 함수란?윈도우함수(Window Function)란 행과 행 간의 관계를 정의하기 위해 제공되는 함수를 의미한다. 집계함수(AVG, SUM, COUNT) 혹은 윈도우 함수 전용 함수(ROW NUMBER, LEAD, LAG)로 분류된다. 윈도우 함수를 통해 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.1. 윈도우 함수의 구조Window Function(함수_적용_열) OVER (PARTITION BY 그룹열 ORDER BY 순서열)-- Window Function : 순위함수(RANK, DENSE_RANK 등)나 집계함수(SUM, MAX 등)-- PARTION BY : 소그룹으로 분류 -- ORDER BY : 분류된 소그룹 정렬-- 순서열 : 정렬 기준 행 설정2. 윈도우 함수 종..
▤ 목차1. 이슈SELECT문 조회한 결과에 대한 COUNT()들을 같이 출력할 필요성이 생겼다.다만 COUNT 조건이 각기 달라서 이를 해결하기 위해 방안을 찾아봤다. 1. SELECT문 조회 쿼리ACT_TIME 테이블에는 활동시간과 종료시간 정보가, REPORT_CONTENT 테이블에는 보고서 타입이 존재한다.이를 JOIN하여 유저별로 정보를 가져왔을 때, 아래와 같은 조회결과가 나오게 된다.이때, A타입의 보고서 수 , B타입의 보고서 수의 통계를 결과와 함께 추출해야 한다.SELECT RC.CONTENT_TYPE, /* 보고서 타입 (A, B 타입존재) */ AT.ACT_DATE, /* 활동일 */ AT.START_TIME, /* 활동시간 */ AT.END_TIME /* 종료시간 */..
1. 이슈 MariaDB은 기본적으로 대소문자 구분 없이 비교 및 검색이 가능하다.그러나 userid로 로그인 중 대소문자가 구별이 되지 않아 오류가 발생했다.예를 들어 테스트라는 유저의 아이디는 test12인데, Test12와 test12가 모두 동일하게 조회되어 로그인이 되지 않았던 현상이다.때문에 MariaDB에서 직접적으로 대소문자를 구별해주기 위한 작업을 진행했다. 2. 해결방법아래는 문제가 발생했던 쿼리를 재현한 것이다. --문제 쿼리--SELECT userid FROM user_table WHERE userid = 'test12'-- 조회결과 -- Test12, test12 모두 나옴해결방법1: 조건에 BINARY 함수 추가--문제 쿼리--SELECT userid FROM user_tab..
1. 이슈 속도가 너무 오래 걸려 불편을 주는 Mysql 쿼리를 발견하여 이를 개선하고자 했다.속도저하의 원인으로는 Join시 데이터가 많은 테이블의 값을 읽어오는데 오래 걸렸던 것으로 짐작된다. 이를 해결하고자 인덱스, 쿼리개선, DB 격리수준 변경 등 다양한 방법을 진행했다. 2. 쿼리 SELECT A.name , B.code, C.text FROM SmallTable A INNER JOIN MiddleTable B ON A.user_code = B.user_code INNER JOIN LargeTable C ON A.user_code = C.user_code AND C.ROLE = (SELECT ROLE FROM LargeTable WHERE user_code = ..
1. 이슈DB작업을 진행하던 도중 지우면 안되는 테이블을 삭제하고 습관적으로 커밋까지 눌러버렸다.이 테이블을 복구하기 위해 방법을 찾아봤다. 2. 오라클 DB 삭제한 테이블 복구FLASHBACK : 특정한 시간 또는 시점으로 되돌릴 수 있는 기능 1) 휴지통에서 지운 테이블 확인SELECT * FROM RECYCLEBIN; 단 휴지통이 비어있는 경우 복구를 못한다.(PURGE를 한 경우) 2) 휴지통에 있는 테이블 복원FLASHBACK TABLE 테이블명 TO BEFORE DROP;3. 데이터 실수로 지우고 커밋 한 경우 복구 방법1) SYSTIMESTAMP를 이용한 데이터 검색 -- 10초전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTE..
1. 이슈프로젝트 도중 오라클 DB 마이그레이션 중 중복된 데이터가 생성되는 경우가 존재했다.이를 제거하기 위한 쿼리문을 찾아봤다.2. 중복된 데이터를 삭제하는 쿼리문중복된 데이터는 조건 없이 하나만 남기고 삭제DELETE FROM 테이블명 WHERE ROWID IN ( SELECT ROWID FROM ( SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY 중복컬럼명 ORDER BY 중복컬럼명) AS num FROM 테이블명 ) WHERE num > 1 ) ); 이 쿼리문을 해석하면먼저..