✏️ 24.11.27 TIL

Dada·2024년 11월 27일

▶ [ SQL ] 강의 정리 내용

📌 POINT!

1. 숫자 연산

  • 합계와 평균 구하기
    • 합계: SUM(컬럼)
    • 평균: AVG(컬럼)
SELECT 
	sum(food_preparation_time) 
     -- 음식 준비 시간 합산 	
     total_food_preparation_time
     -- 배달 평균 시간 
	, avg(delivery_time) avg_delivery_time 
FROM food_orders
  • 전체 데이터의 개수 구하기
    • 데이터 개수: COUNT(컬럼)
    • 몇 개의 값을 가지고 있는지 체크 = DISTINCT 활용
select 
	-- 테이블 전체의 데이터(행) 개수 조회
    count(1) count_of_orders,
    -- 고객 수 조회
    count(distinct customer_id) count_of_customers
from food_orders
  • 데이터의 범위, 최솟값과 최댓값 구하기
    • 최솟값: MIN(컬럼)
    • 최댓값: MAX(컬럼)
SELECT 
	-- 가격 최솟값 
	min(price) min_price
    -- 가격 최댓값
	, max(price) max_price
FROM
	food_orders

2. 범주별 연산(Group by)

  • 카테고리별 숫자 연산 = Group by 활용
  • Group by는 From문 뒤에 작성
-- 기본 구조 : GROUP BY 카테고리컬럼
GROUP BY pay_type

3. 결과 정렬 (Order by)

  • Order by에서 설정한 컬럼 기준으로 데이터 정렬
    • DESC: 내림차순
    • ASC: 오름차순 (기본적으로 오름차순으로 세팅)
  • Order by에서 기준이 되는 컬럼을 나열할 때 순서 배치도 신경써야 함
-- Order by 뒤에 한 개 이상의 칼럼 나열
SELECT 
	*
FROM 
	customers c 
ORDER BY 
		gender 
		, name -- 먼저 gender 기준으로 정렬한 뒤, name 기준으로 재정렬

5. SQL 기본 구조 복습

-- 익숙해져야 한다!!
SELECT 
FROM  
WHERE 
GROUP BY
ORDER BY

[ 딴생각 ] SQL 구문은 왜 이런 형태로 작성할까?

FROM이 먼저 오는 게 편할 것 같은데, SELECT를 먼저 작성해야 해서 불편했다.
(그리고 외우는 것도 귀찮음)

왜 이렇게 설계했을까?
그리고 왜 나는 이 구조가 왜 불편할까?

고민하다가 결국 GPT 찬스 사용.

▶ GPT의 답변은 이러했다.
"SQL의 설계 원리는 사람이 읽고 쓰기 쉬운 자연스러운 문법을 따르면서도, 내부적으로 최적화된 실행 순서를 제공하는 데 초점이 맞춰져 있습니다."

근데 왜 나는 불편하냐.. 나는 사람이 아닌 것인가..
존재론적 고민까지 이어지던 찰나에 든 생각.

...맞다. 이거 개발한 사람은 영어쓰지?

바보 같은 고민을 하고 있었다. 영미권 화자가 개발했으니 당연히 영어의 어순을 참고했겠지...

▶ 영어 문장 예시
→ "I want to SELECT these columns FROM this table WHERE this condition applies."
▶ 한국어 문장 예시
→"(From)이 테이블에서 (Where)이 조건을 만족하는 (Select)열들을 선택하고 싶다."

! 결론 = 그냥 내가 영어에 익숙하지 않아서 불편했던 거였다.


▶ [ SQL ] 라이브 세션 정리 내용
▶ [ 직무 ] 라이브 세션 정리 내용

  • SQL 라이브 세션은 복습 후 다시 정리해야 함

0개의 댓글