본문 바로가기

SQL/SQLD (개발자)

(21)
2-2. SQL 활용_(3)계층형 질의와 셀프 조인 제3절 계층형 질의와 셀프 조인 1. 계층형 질의 - 테이블에 계층형 데이터를 조회하는 방법 - 계층형 데이터: 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터 가. Oracle 계층형 질의 # Oracle 계층형 질의 구문 SELECT 컬럼 FROM 테이블 WHERE 조건1 AND 조건2 START WITH 조건 #시작 위치 지정 CONNECT BY [NOCYCLE] 조건 #자식 데이터를 지정 #NOCYCLE를 추가하면 사이클이 발생한 이후의 데이터는 전개하지 않음 ORDER SIBLINGS BY 컬럼 #형제 노드(동일 LEVEL) 사이에서 정렬을 수행 나. SQL Server 계층형 질의 - CTE(Common Table Expression) 를 재귀 호출함 2. 셀프 조인(Self Jo..
2-2. SQL 활용_(2)집합 연산자(SET OPERATOR) 제2절 집합 연산자(SET OPERATOR) 1. 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 2. 집합 연산자를 사용하기 위해서는 다음 제약조건 - SELECT 절의 칼럼 수가 동일 - SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능 3. 집합 연산자의 종류 1) 합집합 (UNION/UNION ALL) 2) 교집합 (INTERSECT) 3) 차집합(EXCEPT)
2-2. SQL 활용_(1)표준 조인(STANDARD JOIN) 제1절 표준 조인(STANDARD JOIN) 1. STANDARD SQL 개요 - ANSI/ISO SQL 표준을 통해 STANDARD JOIN을 포함한 많은 기능이 상호 벤치마킹하고 발전하면서 DBMS 간에 평준화를 이루고 있음 가. 일반 집합 연산자 일반 집합 연산자 현재의 SQL UNION UNION INTERSECTION INTERSECT DIFFERENCE EXCEPT(Oracle은 MINUS) PRODUCT CROSS JOIN 나. 순수 관계 연산자 일반 집합 연산자 현재의 SQL SELECT WHERE 절 PROJECT SELECT 절 (NATURAL) JOIN JOIN DIVIDE 현재 없어짐 2. FROM 절 JOIN 형태 3. INNER JOIN - 내부 JOIN이라고 하며, JOIN 조..
2-1. SQL 기본_(9)조인(JOIN) 제9절 조인(JOIN) 1. JOIN 개요 - 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것 - PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립 2. EQUI JOIN - 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용 - 대부분 PK ↔ FK의 관계를 기반 - 주로 ON절을 사용하여 JOIN 실행 # JOIN 기본 구조 # [테이블1.컬럼1] 은 테이블1에 포함된 컬럼1을 추출하는 방식 # 1) WHERE절을 사용하는 경우 SELECT 테이블1.컬럼1, 테이블2.컬럼2 # 세번째 실행 FROM 테이블1, 테이블2 # 첫번째 실행 WHERE 테이블1.컬럼 = 테이블2.컬럼 # 두번째 실행 # 2) ON절을 사용하는 경..
2-1. SQL 기본_(8)ORDER BY 절 제8절 ORDER BY 절 1. ORDER BY 정렬 - 특정 컬럼을 기준으로 정렬하여 출력 - 문자, 숫자, 날짜 등 정렬 가능 # ORDER BY 절 기본 구조 SELECT DISTINCT 컬럼1, 컬럼2 # 다섯번째 실행 FROM 테이블명 # 첫번째 실행 WHERE 조건 # 두번째 실행 GROUP BY 컬럼1, 컬럼2 # 세번째 실행 HAVING 조건 # 네번째 실행 ORDER BY 컬럼 #여섯번째 실행 SELECT BillingCountry , SUM(Total) AS SUM_Country FROM Invoice WHERE InvoiceDate BETWEEN '2007-01-01' AND '2007-12-31' GROUP BY BillingCountry ORDER BY SUM_Country # 기..
2-1. SQL 기본_(7)GROUP BY, HAVING 절 제7절 GROUP BY, HAVING 절 1. 집계 함수(Aggregate Function) - 그룹당 단 하나의 결과를 추출하는 함수 - GROUP BY 절은 행들을 소그룹화 - SELECT 절, HAVING 절, ORDER BY 절에 사용 집계 함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 개수 COUNT(컬럼1) 컬럼1에서 NULL을 제외한 행의 개수 SUM(컬럼1) SUM(DISTINCT 컬럼1) 컬럼1에서 NULL을 제외한 행의 합계 AVG(컬럼1) AVG(DISTINCT 컬럼1) 컬럼1에서 NULL을 제외한 행의 평균 MAX(컬럼1) MAX(DISTINCT 컬럼1) 컬럼1에서 최대값 (문자, 날짜도 사용가능) MIN(컬럼1) MIN(DISTINCT 컬럼1) 컬럼1에서 최소값 (문자..
2-1. SQL 기본_(6)함수(FUNCTION) 제6절 함수(FUNCTION) 1. 내장 함수(BUILT-IN FUNCTION) 개요: 벤더(DBMS)에서 제공하여 내장된 함수 가. 단일행 함수(Single-Row Function) - 문자형, 숫자형, 날짜형, 변환형, NULL관련함수 나. 다중행 함수(Multi-Row Function) - 집계 함수(Aggregate Function), 그룹 함수(Group Function), 윈도우 함수(Window Function) 2. 문자형 함수 문자형 함수 함수 설명 LOWER(문자열) 문자열의 알파벳을 소문자 변경 UPPER(문자열) 문자열의 알파벳을 대문자 변경 CONCAT(문자열1, 문자열2) 문자열1 || 문자열2 문자열1 + 문자열2 문자열1과 문자열2를 연결, ||(파이프라인), + 연결과 동일..
2-1. SQL 기본_(5)WHERE 절 제5절 WHERE 절 1. WHERE 조건절 개요 - SELECT 과 FROM 절에서 자료를 제한할 때 사용 - FTS(Full Table Scan): WHERE 조건 없이 테이블 전체를 추출하는 것 # WHERE절의 기본 구조 # SELECT와 FROM이 나온 다음에 사용한다. SELECT 칼럼명 FROM 테이블명 WHERE 조건식 ; - WHERE 절에 사용할 수 있는 조건 가. 칼럼(Column)명 (보통 조건식의 좌측에 위치) 나. 비교 연산자 다. 문자, 숫자, 표현식 (보통 조건식의 우측에 위치) 라. 비교 칼럼명 (JOIN 사용시) # Invoice라는 테이블 조회하기 SELECT InvoiceId, InvoiceDate, BillingCity, BillingCountry, Total FRO..