728x90

 

27번

VIEW

  1. 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
  2. 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 또한 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다.
  3. 보안성 : 직원의 급여정보와 같이 숨기고 싶은 정보가 존재한다면 해당 칼럼을 빼고 생성함으로써 사용자에게 정보를 감출 수 있다.

 

 

28번

GROUP BY

GROUP BY구의 기본적인 문법을 확인하는 문제

SELECT구에는 GROUP BY절에 있는 칼럼이 나와야 한다.

 

 

29번

교차엔터디(Intersaction Entity)

M:M의 관계를 해소하려는 목적으로 만들어진 엔터티 [ex> M:M -> 1:M]

독립 엔티티[Kernel Entity, Master Entity]
사람, 물건, 장소 등과 같이 현실세계에 존재하는 엔터티

업무중심 엔터티[Transaction Entity]
Transaction이 실행되면서 발생하는 엔터티

종속 엔터티[Dependent Entity]
주로 1차 정규화로 인해 관련 중심엔티티로부터 분리된 엔터티

교차 엔티티[Intersaction Entity]
M:M의 관계를 해소하려는 목적으로 만들어진 엔터티 
ex> M:M -> 1:M

 

 

 

30번

CORRELATED SUB QUERY(상호연관 서브쿼리)

메인쿼리의 값을 서브쿼리에서 주입을 받아서 비교를 하는 것

 메인쿼리의 값을 서브쿼리에서 주입을 받아서 비교를 하는것으로 상호연관 서브쿼리(CORRELATED SUB QUERY) 이다.

SELECT A.EMPNO, A.ENAME
FROM EMP A
WHERE A.EMPNO = (SELECT 1 FROM
EMP_T B WHERE A.EMPNO = B.EMPNO);

서브쿼리에 *(A.EMPNO 값을 매번 가져와서 대입을 해야하므로성능이 매우 좋지않다.)

 

 

 

36번

SUBKPI,MAINKPI

20,10을 각각 대입

0,30을 각각 대입

SUBKPI가 0인건 없고 20인건 있어서 20,10이 TRUE로 WHERE발동

 

 

 

37번

서브쿼리 설명

  1. 서브쿼리에서는 정렬을 수행하기 위해서 내부에 ORDER BY를 사용하지 못한다.
  2. 서브쿼리에 있는 칼럼을 자유롭게 사용할수 없다
  3. 여러 개의 행을 되돌리는 서브쿼리는 다중행 연산자를 사용해야 한다.
  4. EXIST는 TRUE와 FALSE만 되돌린다

 

 

 

38번

TO_DATE(), TO_CHAR()

TO_CHAR() : 날짜/숫자형 데이터를 문자형 데이터로 변경

TO_DATE() : 문자/숫자형 데이터를 날짜형 데이터로 변환

데이트(날ㅉ) 타입을 데이트타입으로 바꾸면 에러남. 그래서 1번 안됨

T0_DATE()로 ‘YYYYMMDD’ 형식 출력가능

 

 

 

39번

FETCH(읽어오기) 위해 해야할 것은

CURSOR OPEN (*CURSOR순서 : 선언 → OPEN → FETCH → CLOSE)

CURSOR(DB의 연결 포인트, 연결점)

  • SQL 커서는 Oracle 서버에서 할당한 전용 메모리 영역에 대한 포인터이다.
  • 질의의 결과로 얻어진 여러 행이 저장된 메모리상의 위치
  • 커서는 SELECT 문의 결과 집합을 처리하는데 사용된다.

 

명시적 커서

사용자가 직접 정의해서 사용하는 커서이고 묵시적(암시적) 커서는 데이터베이스가 내부적으로 사용하는 커서이다.

모든 CURSOR는 사용하기 전에 반드시 선언을 해주어야 한다

 

 

 

42번

NESTED LOOP JOIN

RANDOM ACCESS로 인해 부하가 걸림

 

