글

라벨이 sqld인 게시물 표시

2장_1절~8절요약

1절. 표준조인  -  ANSI/ISO 표준 SQL에서 규정한 INNER JOIN, NATURAL JOIN, USING 조건절, ON조건절, CROSS JOIN, OUTER JOIN  문법을 통해 사용자는 테이블간의 JOIN 조건을 FROM절에서 명시적으로 정의할 수 있다. 2절. 집합 연산자 -두 개 이상의 테이블에서 JOIN을 사용하지 않고, SET연산자는  여러 개의 SQL문을 연결하여 데이터를 결합 하는 방식을 사용한다. UNION은 합집합, UNION ALL은 확장된 합집합(중복), INTERSECT는 교집합, EXCEPT/MINUS는 차집합을 나타낸다. 3절. 계층형 질의와 셀프 조인 -테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서  계층형 질의 를 사용한다.  셀프 조인 이란 동일 테이블 사이의 조인을 말하며,  FROM절에 동일 테이블이 두 번 이상  나타난다. 4절. 서브쿼리 -서브쿼리란 하나의 메인쿼리 안에 포함되어 있는 종속적인 SQL 문장을 말하는 것으로, 위치나 기능에 따라  NESTED SUBQUERT(중첩쿼리), INLINE VIWE(인라인뷰), SCALAR SUBQUERT(단일행서브쿼리) 로 구분할 수 있다. 5절. 그룹 함수 -데이터 분석을 위한 GROUP FUNCTION으로는 소 그룹간의 소계를 계산하는  ROLLUP함수 , GROUP BY항목들 간의 다차원적 소계를 계산할 수 있는  CUBE함수 , 특정 항목에 대한 소계를 계산하는  GROUPING SETS함수 가 있다. 6절. 윈도우 함수 -데이터 분석을 위한 WINDOW FUNCTION은 부분적이나마  행과 행의 관계를 계산 할 수 있게 해준다. (1)RANK함수는 순위함수로 RANK, DENSE_RANK, ROW_NUMBER함수가 있고  (2)그룹 내 집계관련AGGREG...

2장_8절. 절차형SQL

이미지
1.절차형 SQL개요 -SQL은 기본적으로 관계형이다. 하지만 절차형 요소를 사용하면 연속적실핵이나 조건에 따른 분기처리를 할 수 있다. 2.PL/SQL개요 가. PL/SQL의 특징 -오라클의 PL/SQL은  블록구조 로 되어있다. -블록내에는 DML, 쿼리, 절차형언어(IF,LOOP)를 사용할 수 있다. -따라서  블록은 절차적 프로그래밍이 가능한 트랜잭션언어 이다. -따라서 블록을 사용하여 다양한  저장모듈(Stored Module)을 개발 할 수 있다. -저장모듈이랑 PL/SQL문장을 DB서버에 저장하여  사용자와 APP사이에서 공유할 수 있도록 만든 컴포넌트 프로그램 이다. -독립적으로 실행될 수 있는 완전한 S/W이다. -오라클의 저장모듈에는  프로시져(Procedure), 유저정의함수(User Defined Function), 트리거(Trigger) 가 있다. 나. PL/SQL구조 오라클에서 SQL 언어를 확장하기위해 사용하는 언어로서  SQL만으로는 처리하기 힘든 자료저장,프로시저,트리거등을  작성할대 쓰이게된다. 선언(DECLARE)    ----   데이터변수등의 크기,형등을 선언한다. 실행(BEGIN)       ----    SELECT,INSERT,UPDATE같은 DML문이나 조건이나 제어문을 사용한다. 예외처리(EXCEPTION)    ----    예외를 처리한다. 종료(END) 다. PL/SQL문법 CREATE[OR REPLACE] Procedure [프로시져이름] (파라미터1[mode] 데이터타입1, 파라미터2[mode] 데이터타입2,...) <-선언 IS [AS] ... ... BEGIN <-실행 ... ... ...

2장_7절 데이터제어어DCL(Data Control Language)

