본문 바로가기
[ Computer Science ]/Database_sql

[Database/MySQL] 기초 쿼리문 연습

by dev charlotte 2024. 10. 22.

 

1.

SELECT title

FROM BOOK 

WHERE title LIKE "%데이터%";

 

2. 

SELECT COUNT(title)    # SELECT COUNT(*)

FROM BOOK 

WHERE title LIKE "%데이터%";

 

3. 

SELECT AVG(price)   

FROM BOOK 

WHERE title LIKE "%데이터%";

 

4. 

SELECT  *

FROM CUSTOMER

WHERE address = "Seoul";

 

5. 

SELECT  COUNT(cust_no)      # SELECT  COUNT(*)

FROM CUSTOMER

WHERE address = "Seoul";

 

6.

SELECT  COUNT(*)     

FROM ORDER_TABLE

WHERE book_no = 3;

 

7.

SELECT AVG(IF(SUBSTR(dob, 1, 1) < 3, 24 - SUBSTR(dob, 1,2), 124 – SUBSTR(dob, 1,2)   ) )

FROM CUSTOMER

WHERE address = “Seoul”;

 

첫번째 자리가 3보다 작으면 2000년대에 태어난 사람 > 2024년에서 출생연도인 YY를 빼면 나이

첫번째 자리가 3보다 같거나 크면 1900년대에 태어난 사람 > 1924년에서 출생연도인 YY를 빼면 나이

 

 

 

 

 

1.

SELECT SUM(*)           # COUNT 아님 주의

FROM ORDER_TABLE O

JOIN BOOK  B

     ON O. book_num = B.book_no

WHERE title LIKE "%데이터%";     # (SELECT title LIKE "%데이터%");

 

2. 

SELECT SUM(B.price)

FROM BOOK B

JOIN ORDER_TABLE O

     ON B.book_no = O.book_num   

WHERE O.book_num = 3;   # 모든 합이 아닌 3번을 구매한 주문들의 가격 합

 

 

3. 

SELECT AVG(B.price)

FROM ORDER_TABLE O

JOIN BOOK B

     ON O.book_num = B.book_no

JOIN CUSTOMER C

     ON O.cust_num = C.cust_no

WHERE C.address = "Seoul";  

 

 

4. 

SELECT

    B.book_no,

    B.title, 
    COUNT(O.order_no) AS sale_count,  # 판매량(주문 수)
    SUM(B.price) AS total_sales      # 매출액(가격 합산)


FROM ORDER_TABLE O
JOIN BOOK B ON O.book_num = B.book_no
JOIN CUSTOMER C ON O.cust_num = C.cust_no


WHERE SUBSTR(C.dob, 1, 2) BETWEEN '00' AND '09'  -- 00년대생 고객
GROUP BY B.book_no, B.title 
ORDER BY sale_count DESC, total_sales DESC;  # 판매량 및 매출액 순으로 정렬