1.쉬움
열에 대한 UNIQUE 제약 조건은 무엇을 보장합니까?
- A그 열이 자동으로 테이블의 기본 키가 된다
- B열 값이 정렬되어 있다
- C그 열에서 두 행이 같은 NULL이 아닌 값을 가지지 않는다
- D삽입 후에는 열을 변경할 수 없다
2.쉬움
LIKE 패턴에서 와일드카드 %는 무엇을 나타냅니까?
- A문자열의 끝
- B문자열의 그 위치에 있는 정확히 한 문자
- C0개 이상의 임의의 문자열
- D임의의 숫자 한 개
3.쉬움
WHERE price BETWEEN 10 AND 20은 어떤 행을 선택합니까?
- Aprice가 10 또는 20인 행만
- B10과 20을 포함하여 price가 10에서 20인 행
- Cprice가 10 초과 20 미만인 행으로, 10과 20은 제외된다
- Dprice가 10에서 20 범위 밖인 행
4.보통
SQL 인젝션(SQL injection)이란 무엇입니까?
- AINSERT 문 하나로 많은 행을 빠르게 삽입하는 기법
- B인덱스를 추가하는 방법
- C사용자 입력이 SQL 쿼리의 구조를 변경하는 공격
- D데이터베이스 백업 기법
5.보통
LEFT JOIN이 반환하는 것은 무엇입니까?
- A두 테이블에서 일치하는 행만
- B어느 테이블에서도 일치하지 않는 행
- C왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행, 일치하지 않는 경우 NULL
- D오른쪽 테이블의 모든 행만
6.보통
더티 읽기(dirty read)란 무엇입니까?
- A같은 행을 두 번 읽어 같은 값을 얻는 것
- B손상된 디스크에서 데이터를 읽는 것
- C아직 커밋하지 않은 다른 트랜잭션이 쓴 데이터를 읽는 것
- DWHERE 절 없이 데이터를 읽는 것
7.어려움
더티 리드는 방지하지만 반복 불가능한 읽기(non-repeatable read)는 여전히 허용하는 격리 수준은 무엇입니까?
- ARead uncommitted
- BRepeatable read
- CSerializable
- DRead committed
8.어려움
쿼리 FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid'가 예상과 달리 주문이 없는 고객을 빠뜨립니다. 왜 그렇습니까?
- Ao에 대한 WHERE 조건이 NULL로 채워진 행을 거부하여 내부 조인으로 바꾸기 때문에
- B조인에 ON 대신 USING을 써야 하기 때문에
- CLEFT JOIN은 일치하지 않는 행을 결코 유지하지 않기 때문에
- Dstatus가 예약어이기 때문에
정답표
- 1. C · 그 열에서 두 행이 같은 NULL이 아닌 값을 가지지 않는다
- 2. C · 0개 이상의 임의의 문자열
- 3. B · 10과 20을 포함하여 price가 10에서 20인 행
- 4. C · 사용자 입력이 SQL 쿼리의 구조를 변경하는 공격
- 5. C · 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행, 일치하지 않는 경우 NULL
- 6. C · 아직 커밋하지 않은 다른 트랜잭션이 쓴 데이터를 읽는 것
- 7. D · Read committed
- 8. A · o에 대한 WHERE 조건이 NULL로 채워진 행을 거부하여 내부 조인으로 바꾸기 때문에
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.