no image
[SQLD] 4-4. SQL 활용 - 서브쿼리, 단일행 서브쿼리, 다중행 서브 쿼리, 다중 컬럼 서브 쿼리, 연관 서브 쿼리, 기타 서브 쿼리, 뷰(view)
A. 서브쿼리 - 서브쿼리 개요하나의 SQL문안에 포함되어 있는 또 다른 SQL문서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있음메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음질의 결과에 서브쿼리 칼럼을 표시해야 한다면 조인 방식으로 변환, 함수, 스칼라 서브쿼리(Scalar Subquery)를 사용서브쿼리는 서브쿼리 레벨과는 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성 - 서브쿼리 주의사항괄호를 사용하여 서브쿼리 표시서브쿼리는 단일 행(Single Row)/복수 행(Multiple Row) 비교 연산자와 함께 사용단일 행 비교 연산자는 서브쿼리의 결과가 1 건 이하복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관없음서브쿼리에서는 ORDER BY를 사용하지 못함 - 서브쿼리 사용 위치SELECT 절FR..
2024.10.22
no image
[SQLD] 4-3. SQL 활용 - 계층형 질의(Hierarchical Query), Oracle 계층형 질의, 질의 함수, SQL Server 계층형 질의, SELF JOIN
A. 계층형 질의 1. 계층형 질의(Hierarchical Query)를 사용2. 계층형 데이터는 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터3. 엔터티를 순환관계 데이터 모델로 설계할 경우 계층형 데이터가 발생4. 계층형 데이터 조회는 DBMS 벤더와 버전에 따라 다른 방법으로 지원   B. Oracle 계층형 질의      C. Oracle 계층형 질의 함수     D. SQL Server 계층형 질의 1. CTE(Common Table Expression)를 재귀 호출2. WITH 절의 CTE 쿼리를 보면, UNION ALL 연산자로 쿼리 두 개를 결합3. 위에 있는 쿼리를 '앵커 멤버’ (Anchor Member)4. 아래에 있는 쿼리를 '재귀 멤버’ (Recursive Membe..
2024.10.22
no image
[SQLD] 4-2. SQL 활용 - 집합연산자(SET OPERATION) 개요, 종류, 사용법
A. 집합 연산자(SET OPERATION) 개요 1) 집합 연산자 개념1. JOIN과 더불어 두 개 이상의 테이블에서 데이터를 조회하는 방법2. 여러 개의 질의의 결과를 연결하여 하나로 결합3. 2개 이상의 질의 결과를 하나의 결과로 리턴 2) 집합 연산자 사용1. 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때2. 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때3. 튜닝관점에서 실행계획을 분리 3) 집합 연산자 유의점1. SELECT 절의 칼럼 수가 동일해야 함2. SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 함3. ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬 처리로 마지막 줄에 한 번만 기술..
2024.10.22
no image
[SQLD] 4-1. SQL 활용 - 표준 조인, Standard SQL, Inner Join, Natural Join, Using Join, Cross Join, Outer Join
A. STANDARD SQL 개요1. 관계형 데이터베이스를 유일하게 접속할 수 있는 언어가 SQL2. 벤더별로 일부 기능의 개발이 진행 중인 경우도 있고 벤더별로 특이한 기술 용어는 여전히 호환이 안 되고 있음3. ANSI/ISO SQL 표준을 통해 STANDARD JOIN을 포함한 많은 기능이 상호 벤치마킹하면서 DBMS 간 평준화됨  B. 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 같은 새로운 개념..
2024.10.22
[SQLD] 3-10. SQL 기본 - 예상문제풀이 (Question&Answer)
문제 1. 다음 설명 중 맞는 것은 무엇인가?① 데이터베이스에는 단 한 개의 테이블만 존재할 수 있다.② 데이터베이스 내에 테이블이란 존재하지 않는다.③ 아주 복잡한 자료도 테이블은 하나만 만드는 것이 바람직하다.④ 모든 자료는 실질적으로 테이블에 저장이 되며, 테이블에 있는 자료들을 꺼내 볼 수 있다.  문제 2. 데이터 유형에 대한 설명 중 틀린 것은 무엇인가?① CHAR 유형은 고정 길이 문자형이다.② VARCHAR 유형은 가변 길이 숫자형이다.③ NUMERIC 유형은 숫자형 데이터를 표현한다.④ DATE 유형은 날짜 데이터를 다룰 때 사용한다.   문제 3. 다음 중 테이블 명으로 가능한 것은 무엇인가?① EMP100②100EMP③ EMP-100④ 100_EMP  문제 4. 데이터를 입력하기 위해..
2024.10.21
no image
[SQLD] 3-9. SQL 기본 - 조인(JOIN), EQUI JOIN, JOIN 구문 주의 사항
A. 조인(JOIN)이란? 1. 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것2. 관계형 데이터 베이스의 가장 큰 장점이며 대표적인 핵심 기능3. 일반적인 경우 행들은 PK나 FK 값의 연관에 의해 조인이 성립4. 쿼리 성능에 지대한 영향을 미치므로 튜닝 포인트가 될 수 있음5. 조인에는 EQUI JOIN(등가 조인), NON EQUI JOIN(비 등가 조인) 존재    B. EQUI JOIN 1. 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법2. 일반적으로 PK와 FK의 관계를 기반3. 일부 EQUI JOIN은 PK와 FK의 관계가 성립되지 않을 수 도 있음4. JOIN의 조건은 WHERE 절에 기술하여 “=” 연산자를 사용   C. EQUI JOI..
2024.10.21
no image
[SQLD] 3-8. SQL 기본 - OrderBy정렬, SELECT 문장, ROWNUM, Top N 쿼리
A. ORDER BY 정렬 1. SQL 문장으로 조회된 데이터들을 특정 컬럼을 기준으로 정렬하여 출력2. 정렬 방식을 지정하지 않으면 오름차순이 적용3. 정렬 방식은 오름차순(ASC), 내림차순(DESC) 두 가지가 있음4. SQL 문장의 제일 마지막에 ORDER BY 절이 위치5. 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력6. 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 빠른 값이 먼저 출력7. Oracle 에서 NULL값은 가장 큰 값8. SQL Server 에서는 NULL 값은 가장 작은 값9. ORDER BY 에 칼럼 대신 SELECT에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능   B. SELECT 문장 실행 순서   C...
2024.10.21
no image
[SQLD] 3-7. SQL 기본 - GroupBy절, 집계 함수, HAVING절, NULL처리
A. 집계 함수(Aggregate Function)1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수2. GROUP BY 절은 행들을 소그룹화3. SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있음4. 그룹에 대한 정보를 제공하므로 주로 숫자 유형에 사용5. MAX, MIN, COUNT 함수는 문자, 날짜 유형에도 적용이 가능6. 집계 함수는 GROUP BY 절과 같이 사용7. 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로도 사용 가능8. SELECT절, HAVING, ORDER BY 절에 사용할 수 있음   B. 집계 함수(Aggregate Function) 종류집계 함수사용 목적COUNT(*)NULL 값을 포함한 행의 수를 출력한..
2024.10.21
no image
[SQLD] 3-6. SQL 기본 - SQL함수, 단일행함수, 문자형함수, 숫자형함수, 날짜형함수, 데이터유형변환, CASE표현, NULL 특성 및 연산, NULL 함수
A. SQL 함수 개요 1. 벤더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)로 분류2. 내장 함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는 데 사용3. 함수는 입력되는 값이 많아도 출력은 하나만 리턴   B. 단일행 함수 개요1. 처리하는 데이터의 형식에 따라서 문자형, 숫자형,날짜형, 변환형,NULL 관련 함수로 나눌 수 있음2. SELECT, WHERE, ORDER BY 절에 사용 가능3. 각 행(Row)들에 대해 적용되어 데이터 값을 조작하고, 각각의 행에 대한 결과값을 리턴4. 여러 인자(Argument)를 입력해도 단 하나의 결과만 리턴5. 함수의 인자(Arguments)로 상수/..
2024.10.21