728x90
매일 SQLD 기출 문제 풀기 챌린지
문제12.
다음 주어진 테이블에서 SQL문의 결과값으로 알맞은 것은?
[ 테이블명 : SQLD_12 ]
JOB_TITLE | EMP_NAME | SALARY |
CLERK | JACSON | 2000 |
SALESMAN | KING | 3000 |
SALESMAN | BOAN | 4000 |
CLERK | LUCAS | 5000 |
SALESMAN | CADEN | 6000 |
CLERK | GRAYSON | 7000 |
DEVELOPER | LOGAN | 8000 |
CLERK | JIM | 9000 |
SELECT COUNT(*)
FROM SQLD_12
WHERE JOB_TITLE = 'CLERK'
OR (EMP_NAME LIKE 'K%' AND SALARY >= 3000)
① 4건
② 5건
③ 6건
④ 8건
해설해보기
#1. SELECT절
count(*) 를 사용하여 null행을 포함한 모든 행의 수를 출력한다.
#2. FROM 절
데이터를 가져올 테이블명 입력
#3. WHERE절
- JOB_TITLE이 CLEKR인 행을 가져온다(JACSON, LUCAS, GRAYSON, JIM이 해당 됨)
- 또는(OR)
- EMP_NAME이 K로 시작하는 사원이면서(AND) 월급이 3000이상
두 조건 모두에 해당하는 사원은 = KING
*EMP_NAME LIKE 'K%'
- Like : 텍스트 데이터의 일부를 검색할때 사용
- emp_name 컬럼에서 K로 시작하는 사람을 추출하고자 하는 것이다.
위 함수는 LIKE와 와일드 카드(%)이다.
와일드 카드(%)는 그 자리에 무엇이 와도 상관없고, 개수가 몇 개가 와도 상관없다는 의미이다.
따라서 EMP_NAME 'K%'은 아래와 같이 해석할 수 있다
'K라는 문자로 시작하는데, 뒤에는 아무거나 와도 상관없다.
즉, K로 시작하는 EMP_NAME의 값을 출력하라'
따라서
JACSON, LUCAS, GRAYSON, JIM, KING 이므로 총 5건이다.
정답은 ②
직접 실행해보기
SELECT COUNT(*)
FROM SQLD_12
WHERE JOB_TITLE = 'CLERK'
OR (EMP_NAME LIKE 'K%' AND SALARY >= 3000);
관련 스크립트
drop table sqld_12;
create table sqld_12
( job_title varchar2(10),
emp_name varchar2(10),
salary number(10) );
insert into sqld_12 values( 'CLERK', 'JACKSON', 2000 );
insert into sqld_12 values( 'SALESMAN', 'KING', 3000 );
insert into sqld_12 values( 'SALESMAN', 'BOAN', 4000 );
insert into sqld_12 values( 'CLERK', 'LUCAS', 5000 );
insert into sqld_12 values( 'SALESMAN', 'CADEN', 6000 );
insert into sqld_12 values( 'CLERK', 'GRAYSON', 7000 );
insert into sqld_12 values( 'DEVELOPER', 'LOGAN', 8000 );
insert into sqld_12 values( 'CLERK', 'JIM', 9000 );
commit;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 14> 결측치 처리하는 일반 함수에 대한 기출문제 (0) | 2024.03.14 |
---|---|
<SQLD 13> 컬럼 별칭 사용에 대한 기출문제 (0) | 2024.03.13 |
<SQLD 11> Null 값 처리하는 일반함수 기출문제 (0) | 2024.03.11 |
<SQLD 10> 논리연산자 AND와 OR에 대한 기출문제 (0) | 2024.03.10 |
<SQLD 9> 문자함수와 날자 함수에 대한 기출문제 (0) | 2024.03.09 |