너무 간단한 문제는 제외하고 작성하려고 했는데, 문제 수가 적기도 해서 오랜만에 복습하는 느낌으로 다 적어보았다.
테이블에는 주소, 냉동시설 여부를 포함한 창고의 정보가 주어진다.
경기도에 위치한 창고의 정보를 구하여라.
이때 냉동시설 여부가 NULL이라면 'N'으로 출력하고, 창고 ID의 오름차순으로 정렬하여 나타낸다.
select WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, ifnull(FREEZER_YN, 'N') as FREEZER_YN
from FOOD_WAREHOUSE
where ADDRESS like '경기%'
order by WAREHOUSE_ID asc
ifnull(열, 출력할 값)을 사용하면 된다.like를 사용한다. 이때 %를 사용하면 임의 길이의 문자열을 대체하는 효과를 얻는다.테이블에는 동물의 ID, 이름이 포함된 정보가 주어진다.
이름이 없는 동물의 ID를 구하여라.
이때 ID의 오름차순으로 정렬하여 나타낸다.
select ANIMAL_ID
from ANIMAL_INS
where NAME is null
order by ANIMAL_ID asc
is null을 사용한다.테이블에는 동물의 ID, 이름이 포함된 정보가 주어진다.
이름이 있는 동물의 ID를 구하여라.
이때 ID의 오름차순으로 정렬하여 나타낸다.
select ANIMAL_ID
from ANIMAL_INS
where NAME is not null
order by ANIMAL_ID asc
is not null을 사용한다.테이블에는 동물의 이름이 포함된 정보가 주어진다.
이름이 NULL인 경우에는 "No name"으로 나타내도록 설정하여 동물의 정보를 구하여라.
ID 순서로 정렬하여 나타낸다.
select ANIMAL_TYPE, ifnull(NAME, "No name") as NAME, SEX_UPON_INTAKE
from ANIMAL_INS
order by ANIMAL_ID
ifnull(열, 출력할 값)을 사용하는 또 다른 문제다. select에서 이런 함수를 사용할 때는 alias를 꼭 해야한다는 점을 기억해야 한다.테이블에는 나이를 포함한 쇼핑몰 회원 정보가 주어진다.
나이 정보가 없는 회원의 수를 구하여라.
select count(*) as USERS
from USER_INFO
where AGE is null
count(*)를 사용하면 튜플의 수를 얻을 수 있다. NULL도 포함해서 숫자를 센다는 특징이 있는데, 여기서는 다른 열도 있기 때문에 이 예시에 해당되지는 않는다.아이템의 정보를 담은 테이블과 아이템 간의 부모 자식 관계를 담은 테이블이 주어진다.
부모 아이템이 없는 ROOT 아이템을 구하여라.
아이템 ID의 오름차순으로 정렬하여 나타낸다.
select ITEM_ID, ITEM_NAME
from ITEM_INFO join ITEM_TREE using(ITEM_ID)
where PARENT_ITEM_ID is null
order by ITEM_ID asc
아이템의 정보를 담은 테이블과 아이템 간의 부모 자식 관계를 담은 테이블이 주어진다.
더 이상 업그레이드 할 수 없는 아이템을 구하여라.
아이템 ID의 내림차순으로 정렬하여 나타낸다.
select ITEM_ID, ITEM_NAME, RARITY
from ITEM_INFO join ITEM_TREE using(ITEM_ID)
where ITEM_ID not in (select PARENT_ITEM_ID
from ITEM_TREE
where PARENT_ITEM_ID is not null)
order by ITEM_ID desc
테이블에는 길이를 포함한 물고기의 정보가 주어진다.
잡은 물고기의 평균 길이를 구하여라.
이때 평균 길이는 소수점 셋째자리에서 반올림하며, 10cm 이하의 물고기는 10cm로 취급해서 평균을 구한다.
select round(avg(LENGTH), 2) as AVERAGE_LENGTH
from (select ifnull(LENGTH, 10) as LENGTH
from FISH_INFO) A
ifnull을 사용해서 값을 대체할 수 있다.avg를 이용해 얻을 수 있으며, 반올림은 round(값, 나타낼 소수점 수)를 이용하여 수행할 수 있다.