문제 33. 다음 중 TEST 사용자가 아래의 작업을 수행 할 수 있도록 권한을 부여하는 DCL로 올바른 것은?
UPDATE A_USER SET COL1 = 'TEST' WHERE COL2 = 100;
보기
- GRANT UPDATE TO TEST;
- REVOKE SELECT ON A_USER FROM TEST;
- REVOKE UPDATE ON A_USER TO TEST;
- GRANT SELECT, UPDATE ON A_USER TO TEST;
답: 4
GRANT [권한] ON [테이블명] TO [유저명];
문제 35. 주어진 ERD에서 오류가 나지 않는 SQL문을 고르시오.
보기
1) SELECT * FROM 계좌마스터
WHERE 회원번호 = (SELECT DISTINCT 회원번호 FROM 고객);
2) SELECT * FROM 계좌마스터
WHERE 회원번호 IN (SELECT DISTINCT 회원번호 FROM 고객);
3) SELECT 회원번호, 종목코드 FROM 일자별주문내역
WHERE 주문일자 EXISTS (SELECT DISTINCT 주문일자 FROM 계좌마스터);
4) SELECT 회원번호, 종목코드 FROM 일자별주문내역
WHERE 주문일자 ALL (SELECT DISTINCT 주문일자 FROM 계좌마스터);
답: 2
WHERE ~ IN (여러개)
여러개와 한개 비교 가능
WHERE EXIST가 되어야함. 사이에 다른거 안들어감
WHERE 회원번호 = (SELECT DISTINCT 회원번호 FROM 고객); =는 한개씩만 비교 가능, 왼쪽 값은 복수이므로 에러 발생
문제 37. 다음 ERD로 작성한 SQL문에서 오류가 발생하는 것은?
보기
1) SELECT (SELECT SUM(주문금액) FROM 일자별주문내역)
FROM 고객마스터 GROUP BY 회원번호;
2) SELECT SUM(일자별주문내역.주문금액)
FROM 일자별주문내역
FULL OUTER JOIN 고객마스터
ON 고객마스터.회원번호 = 일자별주문내역.회원번호
GROUP BY 회원번호;
3) SELECT SUM(일자별주문내역.주문금액)
FROM 고객마스터, 일자별주문내역
WHERE 고객마스터.회원번호 = 일자별주문내역.회원번호
GROUP BY 회원번호;
4) SELECT SUM(주문금액)
FROM 일자별주문내역
WHERE EXISTS (SELECT*FROM 고객마스터
UNION ALL SELECT*FROM 일자별주문내역)
GROUP BY 회원번호;
정답: 4
UNION ALL 사용할 땐 두개의 테이블 크기가 같아야함
일자별주문내역과 고객마스터 테이블의 크기가 달라서 오류
'SQLD' 카테고리의 다른 글
[SQLD] 240520 SQL 기본 및 활용 (0) | 2024.05.20 |
---|---|
[SQLD] 230517 슈퍼/서브타입 데이터 모델의 변환 타입 | Nested Loop, Hash Join | 트랜잭션의 특징 (0) | 2024.05.17 |
[SQLD] 240509 정규화, 반정규화 (0) | 2024.05.09 |
[SQLD] 데이터 모델과 성능 (0) | 2024.05.08 |
[SQLD] 240502 SQL DB DBMS 데이터 모델링 (0) | 2024.05.02 |