본문 바로가기

프로그래밍/오라클

(23)
[ORACLE] 서브쿼리 Subquery 활용_ 오라클 서브쿼리 [ORACLE] 서브쿼리 Subquery 활용_ 오라클 서브쿼리오라클 서브쿼리 활용 |다양한 서브쿼리 활용하여 문제를 풀어보려고 합니다. 이전 글에서 서브쿼리가 무엇이고 어떤 종류가 있는지 살펴봤습니다. 그럼 좀 더 실제적으로 이 서브쿼리가 어떻게 사용되는지를 알아보려고 합니다. 한 가지 문제이지만 다양한 서브쿼리를 통해서 여러가지 쿼리문을 작성해보면서 어떤 차이가 있는지 또 결과는 어떠한지 보겠습니다. 문제 |1. 부서별로 평균 급여보다 높은 급여를 받는 사원은?1) 서브쿼리로 풀어보기 --1) 서브쿼리로 풀어보기 SELECT A.ENAME, A.SAL FROM EMP A WHERE A.SAL > ( SELECT TRUNC(AVG(SAL))AS 평균급여 FROM EMP B WHERE A.DEPTNO =..
[ORACLE] 서브쿼리 Subquery _ 오라클 [ORACLE] 서브쿼리 Subquery _ 오라클 서브쿼리 정의 | 쿼리안에 쿼리가 들어가 있는 쿼리문. 즉, 서브쿼리란 쿼리안에 또 다른 쿼리가 들어있는 쿼리를 말한다. 서브쿼리 종류 | 인라인 뷰, 스칼라 서브쿼리, 기타 서브쿼리 예제 | --1. 기본형식 SELECT EMPNO AS 사번 FROM EMP WHERE DEPTNO IN ( SELECT DEPTNO FROM DEPT WHERE DNAME = 'SALES' ); 하나의 예시이다. SELECT절에 작성이 되면 스칼라 서브쿼리라 부르고, FROM절에 작성되면 인라인 뷰 서브쿼리라 부른다. 위와 같이 WHERE절에 작성이 될 수도 있다. 문제를 직접 풀면서 이해하자. 서브쿼리 문제 | 부서별로 평균 급여보다 높은 급여를 받는 사원은? --1)..
[ORACLE] GROUP BY, HAVING _ 오라클 조인 [ORACLE] GROUP BY _ 오라클 조인 Join의 정석 | 1. Join 선택기준2. On 과 Where 어디 조건을 줄 것인가?3. Join결과에서 Group By 사용법4. 공통된 컬럼이 없는 경우 Join이 사용 가능한가? 가능하다면 그 기준은 어떻게 되는가?5. Outer Join시 (Left, Right, Full Join)의 기준은?6. 카타시안 곱은 도대체 뭐냐? 오늘은 join을 사용할 시에 group by를 언제 어떻게 사용해야하는지 공부해려고 합니다. 제가 계속 헷갈렸던 부분이 group by를 테이블을 join을 거는 중에 문제. 사원별 가족수를 구하시오. (사원이름, 가족수, 부서명, 주소를 출력하시오.) 1. 사원들의 가족들을 구하기 위한 테이블 조인-- 1.가족수 구하기..
[ORACLE] JOIN _ ON 과 WHERE _ 오라클 조인 [ORACLE] JOIN _ ON 과 WHERE _ 오라클 조인 Join의 정석 | 1. Join 선택기준 2. On 과 Where 어디 조건을 줄 것인가? 3. Join결과에서 Group By 사용법 4. 공통된 컬럼이 없는 경우 Join이 사용 가능한가? 가능하다면 그 기준은 어떻게 되는가? 5. Outer Join시 (Left, Right, Full Join)의 기준은? 6. 카타시안 곱은 도대체 뭐냐? 두번째, ON과 WHERE 조건을 어디에 줄 것 인가?먼저, ON에 조건을 거는 것과 WHERE에 조건을 거는 것의 차이를 알아야합니다. ANSI 표준에 따른 코딩에서는 조인 조건을 ON절에 달아주고, WHERE절에는 검색조건을 달게 됩니다. 근데 문제는 ON절에 검색조건을 달아도 상관없다는 것이죠..
[ORACLE] JOIN _ INNER JOIN _ 오라클 조인 [ORACLE] JOIN _ INNER JOIN _ 오라클 조인 Join의 정석 | 1. Join 선택기준 2. On 과 Where 어디 조건을 줄 것인가? 3. Join결과에서 Group By 사용법 4. 공통된 컬럼이 없는 경우 Join이 사용 가능한가? 가능하다면 그 기준은 어떻게 되는가? 5. Outer Join시 (Left, Right, Full Join)의 기준은? 6. 카타시안 곱은 도대체 뭐냐? 위 6가지 궁금증을 하나씩 풀어보자! 1. 조인의 선택기준에 대해살펴보자. Join은 두 테이블간에 공통된 컬럼(조건)으로 (두 테이블을 Row기준으로) 합쳐서 표현하는 것이다. Join에는 크게 Inner Join, Outer Join이 있다. 그럼 둘 중에 무엇을 선택해서 쓸 것인가? 다음은 테..
[ORACLE] NULL 함수 _ 오라클 [ORACLE] NULL 함수 _ 오라클NULL 함수 NVL(컬럼명, n) | 컬럼 혹은 문자열의 NULL 여부를 판단하여, NULL일 경우 지정한 값으로 치환한다. NVL2(컬럼명, n, m) | NULL 여부를 판단하여, NULL 아닐 경우 2번째 인자값을 반환하고 NULL 일 경우 3번째 인자 값을 반환한다. NULLIF(컬럼명, 컬럼명) | 두 문자열을 비교하여 같을 경우 NULL을 반환, 다를 경우 본래 값을 반환한다. 예제1.NVL SELECT NVL(NULL, 1) AS NVL FROM DUAL 예제2.NVL2 SELECT NVL2(NULL, 'NULL 아니다', 'NULL 이다') AS NVL2 FROM DUAL SELECT NVL2(1, 'NULL 아니다', 'NULL 이다') AS NV..
[ORACLE] 숫자 함수 _ 오라클 sql [ORACLE] 숫자 함수 _ 오라클 sql 숫자형 함수 연습 1. ABS : 절대 값을 구해보자. SELECT ABS(-352) FROM DUAL 2. SIGN : SIGN( 숫자 )=> 양수 = 1, 음수 = -1, 0 = 0 을 리턴 SELECT SIGN(-126), SIGN(128), SIGN(0) FROM DUAL 3. POWER : POWER( 임의의 수, 승수 ) SELECT POWER(2, 3) FROM DUAL 4. SQRT : SQRT( n )=> n 제곱근 SELECT SQRT(4) FROM DUAL 5. 이 구역에서 가장 쎈놈 나와!GREATEST & LEAST리스트 중에서 제일 큰 값과 작은 값을 리턴하는 함수!! 제일 첫번째 놓인 컬럼에 또는 문자에 의해 타입이 결정된다!! SE..
[ORACLE] UNION 과 UNION ALL 차이 _ 오라클 [ORACLE] UNION 과 UNION ALL 차이 _ 오라클PART.1결론 || 저는 한국사람이지만, 결론부터 말해보겠습니다. UNION은 중복제거가 된 결과가 나타나고, UNION ALL은 중복을 포함한 결과가 나타나게 됩니다. 학생별 평균 마일리지 값을 구하는 쿼리분석중에 있었습니다. 근데, 기존 쿼리를 분석해보니 각 쿼리를 실행해서 더한 값과 그 쿼리들를 UNION ALL로 합쳐서 실행한 결과값이 달랐습니다. 자세히 보니 여러 쿼리중 두 쿼리만 UNION로 작성되었고, 해당 파트를 UNION ALL로 수정해주니 정상적인 결과가 나왔습니다. 일련의 과정을 간단한 예제로 정확한 차이를 다시 한 번 정리해보자 합니다. UNION || 두 테이블의 결과를 중복을 제거해서 보여준다. UNION ALL |..
[ORACLE] Natural Join _ 네추럴 조인 _ 오라클 [ORACLE] Natural Join _ 네추럴 조인 _ 오라클 NATURAL JOIN 두 테이블의 동일한 이름(컬럼명)을 갖는 컬럼은 모두 조인이 된다. EMP1 과 EMP2 테이블 EMP1 테이블 EMP2 테이블 위와 같이 하나의 테이블을 복사해서 동일한 테이블을 만들었다. 먼저, INNER JOIN 한 결과를 살펴보자. 1. INNER JOIN SELECT A.EMPNO, A.SAL FROM EMP A INNER JOIN EMP2 B ON A.EMPNO = B.EMPNO INNER JOIN INNER 조인은 ON절에 하나의 조건만을 걸었다. 그래서 EMPNO만 같다면 그에 해당하는 결과물 모두를 가져오는 것을 볼 수 있다. 반면에, NATURAL JOIN은 2. NATURAL JOIN SELECT..
[ORACLE] 오라클 날짜 함수 [ORACLE] 오라클 날짜 함수 1. 날짜 포맷 CC: 세기(Century) YEAR: 년도 YYYY, YYY, YY, Y : 년도 자릿수 표기 BC, AD : 서기 등으로 표시 Q: 분기 표시 MM : 두자리로 월표시 MONTH: 영어로 표시 MON: 영어로 3자리로 월표시 RM: 로마자로 표시 i, ii. xi WW, WI : 1년기준 몇째주 표시 W :한달기준 몇째주 표시 DDD: 365(1년기준 ) 의 몇째 일 DD: 날짜를 두자리로 표시 D: 요일을 숫자로 표시 DY: 요일 한자리로 표시 DAY: 요일 표시 AM, PM, A.M. , P.M. : 오전오후 표시 HH, HH12 : 12시 기준으로 표시 HH24 : 24시 기준으로 표시 /, "of" : 날짜의 중간에 문자 표시 -> SPTH: ..