RDS/Oracle
-
[Oracle] 서브쿼리(Subquery)RDS/Oracle 2019. 3. 18. 07:30
서브쿼리(Subquery) 서브쿼리란 하나의 SQL문안에 포함되어 있는 또 다른 SQL문을 말합니다. 서브쿼리는 알려지지 않은 기준을 이용한 검색을 위해 사용하며, 메인쿼리가 서브쿼리를 포함하는 종속적인 관계입니다. SCOTT의 부서명을 검색하기 위해서는 SCOTT의 부서번호를 검색하는 쿼리와 부서번호로 부서명을 검색하는 쿼리가 필요합니다.1234567891_1) SCOTT의 부서번호를 검색하는 쿼리문SELECT DEPTNO FROM EMP WHERE ENAME = 'SCOTT'; 1_2) 부서번호로 부서명을 검색하는 쿼리문SELECT DNAME FROM DEPT WHERE DEPTNO = 20; cs 부서번호을 검색하는 쿼리문 부서명을 검색하는 쿼리문으로 SCOTT에 부서명을 검색할 수 있지만, 서브쿼..
-
[Oracle] 셀프 조인(Self Join)RDS/Oracle 2019. 3. 16. 17:48
셀프 조인(Self Join) 셀프 조인이란 동일 테이블 사이의 조인을 말합니다. 따라서 FROM 절에 동일 테이블이 두 번 이상 나타납니다. 도일 테이블 사이의 조인을 수행하면 테이블과 컬럼 이름이 모두 동일하기 때문에 식별을 위해 반드시 테이블 별칭(Alias)을 사용해야 합니다. 그리고 컬럼에도 모두 테이블 별칭을 사용해서 어느 테이블의 컬럼인지 식별해줘야 합니다. 1 2 3 4 SELECT ALIAS명1.컬럼명 , ALIAS명2.컬럼명 FROM 테이블1 ALIAS명1, 테이블2 ALIAS명2 WEHRE ALIAS명1.컬럼명2 = ALIAS명2.컬럼명1; cs 사원과 사원의 직속 관리지는 동일한 행에서 데이터를 구할 수 있으나 차상위 관리자는 바로 구할 수 없습니다. 차상위 관리자를 구하기 위해서는..
-
[Oracle] 계층형 질의RDS/Oracle 2019. 3. 12. 08:54
계층형 질의 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의를 사용합니다. 계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말합니다. 예를 들어, 사원 테이블에서는 사원들 사이에 상위 사원(관리자)과 하위 사원 관계가 존재하고 조직 테이블에서는 조직들 사이에 상위 조직과 하위 조직 관계가 존재합니다. 123456SELECT... FROM 테이블WHERE condition AND condition...START WITH conditionCONNECT BY [NOCYCLE] condition AND condition...[ORDER SIBLINGS BY column, column, ...]cs - START WITH 절은 계층 구조 전개의 시작 위치..
-
[Oracle] 집합 연산자(SET OPERATOR)RDS/Oracle 2019. 3. 11. 09:27
집합 연산자 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중에 또 다른 방법이 있는데 그 방법이 바로 집합 연산자(Set Operator)를 사용하는 방법입니다. 1234567891011121314SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명1[WHERE 조건식][GROUP BY 컬럼명이나 표현식][HAVING 그룹조건식] 집합 연산자 SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명1[WHERE 조건식][GROUP BY 컬럼명이나 표현식][HAVING 그룹조건식][ORDER BY 컬럼명이나 표현식 [ASC 또는 DESC]]; cs 집합 연산자는 여러 개의 SELECT문을 연결하는 것이므로, ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬..
-
[Oracle] FROM 절 JOIN 형태RDS/Oracle 2019. 3. 10. 00:36
INNER JOIN INNER JOIN은 OUTER JOIN과 대비하여 내부 JOIN이라고 하며 JOIN 조건에서 동일한 값이 있는 행만 반환합니다. INNER JOIN 표시는 WHERE 절에서 사용하던 JOIN 조건을 FORM 절에서 정의하겠다는 표시이므로 USING 조건절이나 ON 조건절을 필수적으로 사용해야 합니다. WHERE 절 JOIN 조건 1 2 3 4 5 6 SELECT E.DEPTNO , E.EMPNO , E.ENAME , D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO; cs FROM 절 JOIN 조건 1 2 3 4 5 6 SELECT E.DEPTNO , E.EMPNO , E.ENAME , D.DNAME FROM EMP E INNER JOIN..
-
[Oracle] 조인(Join)RDS/Oracle 2019. 3. 10. 00:24
조인(Join) 두 개 이상의 테이블 들을 연결하여 데이터를 출력하는 것을 JOIN이라고 하며, WHERE 절의 JOIN 조건에 대해서 EQUI JOIN과 Non EQUI JOIN으로 구분할 수 있습니다. EQUI JOIN EQUI(등가) JOIN은 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법으로 대부분 PK FK의 관계를 기반으로 합니다. 그러나 일반적으로 테이블 설계 시에 나타난 PK FK의 관계를 이용하는 것이지 반드시 PK FK의 관계로만 EQUL JOIN이 성립하는 것은 아닙니다. JOIN의 조건은 WHERE 절에 기술하게 되는데 "=" 연사자를 사용해서 표현합니다. EQUI JOIN의 대략적인 형태 1 2 3 4 SELECT 테이블1.컬럼명 , 테이블2.컬러명..
-
[Oracle] SELECT 문장 실행 순서RDS/Oracle 2019. 3. 10. 00:21
SELECT 문장 실행 순서 GROUP BY 절과 ORDER BY 절이 같이 사용될 때 SELECT 문장은 6개의 절로 구성이 되고, SELECT 문장의 수행 단계는 다음과 같습니다. 123456SELECT 컬럼명 [ALIAS명] FROM 테이블명 WHERE 조건식 GROUP BY 컬럼명이나 표현식HAVING 그룹조건식 ORDER BY 컬럼명이나 표현식 cs 1.FROM 테이블명2.WHERE 조건식3.GROUP BY 컬럼명이나 표현식4.HAVING 그룹조건식5.SELECT 컬럼명 [ALIAS명]6.ORDER BY 컬럼명이나 표현식 위 순서는 옵티마이저가 SQL 문장의 SYSTAX, SEMANTIC 에러를 점검하는 순서입니다. 예를 들면 FROM 절에 정의되지 않은 테이블의 컬럼을 WHERE 절, GROU..
-
[Oracle] ORDER BY 절RDS/Oracle 2019. 3. 10. 00:16
ORDER BY 절 ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 컬럼을 기준으로 정렬하여 출력하는데 사용됩니다. ORDER BY 절에 컬럼명 대신에 SELECT 절에서 사용한 ALIAS 명이나 컬럼 순서를 나타내는 정수도 사용 가능합니다. 그리고 별로도 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용되며, SQL 문장의 제일 마지막에 위치합니다. 123456SELECT 컬럼명 [ALIAS명] FROM 테이블명[WHERE 조건식][GROUP BY 컬럼명이나 표현식][HAVING 그룹조건식][ORDER BY 컬럼명이나 표현식 [ASC 또는 DESC]]; cs ASC - 조회한 데이터를 오름차순으로 정렬합니다.DESC - 조회한 데이터를 내림차순으로 정렬합니다. OR..
-
[Oracle] GROUP BY, HAVING 절RDS/Oracle 2019. 3. 10. 00:11
집계 함수(Aggregate Function)1.여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수입니다.2.GROUP BY 절은 행들을 소그룹화 합니다.3.SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있습니다. 집계 함수 종류COUNT(*) - NULL 값을 포함한 행의 수를 출력합니다.COUNT(표현식) - 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력합니다.SUM([DISTINCT | ALL] 표현식) - 표현식의 NULL 값을 제외한 합계를 출력합니다.AVG([DISTINCT | ALL] 표현식) - 표현식의 NULL 값을 제외한 평균을 출력합니다.MAX([DISTINCT | ALL] 표현식) - 표현식의 최대값을 출력합니다.(문자, 날짜 데이터 타..
-
[Oracle] 함수(Function) - 변환형 함수RDS/Oracle 2019. 3. 3. 10:00
변환형 함수 변환형 함수는 특정 데이터 타입을 다양한 형식으로 출려겨하고 싶을 경우에 사용되는 함수입니다. 명시적(Explicit) 데이터 유형 변환 - 데이터 변환형 함수로 데이터 유형을 변환하도록 명시해 주는 경우암시적(Implicit) 데이터 유형 변환 - 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우 암시적 데이터 유형 변환의 경우 성능 저하가 발생할 수 있으며, 자동적으로 데이터베이스가 알아서 계산하지 않는 경우가 있어 에러를 발생할 수 있으므로 명시적인 데이터 유형 변환 방법을 사용하는 것이 바람직합니다. 변환형 함수 종류TO_NUMBER(문자열) - Alphanumeric 문자열을 숫자로 변환합니다.TO_CHAR(숫자|날짜 [, FORMAT]) - 숫자나 날짜를 주어진 FORM..