#
SELECT cuisine_type,
#가장 낮은 주문 금액
MIN(price) as min_price,
#가장 높은 주문 금액
MAX(price) as max_price
FROM food_orders
GROUP BY cuisine_type
#내림차순 정렬
ORDER BY min_price DESC;

챗GPT는 한눈에 들어오게 들여쓰기를 활용하는 쿼리를 강조하고
명령어랑 함수는 반드시 대문자로 쓰라고 한다.
나중에 쿼리가 길어지고 복잡해져도 깔끔하게 쓸 수 있도록 지금부터 습관을 들여놓자.
#데이터베이스 지정
USE Sparta;
# 테이블 생성
CREATE TABLE products (
id INT PRIMARY KEY,
product_name VARCHAR(100),
price INT,
category VARCHAR(50)
);
# 데이터 집어넣기
INSERT INTO products (id, product_name, price, category)
VALUES
(1, '맥북 프로', 1200, '컴퓨터'),
(2, '다이슨 청소기', 300, '생활가전'),
(3, '갤럭시탭', 600, '컴퓨터'),
(4, '드롱기 커피머신', 200, '주방가전');

이번에도 GPT가 도와줘서 테이블 생성 완료.
SELECT
product_name,
price
FROM products;

SELECT *
FROM products
# LIKE 특정 단어 포함
WHERE product_name LIKE '%프로%';

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

SELECT SUM(price) AS '총액'
FROM products;

위에 GPT가 생성해준 코드를 따라하면서 스스로 테이블을 만들어보기로 했다.
모르는 부분은 사전캠프 기초 부분과 GPT 참조.
데이터베이스에 추가해야하는 테이블이다.
| 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 |
# 데이터베이스 지정
USE Sparta;
# 테이블 생성
CREATE TABLE orders(
# PRIMARY KEY는 각 행을 고유하게 식별한다.
# 나는 id 컬럼을 통해 줄 번호를 지정한다고 이해했다.
id INT PRIMARY KEY,
# INT -> 정수형
customer_id INT,
product_id INT,
amount INT,
shipping_fee INT,
# DATE -> 시간/날짜형, [250115]참조
order_date DATE
);
#데이터 집어넣기
INSERT INTO orders(
id,
customer_id,
product_id,
amount,
shipping_fee,
order_date
)
VALUES
(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');

이렇게 해서 테이블 생성 완료!
복붙하지 않고 하나씩 입력해보니까 대충 이해된다.
테이블 관련 명령어
테이블 생성
CREATE TABLE 테이블이름 ( 컬럼1 데이터타입, 컬럼2 데이터타입, ... );데이터 타입
- INT : 정수형
- VARCHAR(숫자) : 문자열 (최대글자수)
- PRIMARY KEY : 기본 키 -> 테이블에서 각 행을 고유하게 식별하는 열
데이터 삽입
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)데이터 수정
UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;데이터 삭제
DELETE FROM 테이블이름 WHERE 조건;
SELECT customer_id
FROM orders
WHERE amount >=2;

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

SELECT *
FROM orders
WHERE amount < 3 and shipping_fee > 15000;

SELECT *
FROM orders
ORDER BY shipping_fee DESC;

테이블 생성하는 연습을 했다. 나중에 데이터베이스에 데이터를 직접 입력할 일이 있을까? 싶기도 하고 많을 것 같기도 하고. SQL 강의 2주차까지 이해 완료했다. 다음주 5일 동안 SQL 강의에만 집중해서 빠르게 끝내버리고 싶다. 오늘은 아티클 스터디가 없어서 개인 공부만 했는데, 4시간 동안 집중하려니까 참 쉽지 않았다. 그래도 5일차가 되니 사전캠프에 익숙해졌다. SQL 기본강의 + 걷기반 문제 끝내고 SQLD 공부랑 파이썬 기초랑 병행해야지.