TIL(Today I Learned)을 오늘부터 작성하기 시작했다!

TIL(Today I Learned) - 요약

  1. 팀과 같이 아티클 스터디를 통하여 게임서버의 역사에 대해 알아보는 시간을 가졌다.

  2. SQL 문법 과제들을 풀면서 기초를 다지는 시간을 가졌다.

  3. 웹개발 강의를 조금씩 보면서 언어에 대한 기초를 다시금 키웠다.

TIL(Today I Learned) - 중간 과정

  • 게임서버의 역사에 대해 조사할 때 최대한 큰 흐름으로 찾아보기 위해 영어로 검색을 해보았더니 여러 정보가 나왔엇다.

  • SQL 문법 과제들에 정답을 추론하고 정답인지 확인하기 위해 실행할 수 있는 환경을 만들었다.

  • 웹개발 강의를 좀 더 들으며 이 블로그를 더욱 꾸밀 수 있도록 노력해야 겠다!


과제 제출 - SQL 문법을 연습해요

1. 돈을 벌기 위해 일을 합시다!

아래와 같은 sparta_employees(직원) 테이블이 있습니다.

id name position salary hire_date
1 르탄이 개발자 30000 2022-05-01
2 배캠이 PM 40000 2021-09-25
3 구구이 파트장 35000 2023-06-01
4 이션이 팀장 50000 2021-07-09

1.sparta_employees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.

SELECT name, position FROM sprata_employees;

2.sparta_employees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.

SELECT DISTINCT position FROM sprata_employees;

3.sparta_employees 테이블에서 연봉(salary)이 40000과 60000 사이인 직원들을 선택하는 쿼리를 작성해주세요.

SELECT id FROM sparta_employees WHERE salary BETWEEN 40000 AND 60000;

4.sparta_employees 테이블에서 입사일(hire_date)이 2023년 1월 1일 이전인 모든 직원들을 선택하는 쿼리를 작성해주세요.

SELECT id FROM sparta_employees WHERE hire_date < '2023-01-01';

2. 이제 좀 벌었으니 flex 한 번 해볼까요?!

여러분이 구매하고 싶은 상품들의 정보가 있는 products(상품) 테이블이 아래에 있습니다.

id product_name price category
1 맥북 프로 1200 컴퓨터
2 다이슨 청소기 300 생활가전
3 갤럭시탭 600 컴퓨터
4 드롱기 커피머신 200 주방가전

5.products 테이블에서 제품 이름(product_name)과 가격(price)만을 선택하는 쿼리를 작성해주세요.

SELECT product_name, price FROM products;

6.products 테이블에서 제품 이름에 ‘프로’가 포함된 모든 제품을 선택하는 쿼리를 작성해주세요

SELECT id FROM products WHERE product_name LIKE '%프로%';

7.products 테이블에서 제품 이름이 ‘갤’로 시작하는 모든 제품을 선택하는 쿼리를 작성해주세요.

SELECT id FROM products WHERE product_name LIKE '갤%';

8.products 테이블에서 모든 제품을 구매하기 위해 필요한 돈을 계산하는 쿼리를 작성해주세요.

SELECT SUM(price) FROM products;

3. 상품 주문이 들어왔으니 주문을 처리해봅시다!

이제 상품 주문이 들어왔으니 어떤 고객에게 어떤 주문이 들어왔는지를 파악할 수 있는 orders(주문) 테이블이 아래에 있습니다.

id customer_id product_id amount shipping_fee order_date
1 719 1 3 50000 2023-11-01
2 131 2 1 10000 2023-11-02
3 65 4 1 20000 2023-11-05
4 1008 3 2 25000 2023-11-05
5 356 1 1 15000 2023-11-09

9.orders 테이블에서 주문 수량(amount)이 2개 이상인 주문을 진행한 소비자의 ID(customer_id)만 선택하는 쿼리를 작성해주세요!

SELECT customer_id FROM orders WHERE amount >= 2;

10.orders 테이블에서 2023년 11월 2일 이후에 주문된 주문 수량(amount)이 2개 이상인 주문을 선택하는 쿼리를 작성해주세요!

SELECT id FROM orders WHERE order_date > '2023-11-02' AND amount >= 2; 

11.orders 테이블에서 주문 수량이 3개 미만이면서 배송비(shipping_fee)가 15000원보다 비싼 주문을 선택하는 쿼리를 작성해주세요!

SELECT id FROM orders WHERE amount < 3 AND shipping_fee > 15000;

12.orders 테이블에서 배송비가 높은 금액 순으로 정렬하는 쿼리를 작성해주세요!

SELECT id FROM orders ORDER BY shipping_fee DESC;

4. 이제 놀만큼 놀았으니 다시 공부해봅시다!

아래와 같은 sparta_students(학생) 테이블이 있습니다.

id name track grade enrollment_year
1 르탄이 Node.js A 2023
2 배캠이 Spring B 2022
3 구구이 Unity C 2021
4 이션이 Node.js B 2022

13.sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요!

SELECT name, track FROM sparta_students;

14.sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!

SELECT id FROM sparta_students WHERE track <> 'Unity';

15.sparta_students 테이블에서 입학년도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해주세요!

SELECT id FROM sparta_students WHERE enrollment_year IN ('2021','2023');

16.sparta_students 테이블에서 Node.js 트랙 소속이고 학점이 ‘A’인 학생의 입학년도를 선택하는 쿼리를 작성해주세요!

SELECT enrollment_year FROM sparta_students WHERE track = 'Node.js' AND grade = 'a';