1단계(1)
sql쿼리 각 절의 우선 순위
from >>> where >>> select >>> order by >>> group by >>> having >>> limit(이절은 order by 이후 실행)
1. 동물의 아이디와 이름
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 동물의 아이디와 이름을 animal_id순으로 조회하는 sql문 작성
출력 예시

나의 쿼리
SELECT ANIMAL_ID, NAME from ANIMAL_INS order by ANIMAL_ID;
1. select 문을 사용해 animal_id와 name 컬럼을 선택
2. order by 문을 사용해 animal_id 기준으로 정렬
2. 아픈 동물 찾기
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 아픈 동물의 아이디와 이름을 조회하는 sql문
INTAKE_CONDITION이 Sick인 경우가 아픈 동물임
나의 쿼리
SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION = 'Sick';
1. select문을 사용해 animal_id와 name컬럼 선택
2. where문을 사용해 intake_condition컬럼이 Sick인 경우만 필터
3. 이름이 있는 동물의 아이디
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 이름이 있는 동물의 id를 조회하는 sql문 작성
단, id는 오름차순 정렬
나의 쿼리
SELECT ANIMAL_ID from ANIMAL_INS where NAME is not null order by ANIMAL_ID;
1. select문을 사용해 ANIMAL_ID컬럼 선택
2. where문을 사용해 name컬럼이 null이 아닌 값 필터(is not null)
3. order by문을 사용해 animal_id컬럼 기준 오름차순 정렬
4. 여러 기준으로 정렬하기
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 동물의 id와 이름, 보호 시작일을 이름 순으로 조회하는 sql문
단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보야줘야됨
나의 쿼리
SELECT ANIMAL_ID, NAME, DATETIME from ANIMAL_INS order by NAME, DATETIME desc;
1. select문을 사용해 animal_id, name, datetime 컬럼 선택
2. order by문을 사용해 name컬럼을 먼저 오름차순 정렬후, datetime컬럼 내림차순 정렬
5. 역순 정렬하기
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 동물의 이름과 보호 시작일을 조회하는 sql문 작성
결과는 animal_id 역순으로 보여주시오
나의 쿼리
SELECT NAME, DATETIME from ANIMAL_INS order by ANIMAL_ID desc;
1. select문을 사용해 name, datetime 컬럼 선택
2. order by문을 사용해 animal_id 내림차순으로 정렬
6. 어린 동물 찾기
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 젊은 동물의 아이디와 이름을 조회하는 sql문 작성
결과는 아이디 순으로 조회
나의 쿼리
SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION != 'Aged' order by ANIMAL_ID;
1. select문을 사용해 animal_id, name 컬럼선택
2. where문을 사용해 intake_condition 컬럼이 aged가 아닌것을 필터링(젊은 동물만 필터링)
3. order by문을 사용해 animal_id기준 정렬
7. 상위 n개 레코드
ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

문제 : 가장 먼저 들어온 동물의 이름을 조회하는 sql문 작성
나의 쿼리
SELECT NAME from ANIMAL_INS order by DATETIME limit 1;
1. select문을 사용해 name컬럼 선택
2. order by문을 사용해 datetime컬럼 오름차순 정렬
3. limit문을 사용해 1개의 레코드만 필터
8. 나이 정보가 없는 회원 수 구하기
USER_INFO 테이블 : 의류 쇼핑몰에 가입한 회원 정보

GENDER 컬럼은 비어있거나 0 또는 1의 값을 가짐(0은 남자, 1은 여자)
문제 : 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문
이떄 컬럼명은 USERS로 지정
나의 쿼리
SELECT count(*) as USERS from USER_INFO where AGE is null;
1. select문을 사용해 count(*) >> 행의 수 카운트 , as 별칭을 사용 users
2. where문을 사용해 age컬럼이 null 인 경우 필터
9. 가장 비싼 상품 구하기
PRODUCT 테이블 : 의류 쇼핑몰에서 판매 중인 상품들의 정보

상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미
문제 : 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문
이떄 컬럼명은 MAX_PRICE로 지정
나의 쿼리
SELECT MAX(PRICE) as MAX_PRICE from PRODUCT;
1. select문을 사용해 price컬럼 최댓값, as 별칭을 사용 max_price
10. 경기도에 위치한 식품창고 목록 출력하기
FOOD_WAREHOUSE 테이블 : 식품창고의 정보

문제 : 경기도에 위치한 창고의 ID,이름,주소,냉동시설 여부를 조회하는 SQL문 작성
이떄 냉동시설 여부가 NULL인 경우 'N'으로 출력, 결과는 창고ID를 기준으로 오름차순 정렬
나의 쿼리
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS,
CASE
when FREEZER_YN is null then 'N'
else FREEZER_YN
END as FREEZER_YN from FOOD_WAREHOUSE where WAREHOUSE_NAME like '%경기%' order by WAREHOUSE_ID;
1. select문을 사용해warehouse_id, warehouse_name, adderss, freezer_yn 선택
2. case를 사용해 freezer_yn컬럼이 널이면 'N'으로 아니면 기존 값으로 설정
3. where문을 사용해 warehouse_name컬럼 값이 '경기' 를포함한 레코드 필터
4. order by문을 사용해 warehouse_id 기준 오름차순 정렬