반응형
SELECT는 DML중 가장 자주 사용하는 명령어로, DB에서 필요한 값을 추출하는 명령어이다.
구문은
SELECT [원하는 속성들]
FROM [어떤 테이블]
WHERE [조건]
ORDER BY [어떤 속성으로 정렬할 것인지] [ASC/DESC : 오름차/내림차]
LIMIT [몇개];
이런식으로 구성된다.
원하는 속성들이 여러 테이블에 있는 경우 테이블명.속성명으로 사용한다.
이제 프로그래머스 SQL 문제를 풀어보자.
ANIMAL_INS는 동물에 대한 정보다.
이렇게 되어 있을 때 필요한 정보를 SELECT을 통해 뽑아보자.
1.
모든 정보를 ANIMAL_ID 순으로 조회한다.
따라서
SELECT * FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
2.
별거 없다. 이름이랑 보호시작일(DATETIME)을 조회하면 된다. 다만 역순이므로 DESC를 붙여주자.
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
3.
아픈 동물의 아이디를 가져온다. 아픈동물의 상태는 INTAKE_CONDITION이 SICK인 경우를 뜻한다고 추가설명이 되어있다. WHERE절을 쓰면 될 것으로 보인다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION='Sick'
ORDER BY ANIMAL_ID;
4.
젊은 동물은 INTAKE_CONDITON이 Aged가 아닌 경우를 뜻한다.라고 추가설명이 되어 있다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITON='Aged'
ORDER BY ANIMAL_ID;
5.
매우 쉽다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
6.
지금까지 중 가장 어려운 문제. 그러나 정렬을 두번 해주면 된다. 이름은 오름차순으로, 날짜는 내림차순으로 해주면 된다.
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC;
7.
쉽게 생각하자. 정렬해서 제일 위에 있는 것이 가장 먼저 들어온 녀석이다.
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1;
8.
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
가장 최근이므로 DESC로 정렬했다.
9.
똑같아서 코드도 안적겠다.
반응형