분류 전체보기
SQLD 5-1 ] 옵티마이저와 실행계획
SQLD 5-1 ] 옵티마이저와 실행계획
2016.03.01옵티마이저 - 옵티마이저는 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다 여러개의 방법 중.. 음.. 이게 제일 좋겠군! 하고 결정하는애. 그런데, SQL 문을 실행 해보고 이게 빠르군. 저게 빠르군 하는게 아니라서.. 실행 하기 전에 결정해야 하는 어려움이 있다. 결정하는 방식에는 규칙기반 옵티마이저 / 비용기반 옵티마이저 로 구분할 수 있다. 현재 대부분은 비용기반 옵티마이저만 제공한다고 한다. 규칙기반 옵티마이저 - 규칙기반 옵티마이저는 규칙(우선 순위) 를 가지고 실행계획을 생성한다. 순위엑세스 기법설명1Single Row By RowidROWID에 의한 단일 로우2 Single Row By Cluster Join클러스터 조인에 의한 단일 로..
SQLD 4-8 ] 절차형 SQL
SQLD 4-8 ] 절차형 SQL
2016.02.29절차형 SQL 개요 - 일반적인 개발 언어처럼 SQL 도 절차 지향 적인 프로그램이 가능하도록 제공하고 있다. ORACLE : PL/SQL DB2 : PL/SQL SQL SERVER : T-SQL 절차형 SQL 을 이용하여 만들수 있는 저장 모듈인 PROCEDURE / USER DEFINED RUNCTION / TRIGGER 에 대해 알아보자! PL/SQL - BLOCK 구조로 되어 있고, BLOCK 내에는 DML 문장과, QUERY 문장, 절차형 언어(IF, LOOP) 등을 사용할 수 있다. 1. PL/SQL 은 BLOCK 구조로 되어 있어 각 기능별 모듈화가 가능하다 2. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다 3. IF, LOOP 등의 절차형 언어를 ..
SQLD 4-7 ] DCL (DATA CONTROL LANGUAGE)
SQLD 4-7 ] DCL (DATA CONTROL LANGUAGE)
2016.02.29DCL 이란? - 유저를 생성하고 권한을 제어할 수 있는 명령어. (지금까지 해왔던 걸 보면. DDL/DML/TCL 이 있었지.) 유저와 권한 - 보안을 위해서 새로운 유저를 생성해서 그 유저에게 권한 주고 뭐 이런건데 (관리자를 그냥 알려줄순 없어서..) ORACLE 에서 기본적으로 제공되는 유저들인 SYS, STSTEM, SCOTT 유저가 있다. 지금 쓰고 있는 슈퍼관리자 는 SYSTEM 이고. 추가로 SCOTT, SYS 가 있었네.ORACLE 과 SQL SERVER 의 사용자에 대한 아키텍쳐는 다른 면이 많다. ORACLE - 유저를 통해 데이터베이스에 접속. 아이디와 비밀번호 방식으로 데이터베이스의 인스턴스에 접속을 한다.유저에 해당하는 권한을 부여받는다. 구역마다 다른 ..
SQLD 4-6 ] 윈도우 함수(WINDOW FUNCTION)
SQLD 4-6 ] 윈도우 함수(WINDOW FUNCTION)
2016.02.29WINDOW FUNCTION - 칼럼과 칼럼과의 연산, 비교, 연결 집합 등 은 쉬운데.. 행과 행간의 관계 정의하거나 비교, 연산 하려고 만들었다! - 분석함수 나 순위함수 로도 알려졌다. - 중첩(NEST) 해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있다! 윈도우함수의 종류 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 / RAT..
SQLD 4-5 ] 그룹 함수(GROUP FUNCTION)
SQLD 4-5 ] 그룹 함수(GROUP FUNCTION)
2016.02.28데이터 분석 개요 - ANSI/ISO SQL 표준은 데이터 분석을 위해서 다음 세 가지 함수를 정의하고 있다. 1. AGGREGATE FUNCTION 2. GROUP FUNCTION 3. WINDOW FUNCTION 1. AGGREGATE FUNCTION - GROUP FUNCTION 의 한 부분. 그 앞에서 배웠던 집계 함수들. COUNT, SUM, AVG, MAX, MIN 같은거 .. 2. GROUP FUNCTION - 이제야 좀 그룹 다운 기능을 제공하나? 스케일이 좀 커지나..?? - 결산 개념의 업무를 가지는 원가/판매 시스템 에서 소계, 중계, 합계 등 - 그룹 함수를 사용한다면 하나의 SQL 로 테이블을 한번만 읽어서 빠르게 처리할 수 있다. - 종류는.. - ROLL..
SQLD 4-4 ] 서브쿼리
SQLD 4-4 ] 서브쿼리
2016.02.27서브쿼리 - SQL 문 안에 SQL 문. 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있지만, 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없다 서브쿼리를 쓸때 주의점1. 서브쿼리를 괄호호 감싸서 사용한다2. 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 단일 행 비교연산자는 서브쿼리의 결과가 반드시 1건 이하 이여야하고 복수 행 비교연산자는 서브쿼리의 결과 건수와 상관 없다.3. 서브쿼리에서는 ORDER BY 를 사용하지 못한다. ORDER BY 는 SELECT 절에서 오직 한 개만 올 수 있어서.. 메인 SELECT 의 마지막에 장식해야한다. 서브쿼리가 가능한 곳- SELECT 절- FROM 절- WHERE 절- HAVING 절- ORDER BY 절- INSERT 문의 VAL..
SQLD 4-3 ] 계층형 질의와 셀프 조인
SQLD 4-3 ] 계층형 질의와 셀프 조인
2016.02.27계층형 질의 - 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터 ? 그러니까, 한 테이블 내에서 사원 A 의 관리자 되는 사람은 지정 안되있고사원 B, 사원 C의 관리자는 사원 A 이다. ORACLE 계층형 질의 1. START WITH : 계층 구조 전개의 시작 위치를 지정하는 구문. (루트 데이터를 지정. 액세스)2. CONNECT BY : 다음에 전개될 자식 데이터를 지정하는 구문. 자식 데이터는 CONNECT BY 절에 있는 조건에 만족해야 한다.(조인)3. PRIOR : 저기엔 안나와있지만 CONNECT BY 절에 사용되며, 현재 읽은 칼럼을 지정한다. PRIOR 자식 = 부모 : 부모 -> 자식 방향으로 전개 PRIOR 부모 = 자식 : 자식 -> 부모 방향..
SQLD 4-2 ] 집합 연산자
SQLD 4-2 ] 집합 연산자
2016.02.26집합 연산자 (STANDARD JOIN) - 두 개 이상의 테이블에서 JOIN 을 사용하지 않고도 연관된 데이터를 조회할 수 있다고..?! - 집합 연산자를 이용하는 방법이다! 여러개의 질의의 결과를 연결하여 하나로 결합하는 방식. - SELECT 절의 칼럼 수가 동일하고 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 한다. 합집합 (UNION/UNION ALL)교집합 (INTERSECT)차집합 (EXCEPT) select 칼럼1, 칼럼2, ...from 테이블1where group byhavingselect 칼럼1, 칼럼2, ...from 테이블2wheregroup byhavingorder by 1, 2;아 이렇게 select 덩어리가 2개 이상 인 거의..
SQLD 4-1 ] 표준 조인
SQLD 4-1 ] 표준 조인
2016.02.25표준 조인 (STANDARD JOIN) - 사용자는 테이블간의 JOIN 조건을 FROM 절에서 명시적으로 정의할 수 있다 - 대표적인 ANSI/ISO 표준 SQL 의 기능 1. STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들) 2. SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들 3. ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능 4. WINDOW FUNCTION 같은 새로운 개념의 분석 기능들 뭐. 이런 기능들이 요즘 표준으로 기준된 SQL 의 기능들인가 보다. 이게 시험에 나왔다고 한다...;; 이걸 왜.. 1970년 : Dr. E.F.Codd 관계형 DBMS..
SQLD 3-9 ] JOIN
SQLD 3-9 ] JOIN
2016.02.25JOIN - 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력 - 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능! EQUI JOIN - 두 개의 테이블 간에 칼럼 값들이 서로 정확히 일치하는 경우. PK FK 의 관계. = 연산자를 사용해서 표현한다 방법 1. where 에 join 조건 쓰기select 테이블1.칼럼명, 테이블2.칼럼명 .. from 테이블1, 테이블2 where 테이블1.칼럼명 = 테이블2.칼럼명; 방법 2. from 에 inner join 과 where 대신 on 절 쓰기select 테이블1.칼럼명, 테이블2.칼럼명 .. from 테이블1 INNER JOIN 테이블2 on 테이블1.칼럼명 = 테이블2.칼럼명; 두개 다 같은 말이다. 사용법이 다르다..
SQLD 3-8 ] ORDER BY
SQLD 3-8 ] ORDER BY
2016.02.25ORDER BY 정렬 - 조회된 데이터들을 정렬하여 출력한다! select 칼럼명from 테이블명where 조건식group by 칼럼이나 표현식having 그룹조건식order by 칼럼이나 표현식 (ASC/DESC); order by 를 새로 알게됬다. SQL 문장의 맨 마지막 에 위치하는 애다.ASC / DESC 옵션. ASC: 오름차순으로 정렬 (기본값이므로 생략 됨!)DESC : 내림차순 정렬 select PLAYER_NAME as 선수명, POSITION as 포지션, BACK_NO as 백넘버from PLAYERorder by PLAYER_NAME desc; player_name 을 내림차순으로 정렬했다. player_name 의 별명은 선수명. player_name 대신 별명 선수명을 써도 ..
SQLD 3-7 ] GROUP BY, HAVING 절
SQLD 3-7 ] GROUP BY, HAVING 절
2016.02.24집계 함수 (Aggregate Function) - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수. - GROUP BY 절의 행들은 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있다. 집계함수명 ( [DISTINCT/ALL] 칼럼이나 표현식 ) DISTINCT 옵션과 ALL 옵션은 그 결과들 중복된거 한번만 표시할껀지 그냥 다 표시할껀지 선택하는거. 일반적으로 집계 함수 들은 GROUP BY 절과 같이 사용되지만 아래와 같이 테이블 전체가 하나의 그룹이 되는 경우에는GROUP BY 절 없이 단독으로도 사용 가능하다 SELECT COUNT(*) "전체 행수", COUNT(HEIGHT) "키 건수", MAX(HEIGHT) 최대키, MIN..