도움되셨다면 공감♥, 댓글 부탁드려요!
1과목은 16문제 이상 맞춰야 과락을 피할 수 있습니다^^
(틀린 부분은 댓글로 남겨주세요)
35회 단답형 해설은 여기있습니다.
https://ori-gina-l.tistory.com/20
21회 해설은 여기있습니다!
https://ori-gina-l.tistory.com/21?category=891355
30, 34회 해설은 여기서 봐주세요!
https://ori-gina-l.tistory.com/category/%EC%9E%90%EA%B2%A9%EC%A6%9D/SQLD
<번호는 위 페이지 번호기준>
1.
SQL 결과가 다르거나 오류나는 것
1) INNER JOIN USING
2) INNER JOIN ON
3) NATURAL JOIN USING
4) NATURAL JOIN
Cross Join : Where 절에서 조건을 걸 수 있다
Join Key 가 없을 경우 발생
Natural Join : Where 절에서 조건을 걸 수 없다.
특정 Join 컬럼을 명시적으로 적을 수 없다.(ON, USING사용X) (OWNER명 불가)(EX EMP.DEPT)
Join Key 는 컬럼명으로 결정된다.
2.
CROSS JOIN : 조인조건이 없을때 모든 데이터조합, M*N건의 데이터조합
3.
합집합 : UNION
중복허용 합집합 : UNION ALL
교집합 : INTERSECT
차집합 : MINUS, EXCEPT
4.
1) CODE='A' OR CODE='B' 인 것 중에 (전체)
COL1 값 200이상 400이하 인것
2) CODE='A' 인 행 중 COL1 ≤ 200 ≤ COL2인 것과
OR CODE='B'인 행 중 COL1 ≤ 200 ≤ COL2 인 것
==> 사실 전체 행 중 COL1 ≤ 200 ≤ COL2고르기
3) 전체 행 중 COL1 ≤ 200 ≤ COL2 인 것
4) 전체 행 중 COL1 ≤ 200 인 것과, 200 ≤ COL2 모두 만족시키는 것
5.트랜잭션의 특성
원자성 : 연산들은 모두 성공 OR 전혀 실행되지 않아야 함
일관성 : 트랜잭션 실행 전 DB 내용이 잘못 되지 않으면 실행 후도 잘못 되지 않아야 함
고립성 : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.
지속성 : 트랜잭션이 성공적으로 수행되면 DB의 내용은 영구적으로 저장된다.
6.
COMMIT : 내가 작업한 내용을 DB에 반영
=> COMMIT 전에는 남이 보거나 고칠 수X
7.
NULL 인건 IS NULL
NULL 아닌건 IS NOT NULL
8.LIKE _ : 미지의 한글자
% : 0이상의 글자
(EX. _L% : 2번째 글짜가 L인거 모두 다봄)
ESCAPE : 와일드카드 ( _ % )를 문자로 취급
A(걍 변수) like ‘A_A’
=> a like ‘A@_A’
=> escape ‘@’ (특수문자 아무거나 가능)
10.
SELECT NVL(COL2, COL3) AS 금액1,
COALESCE(COL2, COL3) AS 금액2,
NULLIF(COL2, COL3) AS 금액3,
CASE WHEN COL2 IS NOT NULL THEN COL2 ELSE COL3 END AS 금액4
FROM SQLD_30_32
1) NVL=NULLIF
=> NVL(값1, 값2) : 값1 IS NULL 값2 출력
IS NOT NULL 값1 출력
2) COALESCE(값1, 값2, ...) : NULL이 아닌 최초값 RETURN
3) CASE
WHEN COL2 IS NOT NULL THEN COL2 // COL2가 NULL아니면 COL2 출력
ELSE COL3 // NULL이면 COL3 출력
END AS 금액4
11.
합집합 : UNION
중복허용 합집합 : UNION ALL
교집합 : INTERSECT
차집합 : MINUS(오라클) / EXCEPT(SQL서버)
12.
ROWS BETWEEN unbounded preceding AND current row AS (열 이름 - 직업별 합계)
// 동일 값 더해
RANGE BETWEEN unbounded preceding AND current row AS (열 이름 - 직업별 합계)
// 동일 값 안더해
13.
인덱스는 이럴때 사용함
=> 테이블 행 많음 / where에서 해당 컬럼 많이사용 / join에서 자주 사용 컬럼
/ null 많이 포함 컬럼 / 적은 양의 컬럼 가져옴
예외 : 인덱스 컬럼절 변형 / 내부적 형변환, 묵시적 형변환 / 조건절 NULL, NOT NULL, (NOT EXIST)
/ 부정형(!=)을 조건으로 / LIKE 연산자
인덱스 쓰면 DML에서 느려짐(성능 감소)
=> 인덱스는 EQUAL조건만 쓸 수 있는건 아님
14.
Natural join : alias (AS-별칭 짓기) 사용O
Using : alias 사용X
15.
데이터 무결성 보장하기 위해
=> 제약조건
1. PRIMARY KEY(기본키) : 기본키 정의
2. UNIQUE KEY(고유키) : 고유키 정의
3. NOT NULL : NULL 값 입력금지
4. CHECK : 입력 값 범위 제한 / NULL무시
5. FOREIGN KEY(외래키) : 외래키 정의
=> TRIGGER
=> 어플리케이션 로직에 포함된 상태로 수행
ㅡㅡ> LOCK은 아님! (LOCKING 병행무결성
16.
PL/SQL : DECLARE, EXCEPTION 생략가능
BEGIN : 생략불가
19.
SELECT
FROM
WHERE JOB_TITLE = CLERK OR (EMP_NAME LIKE 'K%' AND SALARY >=3000)
=> NOT - AND - OR 순으로 연산 (이 문제는 괄호가 있으니까 사실 관계X)
=> FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
==> CLERK행 + K로시작하는 연봉 3000이상 행
20.
SELECT SYSDATE, TO_DATE('2019', 'YYYY') FROM DUAL;
-> 2020-09-03 10:21:30, ( )
=> 2020-09-01 00:00:00 (연도와 월만 남기고 초기화)
YYYY 년 / RRRR 년
MM 월
DD 일
HH 시간(12시) / HH24 시간(24시)
MI 분
SS 초
Sysdate : 오라클 현재 시간
Getdate() : SQL 서버 현재시간
날짜데이터 + 100 : 100일 이후임
21.
SELECT SUBSTR(TO_CHAR('20200903'), 5, 2)
=> SUBSTR(문자열, 시작위치, 길이)
=> 20200903에서 5번째 문자부터 2개 가져오기 : 09
SELECT EXTRACT(MONTH FROM ...)
=> 5
TO_char
9 : 숫자지만, 빈자리를 공백으로 채움.
// SELECT TO_CHAR(123456,'999,999,999,999') FROM DUAL
// 123,456
0 : 숫자지만, 빈자리를 0으로 채움.
// SELECT TO_CHAR(12345, '00000000') FROM DUAL
// 00012345
, : 천단위의 콤마 (외국의 경우 소수점 일 수 있음.)
. : 소숫점 (외국의 경우 천단위를 나타낼 수 있음.)
22.
SUBSTR('123456789', -4, 2)
=> 뒤에서 4번째 글자부터 2개
35회는 카페에서 완성된 PDF파일이 없네용
사실상 문제가 완전히 복원되있는게 아니라서 이후 문제 복원은 큰 의미가 없는것 같네요
'자격증 > SQLD' 카테고리의 다른 글
[SQLD 21회 1과목] 문제공유 + 자세한 해설 (비전공자도 가능) (2) | 2020.09.04 |
---|---|
[SQLD 35회 단답형] 문제공유 + 자세한 해설 (PRIOR은 이거보고 이해하세요!) (6) | 2020.09.03 |
[SQLD 35회 1과목] 문제공유 + 자세한 해설 (비전공자도 가능) + 문제링크 추가 (2) | 2020.09.01 |
[SQLD 30회 단답형] 문제공유 + 자세한 해설 (비전공자도 가능) (2) | 2020.09.01 |
[SQLD 30회 2과목] 문제공유 + 자세한 해설 (비전공자도 가능) (14) | 2020.09.01 |
댓글