IT/SQLD 8

[SQLD]SQL활용_그룹함수

ROLLUP소그룹간의 소계를 계산.GROUP BY의 확장된 형태로 사용하기 쉬우며 병렬로 수행이 가능하기 때문에 매우 효과적이다.시간 및 지역처럼 계층적 분류를 포함하고 있는 데이터의 집계에 적합하다. CUBE결합 가능한 모든 값에 대하여 다차원적인 집계를 생성.ROLLUP에 비해 다양한 데이터를 얻는 장점이 있지만, 시스템에 부하를 많이 주는 단점이 있다. GROUPING SETS원하는 특정 항목에 대한 소계만 손쉽게 추출할 수 있는 장점이 있다. --1. 부서명과 업무명을 기준으로 사원수와 급여 합을 집계 SELECT DNAME , JOB , COUNT ( * ) Total_Emp , SUM (SAL) Total_Sal FROM EMP, DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO..

IT/SQLD 2017.11.22

[SQLD] SQL기본_JOIN

INNER JOINJOIN 조건에서 동일한 값이 있는 행만 반환USING, ON 조건절을 필수적으로 사용해야 한다. --INNER JOIN SELECT T0.LAST_NAME, T1.DEPARTMENT_NAME FROM EMPLOYEES T0 INNER JOIN DEPARTMENTS T1 ON T0.DEPARTMENT_ID = T1.DEPARTMENT_ID NATURAL JOIN두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI JOIN을 수행USING, ON, WHERE 절에 JOIN 조건을 정의할 수 없다. --NATURAL JOIN SELECT T0.LAST_NAME, T1.DEPARTMENT_NAME FROM EMPLOYEES T0 NATURAL JOIN DEPARTMENTS T1 U..

IT/SQLD 2017.11.21

[SQLD] SQL기본_GROUP BY, HAVING절

GROUP BY 절과 HAVING 절의 특성 1. GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수 사용 2. 집계 함수는 NULL 값을 가진 행을 제외하고 수행 3. GROUP BY 절에는 ALIAS 명 사용 불가능 4. WHERE 절에는 집계함수 올 수 없음 (WHERE 절이 GROUP BY 절보다 먼저 수행되기 때문이다) 5. HAVING 절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건 표시 가능 SELECT 문장 실행 순서 1. 발췌 대상 테이블 참조 ( FROM ) 2. 발췌 대상 데이터가 아닌 것은 제거 ( WHERE ) 3. 행들을 소그룹화 ( GROUP BY ) 4. 그룹핑된 값의 조건에 맞는 것만 출력 ( HAVING ) 5. 데..

IT/SQLD 2017.11.21

[SQLD] 함수

/***문자형 함수***/ /* 결과: 10 */ SELECT LENGTH('SQL EXPERT') FROM DUAL; /* 결과: 홍길동 축구선수 */ SELECT CONCAT(PLAYER_NAME, ' 축구선수') FROM PLAYER; SELECT PLAYER_NAME||' 축구선수' FROM PLAYER; /* SQL Server */ SELECT PLAYER_NAME+' 축구선수' FROM PLAYER; /***숫자형 함수***/ /* 소수점 이하 한 자리까지 반올림, 내림 */ SELECT ENAME, ROUND(SAL/12, 1), TRUNC(SAL/12, 1) FROM EMP; /*** 숫자형 함수 ***/ /***날짜형 함수***/ SELECT ENAME , HIREDATE , EXTRA..

IT/SQLD 2017.11.20

[SQLD] SQL기본_TCL/WHERE절

TCL(트랜잭션 제어어)COMMIT, ROLLBACK, SAVEPOINTDML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어- 효과 데이터 무결성 보장영구적인 변경을 하기 전 데이터 변경사항 확인 가능논리적 연관된 작업 그룹핑하여 처리 가능(Default) ORACLE - Not Auto Commit / SQL Server - Auto Commit DDL 명령어CREATE, ALTER, RENAME, DROP직접 데이터베이스의 테이블에 영향을 미치기 때문에 DDL 명령어를 입력하는 순간 명령어에 해당하는 작업이 즉시(Auto Commit) 완료된다. DML 명령어INSERT, UPDATE, DELETE, SELECT조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에 실시간으로 ..

IT/SQLD 2017.11.20

[SQLD] 엔티티

[ 엔티티 ] 엔티티명사업무상 관리가 필요한 관심사저장이 되기 위한 어떤 것(Thing) 엔티티 특징1. 업무에서 필요로 하는 정보2. 식별이 가능해야 함3. 인스턴스의 집합4. 업무프로세스에 의해 사용5. 속성을 포함6. 관계의 존재 엔티티의 분류1. 유무형에 따른 분류- 유형엔티티물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔티티로 업무로부터 엔티티를 구분하기 가장 용이- 개념엔티티물리적인 형태가 존재하지 않고 관리해야할 개념적 정보로 구분이 되는 엔티티- 사건엔티티업무를 수행함에 따라 발생되는 엔티티 2. 발생시점에 따른 분류- 기본엔티티그 업무에 원래 존재하는 정보로서 다른 엔티티와 관계에 의해 생성되지 않고 독립적으로 생성 가능, 타 엔티티의 부모 역할- 중심엔티티기본엔티티로부터 발생되고..

IT/SQLD 2017.10.20

[SQLD]데이터 모델링의 이해

[ 데이터 모델링의 이해 ] 모델의 세가지 관점1. 데이터 관점업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해서 모델링하는 방법(what, data)2. 프로세스 관점업무가 실제 하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법(how, process)3. 데이터와 프로세스의 상관관점업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법 데이터 모델링의 중요성1. 파급효과2. 복잡한 정보 요구사항의 간결한 표현3. 데이터 품질 데이터 모델링의 유의점1. 중복(Duplication)2. 비유연성(Inflexibility) : 데이터의 정의를 데이터의 사용 프로세스와 분리해야함3. 비일관성(Inconsistency) : 데이터와 데..

IT/SQLD 2017.06.16