목록DB/Oracle (3)
elevne's Study Note
MERGE 문을 사용하여, 단 하나의 쿼리문만으로 INSERT, UPDATE, DELETE 작업을 모두 수행할 수 있다. 예로, 테이블에 데이터가 이미 존재한다면 업데이트 쿼리를 실행하고, 없을 경우에는 값을 넣어주는 작업을 하나의 MERGE 문으로 실행할 수 있다. 형식은 아래와 같다. MERGE INTO TABLE/VIEW USING TABLE/VIEW/DUAL ON CONDITION WHEN MATCHED THEN UPDATE SET ~~ WHEN NOT MATCHED THEN INSERT (~~) VALUES (~~) 우선 가장 첫 번째 줄에 MERGE 문을 실행할 테이블/뷰를 지정한다. 그 다음, USING 뒤에는 비교할 대상 테이블/뷰 혹은 MERGE 문을 실행할 테이블과 비교할 테이블이 같다..
이전 시간에 Logstash 에 저장할 데이터를 불러오기 위해 statement 를 작성하며, Oracle 함수 몇몇 개에 대해 알아보게 되었다. 우선 ORACLE 에서 중복데이터를 찾기 위해 GROUP BY 를 사용하였다. 중복되는 데이터 조회를 할 컬럼을 GROUP BY 로 그루핑하고, HAVING 조건문에 COUNT 값이 1 보다 큰 것들만 확인하면 된다. 아래와 같은 쿼리를 작성한다. SELECT COL1, COUNT(*) FROM TEST_TABLE GROUP BY COL1 HAVING COUNT(*) > 1 ORACLE 에는 행 마다 각각의 번호를 부여할 수 있는 방법이 여러가지 있다. ROW_NUMBER: 번호의 중복없이 번호를 매김 RANK: 번호의 중복이 있음. (단 중복된 수만큼 그 다..
자주 사용하는 Oracle 문법 중 가끔 헷갈리는 것들을 기록해두려고 함. Table에서 특정 Column 선택해서 보기 SELECT COL1, COL2 FROM TABLE1; (전체보기는 SELECT * FROM TABLE1;) 선택 열 기준 중복값 제외한 데이터 조회 SELECT DISTINCT COL1 FROM TABLE1; 언더바( _ ) Wildcard SELECT * FROM TABLE1 WHERE COL1 LIKE ‘a_b_c’; (‘_’에는 무슨 값이든 가능) Charlist Wildcard (charlist안에 들어있는 a~e 알파벳으로 시작하는 데이터를 조회하는 쿼리) SELECT * FROM TABLE1 WHERE COL1 LIKE ‘[a-e]%'; Join (각 Table의 COL1..