개발은 재밌어야 한다
article thumbnail
[Oracle] 오라클 조인하는 방법 정리
RDBMS 2023. 3. 27. 23:59

오라클에서 사용되는 조인들에 대해 알아보자 우선 예제 테이블 데이터를 준비합니다. CREATE TABLE DEPT (DEPTNO number(10), DNAME VARCHAR2(14), LOC VARCHAR2(13) ); INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS'); INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO'); INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON'); CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10..

article thumbnail
[Oracle] 오라클 소수점 반올림(ROUND), 절사(TRUNC)
RDBMS 2023. 2. 15. 22:12

오라클 소수점을 반올림하거나 절사(버림)하는 함수를 적어볼까한다. | ROUND 오라클에서 소수점 자리수를 반올림하기 위해서는 ROUND를 사용한다. ROUND(처리하는 값, 자리수)로 사용할 수 있다. 자리수가 양수이면 해당 자리수만큼 반올림하고 음수이면 해당 자리수만큼 반올림한다. 예시) 1) 소수점 반올림 SELECT ROUND(182.658947) AS VALUE FROM DUAL 해당 경우에는 자리수를 지정하지 않았기 때문에 소수점뒤로 반올림을 하여서 183이 된다. 2) 소수점 첫째짜리까지 반올림 SELECT ROUND(182.658947, 1) AS VALUE FROM DUAL 해당 경우에는 소수점 첫째자리까지 반올림해서 보여주기 때문에 소수점 둘째자리에서 반올림해서 보여준다. 3) 소수점 ..

article thumbnail
[Oracle] 오라클 데이터 복구
RDBMS 2023. 1. 30. 23:33

데이터를 실수로 삭제를 해버렸다... 오라클에서는 데이터를 삭제 또는 수정후 COMMIT했을때 Oralce의 Flashback을 통해 TIMESTAMP를 사용해서 이전의 데이터를 조회해서 복구할 수 있는 기능이 있다(해당 기능은 오라클 9i 버전 이상부터 지원) 주의할점은 Flashback은 Undo Data를 사용하기 때문에 undo_retention 파라미터값에 의해 보존되는 시간이 정해져있습니다. (기본값 900초) undo_retetion 조회 쿼리 select * from v$parameter where name = 'undo_retention'; 사용방법 SELECT * FROM [TABLE 명] AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) -- ..

article thumbnail
[Oracle] MERGE INTO -> 데이터가 있는지 확인(SELECT) 하고 데이터를 삽입하거나 업데이트(INSERT, UPDATE)하자
RDBMS 2022. 9. 17. 01:37

보통 데이터를 처리할때 데이터의 존재 여부를 확인(SELECT)하고 해당 값이 없으면 삽입(INSERT)하고 있으면 업데이트(UPDATE)를 하게 된다. 이렇게 되면 데이터를 확인하는 쿼리, 데이터를 삽입 하는 쿼리, 데이터를 업데이트 하는 쿼리 3개의 쿼리를 작성해줘야합니다. 오라클에서는 이러한 처리를 한번에 가능 할 수 있습니다 ! 바로 MERGE INTO 를 사용하는 것입니다 오라클 9i 버전부터 MEGER 문을 사용할 수 있으며, DELETE를 사용하는 MERGE 문은 10g 버전부터 사용할 수 있다. 사용 문법 MERGE INTO [TABLE / VIEW] -- update 또는 insert할 테이블 혹은 뷰 USING [TABLE / VIEW / DUAL] -- 비교할 대상 테이블 혹은 뷰 (..

article thumbnail
MySQL에서 특정 문자로 문자열 SPLIT 하기 - SUBSTRING_INDEX
RDBMS 2022. 4. 19. 12:08

MYSQL에서는 특정 문자를 기준으로 SPLIT해서 해당 값을 여러 열로 나누어야 할 일이 발생했을때 사용하는 방법을 작성해보겠습니다. 위와같이 THRESHOLD라는 컬럼이 파이프라인( | )으로 이루어져 있다고 했을때 해당 " | "를 기준으로 컬럼을 나누고 싶다고 가정했을때 SUBSTRING_INDEX(문자열, 구분자, 구분자의 index) SUBSTRING_INDEX함수를 통해서 해당 값을 나눌 수 있습니다. 문자열을 시작 or 끝부터 index번째 구분자까지 자르는 것입니다. index가 양수일 경우 문자열의 첫부분부터, index가 음수일 경우 문자열의 뒷부분부터 자르게됩니다. THRESHOLD의 문자열 값을 구분자 " | "에 따라 나누어 출력한다고 했을때 THRESHOLD 값 예) 1000|..

article thumbnail
[MySQL] 컬럼 추가, 컬럼 삭제, 컬럼명 변경, 컬럼 타입 변경
RDBMS 2022. 3. 3. 10:34

자꾸 찾아보게 되어서 이번기회에 정리해서 포스팅 해보려고 합니다. 컬럼 추가1. 테이블에 컬럼 맨뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [컬럼명] [자료형]EX)ALTER TABLE board ADD COLUMN board_type varchar(100) NOT NULL; 2. 테이블에 컬럼 맨앞에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] [자료형] FIRST EX)ALTER TABLE employee ADD COLUMN working_day varchar(200) NOT NULL FIRST 3. 테이블에 지정 컬럼 뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] 자료형 AFTER [앞컬럼명]EX)ALTER TABLE empl..

article thumbnail
슬로우 쿼리(Slow Query) 조회 쿼리(Oracle, MS-SQL, Mysql, postgreSQL)
RDBMS 2022. 1. 18. 12:10

슬로우쿼리 Slow Query(슬로우쿼리) Slow Query(슬로우쿼리)는 지정한 시간보도 실행하는데 오래걸리는 쿼리에 대한 log를 것입니다 특정 작업이 오래 걸린다면 로그를 통해 원인을 파악할 수 있겠습니다. 또한 대량이 데이터를 조회하거나 잘못된 인덱스 사용으로 인한 장시간 MySQL 프로세스가 물리는 현상이 발생 할 경우 어떤 쿼리문에 이런 현상을 발생 하였느냐에 대해서 분석시 Slow Query를 사용하면 부하가 증가되는 쿼리를 찾을 수 있을꺼라고 생각됩니다. 출처 : https://itstudyblog.tistory.com/384 slow query 란 ? DBMS 가 client로부터 요청받은 query를 수행할때 일정시간 이상 수행되지 못한 query 즉 길어야 1~2초 걸리는 db 쿼리..

article thumbnail
[오라클 ORACLE] ASH란?
RDBMS 2022. 1. 11. 16:18

ASH(Active Session History) Ratio(비율) 기반 분석방법론과 대기이벤트 기반 분석방법론의 한계점은 문제가 있다고 진단했을때 그 원인을 찾아 실제 문제를 해결하는 데까지 많은 시간이 걸리는 데 있다고 합니다. V$SESSION을 이용하여 실시간 세션에 대한 모니터링을 하고 있는데 이는 해당 시점에서의 걸리는 쿼리만을 볼 수 있다는 점입니다. 이를 끊임없이 EXCUTE(실행) 시키며 모니터링에는 한계가 있음 그래서 오라클 10g에서 부터 생겨난 기능이 ASH(Active Session History)기능입니다. ASH에서는 뷰의 명세를 보고 많은 정보를 찾을 수 있는 session의 활동 정보, SQL 수행빈도등을 통하여 문제점을 접근 할 수 있습니다. ================..