본문 바로가기

SQLD

(43)
[SQLD : Ⅳ. SQL 활용] 8-1. 절차형 SQL * 절차형 SQL 개요 - 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL(Procedural Language)/SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server) 등의 절차형 SQL을 제공 - 절차형 SQL을 이용하면 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성 가능 * PL/SQL 개요 - PL/SQL 특징 PL/SQL은 Block 구조로 되어있어 각 기능별로 모듈화가 가능하다. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다. DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다. PL/SQL은 Oracl..
[SQLD : Ⅳ. SQL 활용] 7. DCL * DCL 개요 - DML, TCL 명령어들 이외에도 유저를 생성하고 권한을 제어할 수 있는 DCL(DATA CONTROL LANGUAGE) 명령어 * 유저와 권한 - 유저 생성과 시스템 권한 부여 [예제] SCOTT 유저로 접속한 다음 PJS 유저(패스워드: KOREA7)를 생성해 본다. Oracle CONN SCOTT/TIGER 연결되었다. CREATE USER PJS IDENTIFIED BY KOREA7; CREATE USER PJS IDENTIFIED BY KOREA7; * 1행에 오류: ERROR: 권한이 불충분하다 SCOTT 유저는 유저를 생성할 권한을 부여받지 못했기 때문에 권한이 불충분하다는 오류가 발생 Oracle의 DBA 권한을 가지고 있는 SYSTEM 유저로 접속하면 유저 생성 권한을..
[SQLD : Ⅳ. SQL 활용] 6. 윈도우 함수 * WINDOW FUNCTION 개요 - 인라인 뷰를 이용해 복잡하게 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수 - WINDOW 함수는 다른 함수와는 달리 중첩(NEST)해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있다. * WINDOW FUNCTION 종류 - 첫 번째, 그룹 내 순위(RANK) 관련 함수는 RANK, DENSE_RANK, ROW_NUMBER 함수 - 두 번째, 그룹 내 집계(AGGREGATE) 관련 함수는 일반적으로 많이 사용하는 SUM, MAX, MIN, AVG, COUNT 함수 - 세 번째, 그룹 내 행 순서 관련 함수는 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수 - 네 번째, 그룹 내 비율 관련 함수는 CUM..
[SQLD : Ⅳ. SQL 활용] 5. 그룹 함수 * 데이터 분석 개요 - AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류 COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함 - GROUP FUNCTION 소계, 중계, 합계, 총 합계 등 여러 레벨의 결산 보고서를 만드는 것이 중요 업무 중의 하나 여러 단계의 SQL을 UNION, UNION ALL로 묶은 후 하나의 테이블을 여러 번 읽어 다시 재정렬하는 복잡한 단계 CASE 함수를 이용하면 쉽게 원하는 포맷의 보고서 작성도 가능 소그룹 간의 소계를 계산하는 ROLLUP 함수, GROUP BY 항목들 간 다차원적인 소계를 계산 할 수 있는 CUBE 함수, 특정 항목에 대한 소계를 계산하는..
[SQLD : Ⅳ. SQL 활용] 4. 서브쿼리 - 서브쿼리는 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문을 말함 - 알려지지 않은 기준을 이용한 검색을 위해 사용 - 조인에 참여하는 모든 테이블이 대등한 관계, 참여하는 모든 테이블의 컬럼을 어느 위치에서 자유롭게 사용 가능 - 1:1 관계의 테이블이 조인하면 레벨의 집합이 생성, 1:M 관계의 체이블을 조인하면 M 레벨의 집합 생성 M:N 관계 테이블을 조인하면 MN 레벨의 집합이 결과로 생성 ① 서브쿼리를 괄호로 감싸서 사용한다. ② 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하이어야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관 없다. ③ 서브쿼리..
[SQLD : Ⅳ. SQL 활용] 2. 집합 연산자 - 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 - 기존의 조인은 FROM 절에 검색하고자 하는 테이블 나열, WHERE 절에서 조건을 기술 - 집합 연산자는 여러 질의의 결과를 연결하여 하나로 결합하는 방식 사용 SELECT 칼럼명1, 칼럼명2, ... FROM 테이블명1 [WHERE 조건식 ] [[GROUP BY 칼럼(Column)이나 표현식 [HAVING 그룹조건식 ] ] 집합 연산자 SELECT 칼럼명1, 칼럼명2, ... FROM 테이블명2 [WHERE 조건식 ] [[GROUP BY 칼럼(Column)이나 표현식 [HAVING 그룹조건식 ] ] [ORDER BY 1, 2 [ASC또는 DESC ] ; SELECT PLAYER_NAME 선수명, BACK_NO 백넘버 ..
[SQLD : Ⅳ. SQL 활용] 1-2. 표준조인 * ON 조건절 - JOIN 서술부(ON 조건절)와 비 JOIN 서술부(WHERE 조건절)를 분리하여 이해 - 컬럼명이 다르더라도 JOIN 조건을 사용할 수 있는 장점이 있음 [예제] 사원 테이블과 부서 테이블에서 사원 번호와 사원 이름, 소속부서 코드, 소속부서 이름을 출력한다. SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME FROM EMP E JOIN DEPT D ON (E.DEPTNO = D.DEPTNO); - NATURAL JOIN의 JOIN 조건은 기본적으로 같은 이름을 가진 모든 컬럼들에 대한 동등 조건 - 임의의 JOIN 조건 지정, 이름이 다른 컬럼명을 JOIN 조건으로 사용, JOIN 컬럼을 명시하기 위해 ON 조건절 사용 - ON 조건절을 사용한 JOIN의..
[SQLD : Ⅳ. SQL 활용] 1-1. 표준조인 * ANSI/IOS 표준 SQL 기능 - STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들) - SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들 - ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능 - WINDOW FUNCTION 같은 새로운 개념의 분석 기능들 * 일반 집합 연산자 1) UNION - 수학적 합집합을 제공하기 위해, 공통 교집합의 중복을 업애기 위한 사전 작업 - 시스템에 부하를 주는 정렬 작업이 발생 - UNION ALL은 공통집합을 중복해서 그대로 보여주기 때문에 정렬 작업이 일어나지 않음 - UNION과 UNION ALL의 출력결과가 같으면 UNION ALL ..