목록Database/Oracle (40)
고래씌
1. DDL (DATA DEFINITION LANGUAGE) : 데이터 정의 언어 - 오라클에서 제공하는 객체를 새로이 만들고(CREATE), 구조를 변경하고(ALTER), 구조 자체를 삭제(DROP)하는 명령문 - 즉, 구조 자체를 정의하는 언어로 DB관리자나 설계자가 주로 사용함 2. CREATE TABLE - 테이블 : 행(ROW), 열(COLUMN)로 구성되는 가장 기본적인 데이터베이스 객체 종류 중 하나. => 모든 데이터는 테이블을 통해서 저장됨(데이터를 조작하고자한다면 테이블을 만들어야 한다. [표현법] CREATE TABLE 테이블명 ( 컬럼명 자료형, 컬럼명 자료형, 컬럼명 자료형, ... ) ▶ 자료형 - 문자 (CHAR(크기)/VARCHAR2(크기)) : 크기는 BYTE 수이다. (숫..
1. 인라인 뷰(INLINE VIEW) : FROM 절에 서브쿼리를 제시하는 것 => 서브쿼리를 수행한 결과를 테이블 대신해서 사용함 ▶ 인라인 뷰를 주로 사용하는 예) - TOP-N 분석 : 데이터베이스 상에 있는 자료중 최상위 N개의 자료를 보기 위해 사용하는 기능 ▶ ① 보너스 포함 연봉이 3000만원 이상인 사원들의 사번, 이름, 보너스포함연봉, 부서코드를 조회 ▶② 인라인 뷰를 사용하여 사원명만 골라내기 ☞ 실행순서는 다음과 같다. MAIN의 FROM 절이 먼저 실행되고 안에 있는 FROM절, WHERE, SELECT 순으로 실행된다. ▶ 전 직원 중 급여가 가장 높은 상위 5명(순위, 사원명, 급여) *ROWNUM : 오라클에서 제공해주는 칼럼, 조회된 순서대로 1부터 순번을 부여해주는 칼럼 ..
1. SUBQUERY 서브쿼리 - 하나의 주된 SQL 안에 포함된 또 하나의 SELECT문 - 메인 SQL문을 위해서 보조 역할을 하는 SELECT문 => 주로 조건절에서 많이 쓰인다. ▶ 간단 서브쿼리 예시 1) - 노옹철 사원과 같은 부서인 사원들 ① 먼저 노옹철 사원의 부서코드를 조회 ② 부서코드가 D9인 사원들 조회 ③ 위 두단계 합치기 ▶ 간단 서브쿼리 예시 2) - 전체 사원의 평균 급여보다 더 많은 급여를 받고있는 사원들의 사번, 이름, 직급코드 조회 ① 전체 사원의 평균 급여 구하기 ② 급여가 3047000원 이상인 사원들 조회 ③ 위 두단계 합치기 2. 서브쿼리 구분 : 서브쿼리를 수행한 결과값이 몇행 몇열이냐에 따라서 분류됨 - 단일행 (단일열) 서브쿼리 : 서브쿼리를 수행한 결과값이 ..
1. 카테시안 곱/ 교차조인 ▶ 모든 테이블의 각 행들이 서로서로 매핑된 데이터가 조회됨(곱집합) ▶ 두 테이블의 행들이 모두 곱해진 행들의 조합 출력 => 각각 N개, M개의 행을 가진 테이블들의 카테시안 곱의 결과는 N*M의 행 => 모든 경우의 수를 다 따져서 조회하겠다 => 방대한 데이터를 출력할 위험이 있다. ▶ 사원명, 부서명 - 오라클 구문 - ANSI 구문 .... ☞ 값이 방대하게 여러가지 경우의 수를 두고 출력되는 것을 확인 ☞ 카테시안 곱의 경우 WHERE 절에 기술하는 조인 조건이 잘못되었거나 아예 없을 경우 발생 2. 비등가 조인(NON EQUAL JOIN) ▶ '='를 사용하지 않는 조인문 => 다른 비교연산자를 써서 조인하겠다( >, 지정한 칼럼 값들이 일치하는 경우가 아니라 ..
1. 포괄조인 / 외부조인(OUTER JOIN) : 테이블간의 JOIN시 "일치하지 않는 행도" 포함시켜서 조회 가능 단, 반드시 LEFT 혹은 RIGHT를 지정해야함 => LEFT 시 왼쪽이 기준이 되는 테이블, RIGHT시 오른쪽이 기준이 되는 테이블 => 일치하는 행과 기준이 되는 테이블 기준으로 일치하지 않는 행도 포함시켜서 조회 1) LEFT OUTER JOIN : 두 테이블중 왼편에 기술된 테이블을 기준으로 JOIN 즉, 뭐가되었든 간에 왼편에 기술된 테이블의 데이터는 무조건 조회되게 한다. (일치하는 것이 없더라도 조회하겠다) ▶ 전체 사원들의 사원명, 급여, 부서명 - ANSI - 오라클 전용 구문 ☞ 내가 기준으로 삼을 테이블의 컬럼명이 아닌 반대 테이블의 컬럼명에 (+)를 붙여준다. 2..
1. JOIN - 두 개 이상의 테이블에서 데이터를 같이 조회하고자 할 때 사용하는 구문 => SELECT 문 이용 - 조회 결과는 하나의 결과물(RESULT SET)로 나옴 ※ JOIN을 해야하는 이유? - 관계형 데이터베이스에서는 최소한의 데이터로 각각의 테이블에 데이터를 보관하고 있음 - 사원정보는 사원테이블, 직급정보는 직급테이블, .. 등등 => 중복을 최소화 하기 위해 => 즉, JOIN 구문을 이용해서 여러개 테이블 간의 "관계"를 맺어서 같이 조회해야함 => 단, 무작정 JOIN을 하는게 아니라 테이블 간의 "연결고리"에 해당되는 칼럼을 매칭시켜서 조회 ex) EMPLOYEE 테이블의 JOB_CODE, JOB테이블의 JOB_CODE => 관계가 있음 ▶ 문법상 종류 : JOIN은 크게 "오..
1. GROUP BY 절 ▶ 그룹을 묶어줄 기준을 제시할 수 있는 구문 => 그룹함수와 같이 쓰임 ▶ 제시된 기준별로 그룹을 묶어줄 수 있음 ▶ 여러개의 값들을 하나의 그룹으로 묶어서 처리할 목적으로 사용 [표현법] GROUP BY 묶어줄 기준이 될 칼럼 ▶ 각 부서별로 총 급여의 합계 ▶ 'D1'부서의 총 급여 합 ▶ 각 부서별 총 급여합을 부서별 오름차순으로 정렬해서 조회 => 실행순서 ① FROM ② GROUP BY ③ SELECT ④ ORDER BY ▶ 각 직급별로 직급코드, 총 급여의 합, 사원수, 보너스를 받는 사원수, 평균급여, 최고급여, 최소급여 ▶ 성별 별 사원수 성별 : SUBSTR(EMP_NO,8,1) ▶ 성별 기준으로 평균 급여 ▶ 각 부서별로 평균 급여가 300만원 이상인 부서들만..
1. 그룹함수 - 그룹함수 : 데이터들의 합(SUM), 평균(AVG), ... - N개의 값을 읽어서 그룹별로 결과를 반환(하나의 그룹별로 함수실행후 결과 반환) 2. SUM(숫자타입컬럼) : 컬럼값들의 총 합계를 반환해주는 함수 ▶ 전체 사원들의 총 급여 합계 ▶ 부서코드가 D5인 사원들의 총 급여 합계 ▶ 남자 사원들의 총 급여 합계 2. AVG AVG(숫자타입컬럼) : 해당컬럼값들의 평균을 구해서 반환 3. MIN(ANY타입컬럼) : 해당컬럼값들 중에서 가장 작은값을 반환 ▶ 전체 사원들 중 최저급여, 가장 작은 이름, 가장 작은 이메일 값, 가장 과거에 입사한 날짜 4. MAX(ANY타입컬럼) : 가장 큰 값을 반환 ▶ 전체 사원들 중 최고급여, 가장 큰 이름, 가장 큰 이메일 값, 가장 최근에 ..