IFNULL
해당 칼럼이 NULL값을 반환할 때, 다른 값으로 대체할 수 있도록 하는 함수
- 기본 구조
SELECT IFNULL(column명, NULL일 경우 대체할 값)
FROM ~
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소,
냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우,
'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
SELECT WAREHOUSE_ID, WAREHOUSE_NAME,ADDRESS, IFNULL(FREEZER_YN,'N')
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기%'
여기서는 냉동시설 여부가 NULL인 경우 'N'으로 출력하기 위해서 IFNULL을 사용했다.
DATE_FORMAT
날짜 데이터를 지정한 형식으로 출력하는 함수
- 기본 구조
SELECT DATE_FORMAT(컬럼 명, 형식 지정) AS DATE
FROM~
해당 컬럼의 데이터를 지정한 형식에 맞게 변환시켜 준다.
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID,
진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고,
고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d') HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ("CS", "GS")
ORDER BY 4 DESC, 1
EXTRACT
주어진 날짜에 일부를 추출할 수 있다.
- 기본 구조
SELECT EXTRACT(YEAR FROM DATA)
YEAR 부분에는 MONTH, DAY, WEEK 등등 다양하게 들어갈 수 있다.
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
SELECT Extract(Hour from DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE Extract(Hour from DATETIME) BETWEEN 9 AND 20
GROUP BY 1
ORDER BY 1
09시부터 19:59분 까지의 데이터만 필요하기 때문에 시간 데이터에서
시간만 추출하여 BETWEEN을 이용해서 9시와 20시 사이의 데이만 가져왔다.
LIMIT
LIMIT 키워드를 사용하면 테이블을 조회시 한계(?)를 지정할 수 있다.
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류,
식품 가격을 조회하는 SQL문을 작성해주세요.
SELECT PRODUCT_ID,PRODUCT_NAME, PRODUCT_CD,CATEGORY, PRICE
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
가장 비싼 가격의 제품 정보를 가져오기 위해 가격을 기준으로 내림차순을 해주었고
LIMIT 으로 상위 1개 제품 정보만 가져왔다.
# 5개 가져오기
SELECT *
FROM ~
LIMIT 5
# 11번부터 10개 가져오기
SELECT *
FROM ~
LIMIT 10,10
'코드카타' 카테고리의 다른 글
[SQL]프로그래머스 Lv3. 카테고리 별 도서 판매량 집계하기 (1) | 2023.12.21 |
---|---|
[SQL]프로그래머스 Lv.3 오랜 기간 보호한 동물(1) (0) | 2023.12.21 |
[코드카타/3일차] (1) | 2023.12.21 |
[코드카타/목표] (0) | 2023.12.20 |
[코드카타/1일] NULL 값 다루기 (0) | 2023.12.19 |