본문 바로가기
반응형

SQL 문제 풀기129

<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.
<프로그래머스 75> 자동차 대여 기록 별 대여 금액 구하기(Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다 Column name Type Nullable CAR_.. 2024. 2. 29.
<프로그래머스 74> 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다 Column name Type Nullable CAR_.. 2024. 2. 28.
<프로그래머스 73> 입양 시각 구하기 (2) (Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 문제 보호소에서는 몇 시에 입양이 가장 활.. 2024. 2. 27.
<프로그래머스 72> 오프라인/온라인 판매 데이터 통합하기(Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블과 오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다 Column name Type Nullable ONLINE_SALE_ID INTEGER FALSE USER_ID INTEGER FALSE PRO.. 2024. 2. 26.
<프로그래머스 71> 그룹별 조건에 맞는 식당 목록 출력하기(Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 다음은 고객의 정보를 담은 MEMBER_PROFILE테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column name Type Nullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GENDER VARCHAR(1) TRUE DATE_OF_BIRTH DATE TRUE REST_REVIEW 테이블은 다음과.. 2024. 2. 25.
<프로그래머스 70> 주문량이 많은 아이스크림들 조회하기(Lv.4) 프로그래머스에서 제공하는 SQL문제 매일 풀기 챌린지 문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. FIRST_HALF테이블의 SHIPMENT_ID는 JULY테이블의 SHIPMENT_ID의 외래 키입니다 NAME TYPE NULLABLE SHIPMENT_ID INT(N) FALSE FLAVOR VARCHAR(N) FALSE.. 2024. 2. 24.
반응형