728x90
1. SQL로우의 건수는?
- DISTINCT로 중복을 제거한 후 UNION ALL로 중복 허용 합집합을 구한다.
- SQLD_30_31_01에선 (COL1, COL2)가 (1, 2), (1, 3)이 남는다.
- SQLD_30_31_02에선 (COL1, COL2)가 (1, 2), (1, 4), (1, 5)가 남는다.
- 01번과 02번을 합치면 (1, 2), (1, 3), (1, 2), (1, 4), (1, 5)로 총 5개가 남는다.
2. Unique Index Scan을 할 수 없는 것은?
- Unique Index Scan은 1개 값을 추출하는 방식이다.
- PK는 KEY1, KEY2인데 4번은 KEY1에만 조건을 줬기 때문에 1개 이상이 나올 수 있다.
3. Cross Join, Natural Join?
- Cross Join : Where절에서 조건을 걸 수 있다, Join Key가 없을 경우 발생한다.
- Natural Join : Where절에서 조건을 걸 수 없다, 특정 Join컬럼을 명시적으로 적을 수 없다, Join key는 컬럼명으로 결정된다.
4. 좋은 파티셔닝과 적절한 방법?
- Range : 관리가 쉬울 때, 숫자값으로 분리가 가능하다.
- List : 데이터의 양이 많은 대용량 테이블일 때, 특정컬럼이 없을 때 사용한다.
- Hash : 관리가 어려울 때, 데이터 위치를 모를때 사용한다.
5. SQL문의 수행 결과?
- SQLD_30_39는 N1 -> 1, 2 / TMP SQLD_30_39는 N1 -> 1 인데
- ROLLBACK으로 돌아가서 SQLD_30_39의 N1값으로 돌아간다.
- 그리고 값을 더해주면 3이 된다.
6. ORDER BY로 사용할 수 없는 것?
- SELECT JOB, COUNT(*) AS CNT는 JOB과 행 수를 세는 것이다.(2개)
- 4번은 행이 (3, 3)등이 아니라 3만 있기 때문에 사용이 불가능하다.
7. ABS, FLOOR, TRUNC, ROUND?
- ABS : 절대값
- FLOOR : 내림
- TRUNC : 소수점 아래 버림
- ROUND : 반올림
- EXAMPLE
ABS(-3.8), FLOOR(3.8), TRUNC(3.8), ROUND(3.8)까지 순서대로 값을 보면 3.8, 3, 3, 4가 된다.
8. 아래에서 설명하는 것은?
- VIEW : 복잡한 질의를 단순하게 작성할 수 있고 해당 형태의 SQL문을 자주 사용할 때 이용하면 편리하다, 실제테이터가 아니라서 논리적이고, 사용자에게 정보를 감출 수 있고, 보편적이다
9. SQL문의 수행 결과?
- FROM에서 해당 표를 선택하고,
- START WITH 상위계층번호 IS NULL에서 상위계층번호가 NULL인 1, 2번을 선택한다.
- CONNECT BY 계층번호 = PRIOR 상위계층번호
PRIOR 자식 = 부모 - PRIOR 상위계층번호 = NULL인 계층번호가 없으니까 종료되고
- 2건을 출력한다.
10. 컬럼의 데이터 타입을 변형하기?
- ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형; -> 여러개 컬럼 동시수정이 불가하다.(SQL SERVER)
- ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
- ALTER TABLE 테이블명 MODIFY (컬럼명 데이터유형); -> (ORACLE)
- ALTER TABLE 테이블명 ALTER (컬럼명 데이터유형); ->(SQL SERVER)
- ALTER TABLE 테이블명 DROP CONSTRAINT 조건명; -> 제약조건 삭제
- ALTER TABLE 테이블명 ADD CONSTRANT 조건명; -> 제약조건 추가
- RENAME 변경 전 테이블명 TO 변경 후 테이블명;
- ALTER TABLE 테이블명 RENAME COLUMN 변경 전 컬럼명 TO 새로운 컬럼명;
- DROP TABLE 테이블명 [CASCADE CONSTRAINT] -> 연쇄삭제
- TRUNCATE TABLE 테이블명;
- INSERT INTO 테이블명(컬럼 리스트) VALUES (컬럼 값);
- UPDATE 테이블명 SET 수정되어야 할 컬럼명 = 값;
- DLELTE FROM 테이블명;
- SELECT 컬럼리스트 FROM 테이블명;
- SAVEPOINT SVPT1; (ORACLE)
- ROLLBACK TO SVPT1; (ORACLE)
- SAVE TRANSACTION SVPT1; (SQL SERVER)
- ROLLBACK TRANSACTION SVPT1; (SQL SERVER)
11. SQL문의 수행 결과?
- ALTER TABLE SQLD_47 MODIFY COL2 DEFAULT 10;
- 값이 안 들어온 경우 10으로 채운다(NULL은 NULL로 지정한 거니까 해당 안된다.)
- INSERT INTO SQLD_47(COL1) VALUES('EXD') 이때 COL2 = 10
- SUM(COL2)하면 NULL값을 무시하고 연산한다.
12. 권한을 주기 위한 SQL은?
- GRANT : 생성 권한 주기를 준다.
13. SQL문을 작성하자
- DENSE_RANK() : 동일 순위, 순위 건너뛰기(1위, 2위, 2위, 3위)
- 주문금액에 따라 순위부여
- DENSE_RANK() OVER(ORDER BY '주문금액 DESC') -> 높은 순으로 나열했으니 DESC가 들어간다.
'WorkHard > 자격증' 카테고리의 다른 글
[SQLD 개발자] 기출문제 공부(35회) (0) | 2023.03.06 |
---|---|
[SQLD 개발자] 기출문제 공부(34회) (0) | 2023.03.03 |
[SQLD 개발자] 기출문제 공부(30회) (0) | 2023.03.02 |
[SQLD 개발자] 기출문제 공부(21회) (0) | 2023.03.01 |
[SQLD 개발자] 기출문제 공부(21회) (0) | 2023.02.28 |