HASH JOIN

- 조인 컬럼의 인덱스가 존재하지 않을 경우에도 사용할 수 있다.
- 해시 함수를 이용하여 조인을 수행하기 때문에 '='로 수행하는 조인으로 동등 조건에만 사용가능
- 해시 함수가 적용될 때 동일한 값을 항상 같은 값으로 해싱됨이 보장된다.
- HASH JOIN 작업을 수행하기 위해 해시 테이블을 메모리에 생성해야 한다.
- 메모리에 적재할 수 있는 영역의 크기보다 커지면 임시 영역(디스크)에 해시 테이블을 저장한다.
- HASH JOIN을 할 때는 결과 행의 수가 적은 테이블을 선행 테이블로 사용하는 것이 좋다.
- 선행 테이블을 Build input이라 하며, 후행 테이블을 Prove input이라 한다.

 

 

 

43번

2,3차 정규화

 2차 정규화 → 3차 정규화(종속 존재를 분해) 학번,코스코드(FK),평가코드(FK) = 3개

 

 

45번

ROLE

ROLE은 데이터베이스에서 OBJECT(테이블, 프로시저, 뷰) 등의 권한을 묶어서 관리할 수 있다.

 

 

49번

레코드

레코드 = 데이터가 들어가있는 행(ROW)

SQLD39_42 테이블의 COL1 은 {1, 1, 2, 3, 3} 이렇게 5개가 있습니다.COL1 을 하나씩 불러오면

문제 WHERE 조건이 A.COL1 = B.COL1 이므로A.COL1 = 1 일때 B.COL1 = 1 인 레코드 →2개

A.COL1 = 1 일때 B.COL1 = 1 인 레코드 →2개
A.COL1 = 2 일때 B.COL1 = 2 인 레코드 →1개
A.COL1 = 3 일때 B.COL1 = 3 인 레코드 →2개
A.COL1 = 3 일때 B.COL1 = 3 인 레코드 →2개

 

 

 

추천 강의자료

39회 상 : https://www.youtube.com/watch?v=SENIt9GFMV8

39회 하 : https://www.youtube.com/watch?v=9Kgmxr3PCsY&list=PLSiY9ClhS7WnWW6EfWlCz-P1Br3mGjFqw&index=4

 

 

연관 링크

 

 

자료 출처
https://yunamom.tistory.com/265

yurimac님 pdf 정리 자료

https://velog.io/@dongchyeon/오라클Oracle-그룹-함수-ROLLUP-CUBE-GROUPING-등

 

728x90
반응형

'SQL > SQLD 공부노트' 카테고리의 다른 글

[SQL][SQLD] 기출 39회 1~25번  (1) 2022.09.17
[SQL][SQLD] 기출 38회 1~50번  (0) 2022.09.14
[SQL][SQLD] 기출 35회 31~50번  (0) 2022.09.13
[SQL][SQLD] 기출 35회 1~30번  (1) 2022.09.13
[SQL][SQLD] 기출 34회 30~50번  (0) 2022.09.12
728x90

 

 

 

31번

EXTRACT

0이 들어가면 0빼고 값을 가져옴

 

 

34번

단일행 서브쿼리

  • 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리
  • 항상 비교연산자와 함께 사용된다.
  • 비교연산자 뒤에는 단일행이 와야 하는데 뒤에 GROUP BY DEPT는 다중행 함수로 멀티행을 반환하여 에러가 발생함.

 

다중행 서브쿼리

  • 서브쿼리의 실행 결과가 여러 건인 서브쿼리
  • 메인 쿼리의 조건 절에 여러 칼럼을 동시에 비교할 수 있다.
  • 서브쿼리와 메인쿼리의 칼럼 수와 칼럼 순서가 동일해야 한다.

 

ANY & ALL

IN

다수의 비교값과 비교하여 비교값 중 하나라도 같은 값이 있다면 true

