본문 바로가기

분류 전체보기

(357)
[SQLD : Ⅳ. SQL 활용] 3. 계층형 질의와 셀프 조인 * 계층형 질의 - 테이블에 계층형 데이터 존재 시 데이터를 조회하기 위해 계층형 질의 사용 - 계층형 데이터는 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터 - 엔티티를 순환관계 데이터 모델로 설계할 경우 계층형 데이터 발생 - 순환관계 데이터 모델의 예로 조직, 사원, 메뉴가 있음 - 계층형 구조에서 A읭 하위 사원은 B,C 이고 B 하위사원은 없음 * 오라클 계층형 질의 - START WITH절 : 계층 구조 전개의 시작 위치를 지정하는 구문. 즉, 루트 데이터를 지정한다.(액세스) - CONNECT BY절 : 다음에 전개될 자식 데이터를 지정하는 구문. 자식 데이터는 CONNECT BY절에 주어진 조건을 만족해야 함.(조인) - PRIOR : CONNECT BY절에 사용되며, 현재 ..
[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 ..
[SQLD : Ⅲ. SQL 기본] 9. 조인 * JOIN 개요 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것을 JOIN이라고 하며, 일반적으로 사용되는 SQL 문장의 상당수가 JOIN 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립 FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다 * EQUI JOIN EQUI(등가) JOIN은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법 대부분 PK ↔ FK의 관계를 기반으로 함 반드시 PK ↔ FK의 관계로만 EQUI JOIN이 성립하는 것은 아님 계층형(Hierarchical)이나 망형(Network) 데이터베이스와 비교해서 ..
[SQLD : Ⅲ. SQL 기본] 8. ORDER BY 절 * ORDER BY 정렬 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용 칼럼(Column)명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능 별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용 SELECT 칼럼명 [ALIAS명] FROM 테이블명 [WHERE 조건식] [GROUP BY 칼럼(Column)이나 표현식] [HAVING 그룹조건식] [ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]] ; ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬한다.(기본 값이므로 생략 가능) DESC(Descending) : 조회한 데이터를 내림차순으로 정렬한다. [예제] O..
[SQLD : Ⅲ. SQL 기본] 7. GROUP BY, HAVING 절 * 집계 함수 - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다. - GROUP BY 절은 행들을 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있다. 집계 함수명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) - ALL : Default 옵션이므로 생략 가능함 - DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션임 [예제] 일반적으로 집계 함수는 GROUP BY 절과 같이 사용되지만 아래와 같이 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로도 사용 가능하다. SELECT COUNT(*) "전체 행수", COUNT(HEIGHT) "키 건수", MAX(HEIGHT) 최대키, MIN(H..
[SQLD : Ⅲ. SQL 기본] 6. 함수 FUNCTION * 내장함수 BUILT IN FUNCTION 개요 - 함수는 벤더에서 제공하는 함수인 내장 함수와 사용자가 정의할 수 있는 함수로 나눔 - 내장 함수는 단일행 함수와 다중행 함수로 나눔 - 다중행 함수는 집계함수, 그룹함수, 윈도우 함수로 나눔 함수명 (칼럼이나 표현식 [, Arg1, Arg2, ... ]) - 단일행 함수는 처리하는 데이터 형식에 따라서 문자형, 숫자형, 날짜형, 변환형, NULL 관련 함수로 나눔 - 단일행 함수 특징 SELECT, WHERE, ORDER BY 절에 사용 가능 각 행들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각 행에 대한 조작 결과 리턴 여러 인자를 입력해도 단 하나의 결과만 리턴 함수의 인자로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수를 가지는 ..