본문 바로가기

db19

[MySQL] ORACLE과 기본 문법 차이 계속 Oracle을 사용해 왔지만 새로운 프로젝트는 MySQL을 사용한다고한다. 기본문법에서 차이나는 부분을 정리해두려고 한다. * 공백치환 함수 ORACLE: SELECT NVL('컬럼명', '') FROM DUAL; MySQL : SELECT IFNULL('컬럼명', '') FROM DUAL; * 현재 날짜, 시간 ORACLE: SYSDATE MySQL : NOW() * 날짜 포맷 ORACLE: TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') MySQL : DATE_FORMAT(NOW(),'%Y%m%d%H%i%s') //년도에서 %Y는 4자리년도 (2021), %y는 2자리 년도 (21) * 요일 ORACLE: 1(일)~7(토) MySQL : 0(일)~6(토) * 문자열 합치기 ORA.. 2022. 2. 3.
[ORACLE] WITH 절 오라클 WITH 절은 오라클 9 이후 버전 부터 사용 가능하며 이름을 정의한 서브쿼리라 생각하면 된다. 테이블을 임시로 만드는 VIEW와 쓰임이 비슷하지만 VIEW는 DROP해야 사라지지만 WITH절은 쿼리 안에서만 실행됨. * WITH절 장점 WITH절은 공유메모리에 임시 테이블을 생성하여 재사용이 가능하도록 함. 서브쿼리는 서로 참조할 수 없지만, WITH절은 참조 가능. 이름을 부여하여 재사용할 수 있게 함으로 전체적인 가독성 및 쿼리 성능 향상에 도움이 됨. - 기본 사용 법 WITH EXAMPLE AS ( SELECT 'PARK' AS NAME FROM DUAL ) SELECT * FROM EXAMPLE; - WITH절 참조 WITH PEOPLE AS -- 첫번째 WITH ( SELECT 'PA.. 2022. 2. 3.
[SQL] FUNCTION 수행과 SQL 성능문제 SELECT시 기존 사용자 함수를 만들어둔 것 때문에 속도가 나지 않아, 스칼라 서브쿼리로 처리했다. 그래도 속도가 잘 안나오길래 찾아보다가 구루비에서 좋은 글을(http://wiki.gurubee.net/pages/viewpage.action?pageId=27427586) 발견해서 정리해둔다. 1. FUNCTION은 최종 추출 결과만큼만 수행하자 [Function 사용 위치 변경전 ] select * from ( SELECT t1.c1, t1.c2,t2.c3,FN_C2_CODENM(t2.c4) c4 FROM FUNCTION_TABLE t1, C1_CODE_NM t2 WHERE t1.c2 = 0 AND t1.c3 = 'A' AND t1.c1 = t2.C1 AND t2.c4 IN (2, 4) order b.. 2022. 1. 24.
[ORACLE] EXPLAIN PLAN 실행 계획 EXPLAIN PLAN이란, SQL문이 어떻게 실행되고 작동하는지를 점검하기 위해 사용하고 SQL문의 액세스 경로를 확인, 튜닝할 수 있도록 SQL문을 분석, 해석해 실행계획을 수립한 후 PLAN_TABLE에 저장하는 명령어이다. 내용분석을 통해 SQL의 비효율적인 부분을 확인하고 튜닝포인트도 도출해낼 수 있다. - 사용방법 EXPLAIN PLAN [SET STATEMENT_ID = 'STATEMENT_ID'] FOR [SQL STATEMENT] SET STATEMENT_ID = 'STATEMENT_ID' : 1~30자 이내의 실행문 이름 SQL STATEMENT : 실행계획 할 SQL문 - TEST 1. 실행계획 저장 EXPLAIN PLAN FOR SELECT * FROM SAMPLE; 2. 실행계획 .. 2022. 1. 24.
[SQL] SELECT 쿼리 실행 순서 SQL SELECT 문의 순서를 알고나면 쿼리를 효율적으로 짜는데 도움이 된다. SELECT 문의 작성 순서와 실행순서를 정리해보자. - SELECT 작성 순서 SELECT FROM WHERE GROUP BY HAVING ORDER BY - SELECT 실행 순서 FROM : 테이블 확인 ON : 조인 조건 확인 JOIN : 테이블 조인 WHERE : 데이터 필터링 조건 확인 GROUP BY : 데이터 그룹화 HAVING : 그룹화 이후 데이터 조건 확인 SELECT : 데이터 추출 DISTINCT : 중복 제거 ORDER BY : 정렬 정리하자면, 데이터가 있는 곳을 찾아 (FROM) → 조건에 맞는 값을 찾고 (WHERE) → 원하는 데이터로 그룹짓고 (GROUP BY) → 그룹화한 데이터에서 조건에.. 2022. 1. 24.
반응형