조건절에서 사용

ANY

다중행 연산자. 조건을 만족하는 값이 하나라도 있다면 결과 리턴

다수의 비교값 중 한개라도 만족하면 true

IN 과 다른점은 비교 연산자를 사용

ALL

다중행 연산자. 모든조건을 만족하는 결과를 리턴

전체 값을 비교하여 모두 만족해야만 true

비교 연산자와 ANY
최소한 하나라도 만족하는 것
> ANY : 최소값 보다 크면
>= ANY : 최소값보다 크거나 같으면
< ANY : 최대값보다 작으면
<= ANY : 최대값보다 작거나 같으면
= ANY : IN과 같은 효과
!= ANY : NOT IN과 같은 효과

비교 연산자와 ALL
ANY와는 반대되는 개념입니다. 모든 조건에 만족 되는것
> ALL : 최대값 보다 크면
>= ALL : 최대값보다 크거나 같으면
< ALL : 최소값보다 작으면
<= ALL : 최소값보다 작거나 같으면
= ALL : SUBSELECT의 결과가 1건이면 상관없지만 여러 건이면 오류가 발생합니다.
!= ALL : 위와 마찬가지로 SUBSELECT의 결과가 여러 건이면 오류가 발생

 

 

37번

다중입력 쿼리문

Case문과 동일하게 수행되며 WHEN을 만족하면 종료한다.

그래서 T1행에는 2, 3 T2행에는 NULL, T3행에는 1이 입력된다

COL1

1 2 3

INSERT FIRST
	WHEN COL1 >= 2 THEN INTO T1 
	WHEN COL1 >= 3 THEN INTO T2 
	ELSE INTO T3
SELECT*FROM SQLD_37;

 

 

38번

STRING_SPLIT

조회된 skills 컬럼의 쉼표(',') 구분자를 잘라서 해당 개수만큼 행으로 변환한다.

FROM절에서 해당 함수를 사용할 수 있다.

 

 

40번

ROLLUP & GROUPING SETS

GROUP BY GROUPING SETS (a, (a, b))

  = GROUP BY a, ROLLUP(b)

GROUP BY GROUPING SETS ((a, b, c), (a, b), (b), ())

  = GROUP BY ROLLUP (b, a, c)

 

○ 그룹 소계 함수 비교

  1. ROLLUP 은 단계별 합계
  2. CUBE 는 가능한 모든 조합별 합계
  3. GROUPING SETS 는 지정한 조합별 합계
  4. 괄호는 묶음 처리

 

○ 사용 예시

1.ROLLUP(a, b, c) <- 우측 항목을 하나씩 단계별로 제거

  • (a, b, c)
  • (a, b)
  • (a)
  • ()

2.CUBE(a, b)

  • (a, b)
  • (a)
  • (b)
  • ()

3.ROLLUP(a, (b, c), d) <- (b,c) 를 한 묶음으로 처리

  • (a, (b, c), d)
  • (a, (b, c))
  • (a)
  • ()

4.GROUPING SETS (a, (b, c))

  • (a)
  • (b, c)

 

 

45번

HASH JOIN

Equal Join(동등 조인)에서만 가능

대용량 처리에 유리

각 테이블에 INDEX가 반드시 필요한 것은 아니다.

데이터 건수가 적은 테이블을 선행 테이블로 두는 것이 유리하다

정렬 작업이 없어 정렬이 부담되는 대량배치작업에 유리

 

 

46번

ROLLUP & GROUPING SETS

ROLLUP(상품명) = GROUPING SETS(상품명),()

 

GROUP BY ROLLUP(상품명)

=GROUP BY GROUPING SETS(상품명),()

 

 

연관 링크

 

자료 출처
[SQLD] 35회 기출 문제 ( 50문제 / 정답,해설포함 ) (tistory.com)

yurimac님 pdf 정리 자료

유투버 곰사원님 pdf 정리 자료

