다음 team_projects 테이블을 참조하여 문제들을 풀어보세요.
id
|
name
|
start_date
|
end_date
|
aws_cost
|
1
|
일조
|
2023-01-01
|
2023-01-07
|
30000
|
2
|
꿈꾸는이조
|
2023-03-15
|
2023-03-22
|
50000
|
3
|
보람삼조
|
2023-11-20
|
2023-11-30
|
80000
|
4
|
사조참치
|
2022-07-01
|
2022-07-30
|
75000
|
문제
team_projects
테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!team_projects
테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!team_projects
테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!team_projects
테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!
문제 풀이
데이터베이스와 테이블 생성하기
CREATE DATABASE step5;
USE step5;
CREATE TABLE team_projects(
id INT PRIMARY KEY,
name VARCHAR(50),
start_date DATE,
end_date DATE,
aws_cost INT
);
INSERT INTO team_projects (id, name, start_date, end_date, aws_cost) VALUES
(1, '일조', '2023-01-01', '2023-01-07', 30000),
(2, '꿈꾸는 이조', '2023-03-15', '2023-03-22', 50000),
(3, '보람삼조', '2023-11-20', '2023-11-30', 80000),
(4, '사조참치', '2022-07-01', '2022-07-30', 75000);
1번
team_projects
테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!
정답 :
SELECT name FROM team_projects WHERE aws_cost >= 40000;
정답 확인 :
2번
team_projects
테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!
DATE 포맷에서 년도로 조회하는 방법은 DATE_FORMAT() 함수에서 %Y로 년도를 추출하는 것이다.
정답 :
SELECT * FROM team_projects WHERE DATE_FORMAT(start_date, "%Y") = '2022';
정답 확인 :
3번
team_projects
테이블에서 현재 진행 중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!
현재 날짜를 반환해주는 함수가 있는지 찾아보았다.
정답 :
SELECT * FROM team_projects WHERE end_date > CURDATE();
정답 확인 :
해당하는 값이 없기 때문에 Empty set이 출력된 거라고 해석해도 좋을까? 내 코드에 오류가 있는지 확인해야 하기에 ‘Empty set’의 정확한 의미에 대해 검색해보기로 했다.
What is the meaning of ‘empty set’ in MySQL result set? (tutorialspoint.com)(참고한 링크)
“If there is ‘empty set’ in the result set of MySQL query then it means that MySQL is returning no rows and no error also in the query.”
이 부분을 보아하니 사용한 문법에는 오류가 없는 듯하다.
4번
team_projects
테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!
날짜 데이터끼리 덧셈 뺄셈이 가능하다는 건 앞선 퀘스트를 통해 확인한 바 있다. 그러나 날짜 간격을 어떻게 수치화할 수 있을까? 열심히 검색해본 결과 DATEDIFF() 함수를 이용할 수 있을 것 같다.
새롭게 계산한 값을 담아둘 칼럼의 이름도 별명으로(alias) date_diff라고 명시해주었다.
정답 :
SELECT DATEDIFF(end_date, start_date) AS date_diff FROM team_projects;
정답 확인 :
'개발일지 > SQL' 카테고리의 다른 글
SQL 문법 다지기(7) (0) | 2024.10.10 |
---|---|
SQL 문법 다지기(6) (2) | 2024.10.10 |
SQL 문법 다지기(4) (0) | 2024.10.04 |
SQL 문법 다지기(3) (1) | 2024.10.03 |
SQL 문법 다지기(2) (5) | 2024.10.02 |
댓글