이미지
1.DCL 개요 -DDL(데이터 정의어 : 테이블 생성과 조작) -DML(데이터 조작어 : 데이터조작) -TCL(트랜잭션 제어어 : 트랜잭션 제어)  -DCL(데이터 제어어 : 유저생성과 권한제어)를배움 2.유저와 권한 -데이터 공유를 위해 데이터베이스를 오픈해야함. -보안의 문제가 생김 -새로운 유저를 생성, 생성한 유저에게 공유할 테이블을 정해주는 권한부여 방식으로 해결 (1)SCOTT : 오라클 테스트용 샘플유저, 디폴트암호값 : TIGER (2)SYS : 데이터베이스 아키텍쳐 열학을 부여받은 유저 (3)SYSTEM : 데이터베이스의 모든 시스템 권한을 부여받은 유저, 오라클 설치시 생성 -Oracle과 Sql Server의 로그인 구조는 다르다. -Oracle은 유저를 통해 DB에 접속한다. -Sql Server는 인스턴스에 접속하기위해 로그인을 생성한다.??(Windows인증방식, Sql인증방식) 가. 유저생성과 시스템 권한부여 (1)SCOTT유저로 접속하여 유저를 생성하면 권한이 불충분 하다는 오류를 발생시킨다. SQL> CONN PYTHONTS/200901618 Connected. SQL> CREATE USER AAA IDENTIFIED BY 1234; CREATE USER AAA IDENTIFIED BY 1234                               * ERROR at line 1: ORA-01031: insufficient privileges (2)SYSTEM유저로 접속하여, SCOTT유저에게 유저생성권한을 부여한후, SCOTT유저로 접속하여 유저를 생성하면 권한이 있으므로 새로운 유저를 생성할 수 있다. SQL> CONN SYSTEM/200901618 Conne...

2장_6절. 윈도우 함수(Window Function)

이미지
1.WINDOW FUNCTION 개요 -기존 데이터베이스는 칼럼과 칼럼간의 연산, 칼럼과 칼럼간의 비교(인라인뷰, 서브쿼리) 연결(JOIN), 집합(UNION,INTERSECT,..)에 대한 집계(그룹함수:ROLLUP, CUBE,GROUPING SETS)가 쉽다 -행과 행간의 연산, 행과 행간의 비교하는것은 하나의 SQL문으로 처리하는게 어렵다 -기존 데이터베이스에서 인라인뷰를 이용해 행과 행간의 연산을 하던거를 쉽게 만듬 함수가 WINDOW함수이다. -분석함수(ANALYTIC), 순위함수(RANK)로 알려져있다. -윈도우함수는 중첩해서 사용은 못한다. 하지만 서브쿼리는 사용할 수 있다. 1-(1)WINDOW FUNCTION 종류 ​(1)순위함수 : RANK, DENSE_RANK, ROW_NUMBER함수가 있다. (2)집계함수 : SUM, MAX, MIN, AVG, COUNT함수가 있다. (3)그룹내 행순서함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD함수가 있다. (4)그룹내 비율함수 : CUME_DIST, PERCENT_RANK(표준), NTILE(비표준), RATIO_TO_REPORT함수(ORACLE에서만지원) (5)통계분석함수 : 생략 1-(2)WINDOW FUNCTION 문법 -윈도우함수에는 OVER 키워드가 반드시 포함된다. SELECT WINDOW_FUNCTION(인수)  OVER ([파티션 BY 칼럼] [ORDER BY] [WINDOWING절]) FROM 테이블명; 2.그룹 내 순위함수 가.RANK함수 -ORDER BY를 포함한 쿼리문에서 특정 칼럼에 대한 순위를 구하는 함수 -특정 범위는 파티션으로 구분가능하다. DAFAULT값은 전체 행 대상이다 SQL> SELECT JOB, ENAME, SAL,   2   RANK() OVER (ORDER BY SAL DESC)  전체랭크, ...

2장_5절. 그룹함수(Group Function)