https://carami.tistory.com/18

https://m.cafe.naver.com/sqlpd/24282

728x90
반응형

'SQL > SQLD 공부노트' 카테고리의 다른 글

[SQL][SQLD] 기출 39회 1~25번  (1) 2022.09.17
[SQL][SQLD] 기출 38회 1~50번  (0) 2022.09.14
[SQL][SQLD] 기출 35회 1~30번  (1) 2022.09.13
[SQL][SQLD] 기출 34회 30~50번  (0) 2022.09.12
[SQL][SQLD] 기출 34회 1~29번  (0) 2022.09.12
728x90

 

10번

엔터티 특징

  1. 엔터티는 2개 이상의 속성으로 구성
  2. 엔터티를 설명하고, 인스턴스의 구성요소이다. O
  3. 하나의 속성은 하나의 값을 갖는다.
  4. 속성의 특성 : 기본 속성 (모든 일반적 속성)
    • 설계 속성 (새로 만든다.)
    • 파생 속성 (영향을받아 발생, 빠른 성능, 계산)

 

 

11번

TRUNCATE TABLE 명령어

특정 로우(row)를 선택하여 지울 수 없다

 

12번

ORDER BY

 

 

13번

PROCEDURE & TRIGGER 

PROCEDURE 는 COMMIT, ROLLBACK 명령어를 사용할 수 있다.

TRIGGER 는 COMMIT, ROLLBACK 명령어를 사용할 수 없다.

 

 

16번

Nested Loop Join & Sort Merge Join &  Hash Join

WHERE 절에 별도의 조건절이 없을 경우 NESTED LOOP JOIN 이 반드시 좋다고 할 수 없음

Nested Loop Join Sort Merge Join   Hash Join
랜덤 액세스 등가, 비등가 조인 가능 등가조인만 가능
대용량 sort 작업 유리 조인키 기준 정렬 대량 작업 유리, 함수처리

 

 

19번

계층형 쿼리(계층형 질의)

1-4번 전부 PRIOR구문에서 AND조건이 안맞아서 추가 되는게 없고 START WITH에서 추가된 최상위 계층만 남는다.

3번 B A 2 1 / 나머지 : D B 4 2

 

 

20번

ROLLUP & CUBE & GroupingSets

ROLLUP은 인수 순서가 중요(ID 총합과 전체 총합 출력) CUBE는 ID총합,DPET_NM 총합, 전체총합 GroupingSets는 총합 X

ROLLUP : 인수 순서중요(계층적), Order by 로 정렬

CUBE : 모든값에 다차원집계 생성 / 시스템에 많은 부하

GroupingSets : 인수 순서무관 (평등)

SELECT ID, DEPT_NM, SUM(SALARY) 
FROM SQLD_34_20
GROUP BY ROLLUP(ID,DEPT_NM);

쿼리문 결과

GROUP BY로 묶어서 123만 나오는게 아닌

롤업 특성상 각 합계랑 소계도 나와서 7행(row)이 나온다

 

 

22번

ROLLUP & CUBE & GroupingSets

ROLLUP : 인수 순서중요(계층적), Order by 로 정렬

CUBE : 모든값에 다차원집계 생성 / 시스템에 많은 부하

GroupingSets : 인수 순서무관 (평등)

 

 

23번

SELECT COUNT(*) 
FROM SQLD_34_23 
HAVING COUNT(*) > 4

HAVING절에서 조건 만족이 안되서 FROM절에서 들어가는 값이 없고 테이블에 조회 되는게 없으므로 SELECT절 COUNT에 들어가는 값 자체가 없으므로 공집합(ROW 0)이 뜨게됨

 

 

연관 링크

 

자료 출처
[SQLD] 34회 기출 문제 ( 50문제 / 정답,해설포함 ) (tistory.com)

yurimac님 pdf 정리 자료

 

728x90
반응형

+ Recent posts