728x90
1. 데이터베이스 논리모델?
- 논리적 모델은 비즈니스 정보의 논리적 구조 및 구축을 파악할 수도 있다.
즉, 핵심 Entity와 키 Entity들을 식별하고 모델링하여 데이터베이스 구조를 모델링한다.
2. ERD에 대한 설명?
- 이용내역 Entity에서 "이용일자 + 사원번호 가 기본키(PK)이므로 일자가 같은 날에 여러 콘도를 이용할 수 없다"
- 사원, 이용내역(1 : M) -> 1명의 사원은 이용내역이 있을수도 있고 없을수도 있다.
- 콘도이용정보, 이용 내역(1 : 0 or 1 : 1) : M -> 콘도 이용정보가 있을수도 있고 없을수도 있으며 콘도 이용정보가 이용내역에 있을수도 있고 없을수도 있다.
3. 릴레이션을 정규화(Normalization)하는 목적?
- 정규화는 함수적 종속성에 따라서 테이블을 분해하는 과정으로 데이터 중복을 제거해서 모델의 독립성을 향상시킨다.
- 정규화를 수행하지 않으면 발생되는 문제가 갱신이상 삽입, 삭제, 수정이다.
- 데이터베이스 보안과 관련이 있는 것은 뷰(View)이다.
4. Entity, 관계, 속성?
- 엔티티의 특징
- 식별자 : 엔티티는 유일한 식별자가 있어야 한다.
- 인스턴스 집합 : 2개 이상의 인스턴스가 있어야 한다.
- 속성 : 엔티티는 반드시 속성을 가지고 있다.
- 관계 : 엔티티는 다른 엔티티와 최소 한 개 이상 관계가 있어야 한다. 엔티티의 관계 -> 집합과 집합간의 관계.
- 업무 : 엔티티는 업무에서 관리되어야 하는 집합이다.
- 식별자 : 엔티티는 유일한 식별자가 있어야 한다.
- 엔티티의 종류
- 독립 엔티티(Kernel Entity, Master Entity) : 사람, 물건, 장소 등과 같이 현실세계에 존재하는 엔티티.
- 업무중심 엔티티(Transaction Entity) : Transaction이 실행되면서 발생하는 엔티티.
- 종속 엔티티(Dependent Entity) : 주로 1차 정규화로 인해 관련 중심엔티티로부터 분리된 엔티티.
- 교차 엔티티(Intersaction Entity) : (M : M)의 관계를 해소하려는 목적으로 만들어진 엔티티.
- 독립 엔티티(Kernel Entity, Master Entity) : 사람, 물건, 장소 등과 같이 현실세계에 존재하는 엔티티.
- 유형, 무형 엔티티 종류
- 유형 엔티티 : 업무에서 도출되며 지속적으로 사용되는 엔티티.
- 개념 엔티티 : 개념적으로 사용되는 엔티티, 유형 엔티티는 물리적으로 형태가 있지만, 개념 엔티티는 물리적 형태가 없다.
- 사건 엔티티 : 비즈니스 프로세스를 실행하면서 생성되는 엔티티.
- 유형 엔티티 : 업무에서 도출되며 지속적으로 사용되는 엔티티.
- 발생시점에 따른 엔티티 종류
- 기본 엔티티(Basic Entity) : 다른 엔티티로부터 영향을 받지 않고 독립적으로 생성되는 엔티티, 키 엔티티(Key Entity)라고도 한다.
- 중심 엔티티(Main Entity) : 기본 엔티티와 행위 엔티티 간의 중간에 있는 엔티티, 기본 엔티티로부터 발생되고 행위 엔티티를 생성하는 엔티티.
- 행위 엔티티(Active Entity) : 2개 이상의 엔티티로부터 발생하는 엔티티, 지속적으로 정보가 추가되고 변경되는 엔티티
- 기본 엔티티(Basic Entity) : 다른 엔티티로부터 영향을 받지 않고 독립적으로 생성되는 엔티티, 키 엔티티(Key Entity)라고도 한다.
5. ERD에 대한 설명?
- 상품은 주문을 한 개 이상 반드시 가져야 하는 것이 아니라 안 가질 수도 있다.
- ERD 식별관계에서 O은 '있을수도 있고, 없을수도 있다'라는 의미를 가진다.
6. 알맞은 ERD 표기법은?
- ERD 표기법 중 IE 표기법은 관계의 1 : N 관계에서 N쪽에 새발을 표시하고 선택, 필수 참여관계에서 선택 참여(or)에 O,필수 참여에 | 로 표시한다.
7. 어떤 주식별자의 특징인가?
- 같은 학년은 입학 날짜가 모두 같게 생성되기 때문에 뒤에 같은 값이 붙음으로써 최소의 수가 아니므로 잘못된 모델링이다.
- 식별자의 특징
- 유일성 : 주식별자에 의해 엔티티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 최소성 : 주식벼려자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 불변성 : 지정된 주식별자 값은 자주 변하지 않는 것이어야 한다.
- 존재성 : 주식별자가 지정이 되면 반드시 값이 들어와아 한다.(NOT NULL이어야 한다.)
- 유일성 : 주식별자에 의해 엔티티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 식별자의 분류
- 대표성 여부
- 주식별자 : 엔티티 내에서 각 행을 구분할 수 있는 구분자이며, 타 엔티티와 참조관계를 연결할 수 있는 식별자이다.
- 보조식별자 : 엔티티 내에서 각 행을 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못한다. - 스스로 생성여부
- 내부식별자 : 인티티 내부에서 스스로 만들어지는 식별자이다.
- 외부식별자 : 타 엔티티와의 관계를 통해 타 엔티티로부터 받아오는 식별자이다. - 속성의 수
- 단일식별자 : 하나의 속성으로 구성된 식별자이다.
- 복합식별자 : 둘 이상의 속성으로 구성된 식별자이다. - 대체여부
- 본질식별자 : 업무(비지니스)에 의해 말들어지는 식별자이다.
- 인조식별자 : 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자이다.
- 대표성 여부
8. SQL 문의 결과?
- CONNECT BY -> 계층형 쿼리는 데이터를 선택하여 계층적인 순서 그대로 리턴하는데 사용된다.
- 현재 행과 다른 행은 PRIOR라는 키워드를 통해 구별된다.
PRIOR는 상위 행을 참조 하는 것으로 위의 SQL문에서는 '방금 전 행의 COL2 값이 현재 행의 COL1 값인 모든 행을 찾아라' 라는 의미이다. - WHERE 절에 COL3이 3인행은 제외 -> COL3 이 4인것부터 시작 -> CONNECT BY COL1 = PRIOR COL2
COL1 COL2 COL3
D B 4
A NULL 1
B A 2 이렇게 총 3개이다.
9. JOIN의 설명?(자주 보는 문제 보고 또 보고😛)
- 중첩 반복 조인(Nested Loop Join)
- 좁은 범위에 유리하다.
- 유리 순차적으로 처리하며, Random Access 위주이다.
- 후행(Driven) 테이블에는 조인을 위한 인덱스가 생성되어 있어야 한다.
- 실행속도 = 선행 테이블 사이즈 * 후행 테이블 접근횟수
- 좁은 범위에 유리하다.
- 색인된 중첩 반복 조인, 단일 반복 조인(Single Loop Join)
- 후행(Driven) 테이블의 조인 속성에 인덱스가 존재할 경우 사용한다.
- 선행 테이블의 각 레코드들에 대하여 후행 테이블의 인덱스 접근 구조를 사용하여 직접 검색 후 조인하는 방식이다.
- 후행(Driven) 테이블의 조인 속성에 인덱스가 존재할 경우 사용한다.
- 정렬 합병 조인(Sort Merge Join)
- Sort Merge Join은 해당 테이블의 인덱스가 없을 때 수행이 된다.
- 테이블을 정렬(Sort)한 후에 정렬된 테이블을 병합(Merge)하면서 조인을 실행한다.
- 조인 연결고리의 비교 연산자가 범위 연산(>, <)인 경우 Nested Loop Join보다 유리하다.
- 두 결과 집합의 크기가 차이가 많이 나는 경우에는 비효율적이다.
- Sort Merge Join은 해당 테이블의 인덱스가 없을 때 수행이 된다.
- 해시 조인(Hash Join)
- 해시 함수를 사용하여 두 테이블의 자료를 결합하는 조인 방식이다.
- Nested Loop Join, Sort Merge Join의 문제점을 해결한다.
- 대용량 테이터 처리는 상당히 큰 Hash Area를 필요로 함으로, 메모리의 지나친 사용으로 오버헤드 발생 가능성이 있다.
- 해시 함수를 사용하여 두 테이블의 자료를 결합하는 조인 방식이다.
10. SQL명령어?
- DDL(데이터 정의어) : CREATE, DROP, MODIFY(ORACLE), ALTER(SQL SERVER), RENAME, TRUNCATE
- DML(데이터 조작어) : SELECT, INSERT, DELETE, UPDATE
- DCL(데이터 제어어) : GRANT, REVOKE
- TCL(트랜잭션 제어어) : COMMIT, ROLLBACK, SAVE POINT
11. SQL 문의 빈칸에 맞는것은?
- DNAME, JOB별 소계 -> DNAME별 소계 -> JOB별 소계 -> 전체 집계
- ROLLUP
- 전체 합계와 소그룹 간의 소계를 계산하는 ROLLUP 함수
- GROUP BY ROLLUP(DEPTNO)
-> DEPTNO 합계(소계), 전체 합계를 조회
- 전체 합계와 소그룹 간의 소계를 계산하는 ROLLUP 함수
- CUBE
- CUBE는 제시한 컬럼에 대해서 결합 가능한 모든 집계를 계산한다.
- 다차원 집계를 제공하여 다양하게 데이터를 분석할 수 있다.
- GROUP BY CUBE(DEPTNO, JOB)
-> DEPTNO 합계, JOB 합계, DEPTNO & JOB 합계, 전체 합계를 조회
-> 조합할 수 있는 모든 경우의 수가 조합된다.(시스템에 부하를 많이 주는 단점이 있다.)
- CUBE는 제시한 컬럼에 대해서 결합 가능한 모든 집계를 계산한다.
- GROUPING SET
- 원하는 부분의 소계만 손쉽게 추출하여 계산할 수 있는 GROUPING SETS함수
12. PL / SQL?
- PL / SQL은 절차형 언어로 PL / SQL 내부에서 테이블을 생성할 수 있다.
- PL / SQL 내부에서 테이블을 생성하는 이유는 임시 테이블로 잠깐 사용하기 위한 용도가 많다.
- PL / SQL에서 조건문은 IF ~ THEN ~ ELSE IF ~ END IF와 CASE ~ WHEN을 사용한다.
- PL / SQL에서 NAME이라는 변수에 'aaa'를 대입할 경우 ":="을 사용한다.
13. 인덱스 생성 구문?
- 인덱스 생성 / 삭제 구문
- 생성 : CREATE INDEX 인덱스명 ON 테이블명(속성명 등등)
- 삭제 : DROP INDEX 인덱스명 ON 테이블명
- 생성 : CREATE INDEX 인덱스명 ON 테이블명(속성명 등등)
- 인덱스 수정
- 수정 : 인덱스 삭제 후 다시 만들어주는 방법을 사용해야 한다.
- 수정 : 인덱스 삭제 후 다시 만들어주는 방법을 사용해야 한다.
- 인덱스 조회
- SELECT 테이블명, 인덱스명, 컬럼명
FROM ALL_IND_COLUMNS
WHERE TABLE_NAME = '테이블명'
- SELECT 테이블명, 인덱스명, 컬럼명
14. 사원이 한명도 없는 부서(DEPTNO)를 검색하는 질의를 작성했을때, 거리가 먼 것은?
- <>(같지 않은), ANY(다수의 비교값 중 하나라도 만족하면 TRUE)이다.
- EMP 테이블에 DEPTNO(10, 20, 30), DEPT 테이블에 DEPTNO(10, 20, 30, 40) 라는 데이터가 있다고 가정했을 때
- WHERE DEPNTO NOT IN(SELECT DEPTNO FROM EMP);
-> DEPT테이블에 DEPTNO 중에 10, 20, 30을 제외하고 출력한다. - WHERE NOT EXISTS (SELECT * FROM EMP B WHERE A.DEPTNO = B.DEPTNO);
-> DEPT 테이블에 DEPTNO 주우에 10, 20, 30이 아닌것을 출력한다. - RIGHT OUTER JOIN DEPT B ON A.DEPTNO = B.DEPTNO WHERE EMPNO IS NULL;
-> DEPT 테이블의 전체 DEPTNO와 DEPT 테이블 DEPTNO 와 같은 EMP 테이블 DEPTNO 중에 EMP 테이블의 EMPNO 값이 NULL인 DEPT 테이블의 DEPTNO을 출력한다. - WHERE DEPTNO <> ANY (SELECT DEPTNO FROM EMP);
-> DEPT 테이블에 DEPTNO 중에 DEPTNO 이 ANY의 비교값과 다르면 출력한다.
- WHERE DEPNTO NOT IN(SELECT DEPTNO FROM EMP);
15. 인덱스에 의하여 검색속도를 향상시킬 수 있는 질의로 적절하지 않은 것은?
- 인덱스에 대해서 연산을 하면 인덱스가 변형이 되므로 인덱스를 사용할 수 없다.
따라서 2번에서 '-' 연산은 할 수 없다.
16. 분산 데이터베이스?
- 분산 데이터베이스의 특징
- 분산 데이터베이스는 여러개의 데이터 베이스를 병렬적으로 실행하여 성능을 향상시킨다.
- 분산 데이터베이스는 네트워크를 통해서 여러개의 데이터베이스를 물리적으로 분리한 데이터베이스이다.
- 분산 데이터베이스는 여러개의 데이터 베이스를 병렬적으로 실행하여 성능을 향상시킨다.
- 분산 데이터베이스의 장점
- 데이터베이스 신뢰성과 가용성이 높다.
- 분산 데이터베이스가 병렬 처리를 수행하기 때문에 빠른 응답이 가능하다.
- 분산 데이터베이스를 추가하여 시스템 용량 확장이 쉽다.
- 데이터베이스 신뢰성과 가용성이 높다.
- 분산 데이터베이스의 단점
- 데이터베이스가 여러 네트워크를 통해서 분리되어 있기 때문에 관리와 통제가 어렵다.
- 보안관리가 어렵다.
- 데이터 무결성 관리가 어렵다.
- 데이터베이스 설계가 복잡하다.
- 데이터베이스가 여러 네트워크를 통해서 분리되어 있기 때문에 관리와 통제가 어렵다.
17. 실행계획(Execution Plan)?
- 실행계획이란?
SQL을 실행하기 위한 절차와 방법을 의미한다. - SQL이 데이터베이스에서 실행될 때 실행 절차 및 방법을 표현하여 DBA에게 알려준다.
- SQL 개발자가 SQL을 작성하여 실행할 때, SQL을 어떻게 실행할 것인지를 계획하게 된다. 즉, SQL실행계획을 수립 후 SQL을 실행한다.
- 옵티마이저는 SQL의 실행계획을 수립(RULE, COST)하고 SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨이이다.
18. 인덱스에 대한 설명?
- 파티션 인덱스의 경우 파티션 키에 대해서 인덱스를 생성할 수 있고 파티션 키에 대해서 생성한 인덱스를 GLOBAL 인덱스라고 한다.
- 파티션이라는 것은 어떤 특정한 기준으로 분할하는 것이다.
- 인덱스는 순차인덱스, 결합인덱스, 비트맵, 클러스터, 해시인덱스가 있다.
- 인덱스의 수가 증가하면 입력과 삭제, 수정 속도가 저하될 수 있다.
- VARCHAR, CHAR, DATE, NUMBER 모두 인덱스 생성이 가능하다.
19. 연산자 우선순위?
- 산술 연산자(*, /, +, -)
- 연결 연산자(||)
- 비교 연산자(<, >, <=, =>, <>, =)
- IS NULL, LIKE, IN
- BETWEEN
- NOT 연산자
- AND 연산자
- OR 연산자
20. SELF JOIN의 경우?
- SELF JOIN은 동일한 테이블에서 발생하는 조인을 의미하며, FROM절에 동일한 데이블명이 두 번 이상 나타난다.
그리고 SELF JOIN을 하기 위해서 동일한 테이블을 두 번 이상 사용하므로 FROM절에 별칭(Alias)을 사용해야 한다.
21. SQL 문의 수행결과?
- SELECT * FROM [테이블명] WHERE LIKE [조건]
- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%'
-> A로 시작하는 문자 찾기 - SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A'
-> A로 끝나는 문자 찾기 - SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%'
-> A를 포함하는 문자 찾기 - SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_'
-> A로 시작하는 두글자 문자 찾기 - SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[^A]'
-> 첫번째 문자가 'A'가 아닌 모든 문자열 찾기 - SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[ABC]'
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[A-C]'
-> 첫번째 문자가 'A', 'B', 'C'인 문자열 찾기
22. SQL 문의 결과?
- COUNT(*) -> 전체 행의 갯수는 반환할 때에는 NULL을 포함한다.
- COUNT(COL1) -> 컬럼명을 지정할 경우 NULL을 포함시키지 않는다.
- WHERE COL1 IN(12, 10, NULL) -> 12, 10을 포함한 COL1을 찾고 NULL은 포함시키지 않는다.
- GROUP BY COL1 -> NULL, 12, 10 3개로 묶인다.
- 따라서 2, 2, 3이다.
23. SQL 문의 결과?
- GROUP BY COL1 -> 조조 1개, 유비 2개, 관우 3개, 여포 1개, 초선 1개
- HAVING COUNT(*) > 2 이므로 갯수가 2개 초과인 것은 관우고 3개이다.
24. NUMERIC(숫자)형?
- CHAR(문자형) : 고정길이 문자열을 의미한다.
- INT(정수형) : 소숫점을 포함하지 않은 정수이다.
- DOUBLE(실수형) : 8byte 실수형
- FLOAT(실수형) : 4byte 실수형
- DECIMAL : 더 정밀하게 소수점을 표현한다.
25. SQL 문의 실행순서?
- FROM 절에서 테이블의 목록을 가져온다.
- WHERE 절에서 검색 조건에 일치하지 않는 행을 제외한다.
- GROUP BY 절에 명시된 행의 값을 그룹화 한다.
- HAVING 절은 GROUP BY 절로 그룹화된 데이터를 대상으로 조건을 정의한다.
- SELECT 절에서 명시한 컬럼값들을 조회한다.
- OPDER BY 절에서 명시한 컬럼값을 기준으로 정렬한 후 출력한다.
26. 순수 관계 연산자?
- 순수 관계 연산자란?
관계형 데이터베이스에 적용할 수 있도록 개발한 관계 연산자를 의미한다. DELETE는 포함되지 않는다. - 순수 관계 연산자
- SELETE(σ)
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다.
- 릴레이션의 행(가로)에 해당하는 튜플을 구하는 것이므로 수평 연산이라도고 한다.
- 연산자의 기호는 그리스 문자 시그마(σ)를 사용한다. - PROJECT(π)
- 주어진 릴레이션에서 속성 List에 제시된 Attribute만을 추출하는 연산이다.
- 릴레이션의 열(세로)에 해당하는 Attribute를 추출하는 것이므로 수직 연산자라도고 한다.
- 연산자의 기호는 그리스 문자 파이(π)를 사용한다. - JOIN(⋈)
- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다.
- 연산자의 기호는 ⋈를 사용한다.
- 조인 조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이 중 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법을 자연(NATURAL)조인이라고 한다. - DIVISION(÷)
- X ⊃ Y인 2개의 릴레이션에서 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산한다.
- SELETE(σ)
27. SQL의 빈칸 채우기
- 등수메기기 문제이다.
- 지금 SQL문을 보면 RANK가 1, 2, 3, 4, 5, 6으로 중복 값이 있어도 고유등수를 부여한다.
- 따라서 ROW_NUMBER()가 적절하다.
- RANK() : 중복값은 중복등수이고, 등수를 건너뛴다.(1위, 1위, 3위, 3위, 5위, 6위)
- DENSE_RANK() : 중복값은 중복등수, 등수 안 건너뛴다.(1위, 1위, 2위, 2위, 3위, 4위)
28. SQL의 빈칸 채우기
- SELECT * INTO 새로만들 테이블명 FROM 복사할 테이블명
- ORACLE
- CREATE TABLE 새로만들 테이블명 AS SELECT * FROM 복사할 테이블명 [WHERE절]
-> 테이블 복사할 때 - CREATE TABLE 새로만들 테이블명 AS SELECT * FROM 복사할 테이블명 WHERE 1 = 2 [WHERE에 참이 아닌 조건을 넣어준다.]
-> 테이블 구조만 복사할 때 - INSERT INTO 복사할 테이블명 SELECT * FROM 복사할 테이블명 [WHERE절]
-> 테이블은 이미 생성되어 있고 테이터만 복사할 때 - ALTER TABLE 구 테이블명 RENAME TO 신 테이블명
-> 테이블 이름 변경
- CREATE TABLE 새로만들 테이블명 AS SELECT * FROM 복사할 테이블명 [WHERE절]
- SQL SERVER
- SELECT * INTO 새로만들 테이블명 FROM 복사할 테이블명
-> 테이블 복사할 때
- SELECT * INTO 새로만들 테이블명 FROM 복사할 테이블명
29. 동일한 결과가 나오도록 빈칸을 완성하시오
- GROUPING SETS은 여러 그룹질의를 UNION ALL(합집합)과 같은 결과를 만들어서 소계, 합계를 집계할 수 있다.
- GROUPING SETS 함수와 GROUP BY UNION ALL절
- GROUP BY GROUPING SETS(A, B, C)
- Group By A Union All
- Group By Union All
- Group By C - GROUP BY GROUPING SETS(A, B, (B, C))
- Group By A Union All
- Group By Union All
- Group By B, C - GROUP BY GROUPING SETS((A, B, C))
- Group By A, B, C - GROUP BY GROUPING SETS(A, ROLLUP(B, C))
- Group By A Union All
- Group By Rollup(B, C) - GROUP BY ROLLUP(A, B, C)
- Group By (A, B, C) Union All
- Group By (A, B) Union All
- Group By (A) Union All
- Group By () - GROUP BY CUBE(A, B, C)
- Group By (A, B, C) Union All
- Group By (A, B) Union All
- Group By (A, C) Union All
- Group By (B, C) Union All
- Group By (A) Union All
- Group By (B) Union All
- Group By (C) Union All
- Group By ()
- GROUP BY GROUPING SETS(A, B, C)
30. SQL의 최종결과?
- COMMIT시점으로 ROLLBACK을 하는 것이다.
- 따라서 DELETE로 (2, 2000)이 지워졌지만 ROLLBACK으로 다시 나온다.
- 그리고 SELECT COUNT(COL1) FROM PRODUCT WHERE COL2 = 2000;을 하면 1개이다.
31. SQL의 결과?
- WHERE 절에 A.COL1 <> B.COL1; 이므로 A.COL1 컬럼을 기준으로 다른 수의 갯수를 카운트한다.
- A.COL1 <> B.COL1
1 다른수 2, 3, 3 = 3개
1 다른수 2, 3, 3 = 3개
2 다른수 1, 1, 3, 3 = 4개
3 다른수 1, 1, 2 = 3개
3 다른수 1, 1, 2 = 3개 따라서 3 + 3 + 4 + 3 + 3 = 16개이다.
32.
- CROSS JOIN의 결ㄹ과 개수는 두 테이블의 행의 개수를 곱한 개수가 된다.
- CROSS JOIN은 상호 조인이라고도 불리며, 한 쪽 테이블의 모든 행들과 다른 테이블의 모든 행을 조인시키는 기능을 한다.
CROSS JOIN을 카데시안 곱(Cartesian Product)라고도 한다.
'WorkHard > 자격증' 카테고리의 다른 글
[SQLD 개발자] 기출문제 공부(33회) (1) | 2023.03.14 |
---|---|
[SQLD 개발자] 기출문제 공부(33회) (0) | 2023.03.14 |
[SQLD 개발자] 기출문제 공부(37회) (0) | 2023.03.09 |
[SQLD 개발자] 기출문제 공부(37회) (0) | 2023.03.08 |
[SQLD 개발자] 기출문제 공부(35회) (0) | 2023.03.07 |