반응형 SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.2554 <SQLD 14> 결측치 처리하는 일반 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제14. 아래의 SQL에서 NULL을 반환하는 SQL은 어떤것인가? ① SELECT COALESCE(NULL,'2') FROM DUAL ② SELECT NULLIF('A','A') FROM DUAL ③ SELECT NVL(NULL,0) + 10 FROM DUAL ④ SELECT NVL(NULL,'A') FROM DUAL 해설해보기 1. NVL( A, B ) NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다. 2. COALESCE( A, B ) COALESC() 함수는 A가 NULL이면 B를 출력하는 함수이다. * NVL() vs COALESCE() - COALESCE()함수는 COALESCE( A, B, C ) 가 가능하여 A가 NULL이면 B, B도 NU.. 2024. 3. 14. <SQLD 13> 컬럼 별칭 사용에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제13. 아래의 SQL에 대한 Column Header를 적으시오(DBMS : ORACLE) SELECT employee_id, DEPARTMENT_ID, SALARY AS " salary" FROM SQLD_13 WHERE EMPLOYEE_ID < 110; 주관식 답 : 해설해보기 오라클은 출력할 때 컬럼명 대소문자를 구분하지 않는다 따라서 employee_id = EMPLOYEE_ID 를 동일하게 보고 소문자로 작성해도 대문자로 보여진다. 하지만, 별칭을 주었을 때 더블쿼테이션 마크(") 내에서는 대소문자가 구분되고 있다 따라서 출력되는 Column Header는 아래와 같다 EMPLOYEE_ID, DEPARTMENT_ID, salary 직접 실행해보기 SELE.. 2024. 3. 13. <SQLD 12> 논리 연산자 AND와 OR의 우선순위 기출문제 매일 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(*) .. 2024. 3. 12. <SQLD 11> Null 값 처리하는 일반함수 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제11. 다음 주어진 SQL문의 결과값이 다른 것은? [ 테이블명 : SQLD_11 ] COL1 COL2 COL3 A 300 50 B 300 150 C NULL 300 D 300 100 [ SQL ] 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_11; ① 금액 1 ② 금액 2 ③ 금액 3 ④ 금액 4 해설해보기 1. NVL( A, B ) NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다. 2. COALESCE( A, B ) CO.. 2024. 3. 11. <SQLD 10> 논리연산자 AND와 OR에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제10. 다음 보기 중 SQL의 결과와 다른 것은? 테이블명 : SQLD_10 NUM CODE COL1 COL2 1 A 100 350 2 A 130 300 3 B 150 400 4 A 200 300 5 B 250 200 6 A 300 150 ① SELECT * FROM SQLD_10 WHERE 1=1 AND CODE IN('A','B') AND COL1 BETWEEN 200 AND 400; ② SELECT * FROM SQLD_10 WHERE 1=1 AND (CODE='A' AND 200 BETWEEN COL1 AND COL2) OR (CODE='B' AND 200 BETWEEN COL1 AND COL2); ③ SELECT * FROM SQLD_10 WHERE 1=.. 2024. 3. 10. <SQLD 9> 문자함수와 날자 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제9. 다음 중 결과값이 다른 것은? ① SELECT SUBSTR(TO_CHAR('20190504'),5,2) FROM DUAL; ② SELECT EXTRACT(MONTH FROM DATE '2020-05-01') FROM DUAL; ③ SELECT CONCAT('0', '5') FROM DUAL; ④ SELECT TRIM('05') FROM DUAL; 해설해보기 #1번 TO_CHAR()를 사용해서 숫자형의 20190504 를 문자형 '20190504'로 변경후 특정 문자를 추출하는 함수인 SUBSTR()를 사용하여 20190504에서 5번째 자리에 위치한 0부터 2개를 추출하여 '05'가 추출됨 #2번 EXTRACT([날짜 시간 등 보고싶은 것] FROM [입력날.. 2024. 3. 9. <SQLD 8>숫자함수 round 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제8. 아래의 SQL을 수행한 결과를 작성하시오. SELECT ROUND(3.45, 1) AS COL1 FROM DUAL; 해설해보기 - 시스템의 가상 테이블 ROUND([숫자|컬럼명], [표시할 자리수]) - 3.45에서 소수점 첫번째 자리수 까지만 표시한다는 의미로 - 5를 반올림하여 3.5라는 결과가 도출됨 - 출력된 결과를 ALIAS를 사용하여 COL1로 지정해줌 직접 실행해보기 select round(3.45, 1) as col1 from dual; 2024. 3. 8. <SQLD 7> 문자 함수 이해에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제7. 다음 중 결과값이 다른 것은? ① SELECT UPPER('ebac') FROM DUAL; ② SELECT RTRIM(' EBAC') FROM DUAL; ③ SELECT SUBSTR('ABCEBACED',4,4) FROM DUAL; ④ SELECT CONCAT('EB','AC') FROM DUAL; 해설해보기 1번 UPPER([문자열/컬럼명]) : 문자열 혹은 문자열 컬럼의 값을 모두 대문자로 변환해주는 함수 2번 RTRIM() : R = Right 오른쪽 , TRIM = 잘라내다 - 즉, 오른쪽 공백을 잘라내는 함수 - 아래와 같은 문법을 사용하면 오른쪽 특정 문자를 잘라낼 수 있다 - RTRIM( [문자열 or 컬럼명].. 2024. 3. 7. <SQLD 6> 문자 함수 SUBSTR에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제6. 다음 보기 중 아래 SQL문의 결과값으로 올바른 것은 ? SELECT SUBSTR('123456788',-4,2) FROM DUAL; ① 45 ② 65 ③ 43 ④ 67 해설해보기 SUBSTR( [문자열/문자열 컬럼], [시작위치], [시작위치에서 부터 출력할 개수]) ※ 시작위치 (즉, 잘라낼 철자의 자리번호) - 철자 자리번호는 1부터 시작 ex. SONNY에서 S = 1, O = 2, N = 3 - 철자 자리번호를 뒤에서부터 시작할 땐 -1부터 시작 ex. SONNY에서 Y = -1, N = -2, N = -3 =============================== substr의 문법은 위와 같다 첫번째 인자 : '123456788' 이라는 문자열에서.. 2024. 3. 6. <SQLD 5> is null 연산자를 사용법에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제5. 다음 보기 중 COMM 에 NULL이 아닌 데이터를 찾는 SQL로 올바른 것은? ① SELECT COMM FROM EMP WHERE COMM '' ; ② SELECT COMM FROM EMP WHERE COMM != '' ; ③ SELECT COMM FROM EMP WHERE COMM IS NOT NULL ; ④ SELECT COMM FROM EMP WHERE COMM NOT IN (NULL) ; 해설해보기 NULL은 IS NULL 혹은 IS NOT NULL을 사용함 따라서 정답은 ③ ---------------------- 빈 문자열('')과 NULL과 공백(' ')은 SQL에서 엄격.. 2024. 3. 6. <SQLD 4> between .. and 연산자를 사용법에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제4. 다음 주어진 SQL문과 동일한 결과값을 반환하는 SQL문으로 올바른 것은? SELECT * FROM EMP WHERE SAL BETWEEN 1000 AND 3000; ① SELECT * FROM EMP WHERE SAL >= 1000 AND SAL = 1000 OR SAL 2024. 3. 4. <SQLD 3> in 연산자를 사용법에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제3. 다음중 직업이 ANALYST 이거나 CLERK 이고 월급이 1200 초과하는 모든 컬럼을 출력하는 SQL을 2개를 고르시오 ? ( OR 가 먼저 수행되게하시오 ) ① SELECT * FROM EMP WHERE JOB IN ('ANALYST','CLERK') AND SAL > 1200;. ② SELECT * FROM EMP WHERE JOB = 'ANALYST' OR JOB = 'CLERK' AND SAL > 1200; ③ SELECT * FROM EMP WHERE (JOB = 'ANALYST' AND SAL > 1200) OR (JOB = 'CLERK' AND SAL > 1200); ④ SELECT * FROM EMP WHERE (JOB = 'ANALYST'.. 2024. 3. 3. <SQLD 2> like 연산자를 사용법에 대한 기출문제2 매일 SQLD 기출 문제 풀기 챌린지 [문제2] 다음에 주어진 테이블 SQLD_2 로 다음의 결과를 출력하는 SQL은 ? 테이블 SQLD_2 ID NAME 1 ___A 2 B 3 ___C 4 D 5 E 6 ___F 결과 ID NAME 1 ___A 3 ___C 6 ___F ① select * from SQLD_2 where name like '%%'; ② select * from SQLD_2 where name like '%#_%'; ③ select * from SQLD_2 where name like '%@_%' escape '@'; ④ select * from SQLD_2 where name like '%%' escape ''; 해설해보기 위의 결과는 SQLD_2테이블에서 NAME에 언더바(_)가 포함.. 2024. 3. 2. <SQLD 1> like 연산자를 사용법에 대한 기출문제 1 매일 SQLD 기출 문제 풀기 챌린지 [문제1] 아래의 SQL문에 대한 설명으로 올바른 것은 ? select * from emp where ename like 'A%'; ① emp 테이블에서 ename 이 A 또는 a 로 시작하는 모든 row ② emp 테이블에서 ename 이 A 로 시작하는 모든 row ③ emp 테이블에서 ename 이 A 로 끝나는 모든 row ④ emp 테이블에서 ename 이 A 또는 a 로 끝나는 모든 row 해설해보기 문제의 sql문은 emp 테이블에서 모든 행을 출력하는데, 출력 조건이 A로 시작하는 ename을 출력하는 것이다. 그 이유는 %가 A의 뒤에 있기 때문이다. 직접 실행해본 결과 a와 A는 구분해서 인식하기 때문에 ①,④ 은 오답이다. 따라서 정답은 ② 직접 .. 2024. 3. 1. 이전 1 2 3 다음 반응형