이미지
1. 데이터 분석 개요 1)Aggregate Function -GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류된다. -COUNT, SUM, AVG, MAX, MIN과 각종 집계함수가 포함된다. 2)Group Function -결산 개념의 업무를 가지는 것들은 소계, 중계, 합계등 여러 레벨의 결산보고서가 중요하다. -그룹함수를 사용하면 하나의 sql로 테이블을 한 번만 읽어서 빠르게 원하는 정보를 찾을 수 있다. -Roll Up : 소그룹 간의 소계를 계산  // group by의 확장된 형태로 병렬수행이 가능하다 -Cube : Group by 항목들간 다 차원적인 소계를 계산  // 결합 가능한 모든 값에 대하여 집계를 생성할 수 있지만 시스템에 부하를 많이 준다. -Grouping Sets : 특정 항목에 대한 소계를 계산  // 원하는 부분의 소계만을 추출할 수 있다 . 3)Window Function -분석함수나 순위함수로 알려져있다. -데이터웨어하우스에서 발전한 기능이다. 2.Roll Up함수 -롤업에 지정된 그룹핑 컬럼의 리스트는 서브집계를 생성하기위해 사용된다. -그룹핑 컬럼의 수가 N일때 N+1레벨의 서브집계를 생성한다. -롤업의 인수는 계층구조로 인수의 순서가 바뀌면 수행결과도 바뀐다. 단계1. 일반적인 group by절 사용 -부서명과 업무명을 기준으로 사원수와 급여 합을 집계하라. (1)부서명기준 (2)업무명기준 (3)부서명+업무명기준 SQL> SELECT DNAME, JOB, COUNT(*) "총사원수", SUM(SAL) "총급여"   2  FROM EMP, DEPT   3  WHERE DEPT.DEPTNO = EMP.DEPTNO   4   GROUP BY DNAME, JOB; ...

2장_4절. 서브쿼리(Subquery)

이미지
#서브쿼리란 -서브쿼리란  하나의 SQL문안에 포함되어 있는 또 다른 SQL문 -서브쿼리는 메인쿼리에 포함되는 종속적인 관계 #서브쿼리와 조인 -조인과 서브쿼리를 논리적으로 구분하는 가장 좋은 방법은  두 개의 테이블 위치를 바꾸어 보는것 -조인은 두개의 테이블 위치를 바꾸어도 같은결과 / 서브쿼리는 주종관계이므로 다른결과 -조인은 집합간의 곱의 관계(M*N레벨 집합생성) / 서브쿼리는 항상 메인쿼리 레벨로 결과집합 생성 #질의결과에 서브쿼리 칼럼을 표시 -서브쿼리는 메인쿼리의 칼럼을 모두사용가능 / 메인쿼리는 서브쿼리의 칼럼을 사용할수 없음 (1)조인방식으로 변환 (2)함수 사용 (3) 스칼라 서브쿼리  사용 #서브쿼리가 SQL문에서 사용가능한 곳 -SELECT절, FROM절, WHERE절, HAVING절, ORDER BY절 -INSERT문의 VALUES절, UPDATE문의 SET절 #동작하는 방식에 따른 서브쿼리 종류 (1)Un-Correlated(비연관) 서브쿼리 -서브쿼리가 메인쿼리의 칼럼을 가지고 있지 않음 -메인쿼리에 값을 제공하기 위한 목적 (2)Correlated(연관) 서브쿼리 -서브쿼리가 메인쿼리의 칼럼을 가지고 있음 #반환 데이터 형태에 따른 서브쿼리 종류 (1)Single Row(단일행) 서브쿼리 : 실행결과가 1건 이하 (단일  비교연산자 : =,<,<=,>,>=,<>) (2)Multi Row(다중행) 서브쿼리 : 실행결과가 여러건 (다중  비교연산자 : IN,ALL,ANY,SOME, EXISTS) (3)Multi Column(다중칼럼) 서브쿼리 : 실행결과가 여러칼럼을 반환 -메인쿼리의  조건절에 여러 칼럼을 동시에 비교 할 수 있다. -메인쿼리와 서브쿼리의   비교하고자  하는 칼럼수, 칼럼위치가 동일 해야 한다. ...