1. 모든 도서의 이름과 가격을 검색하시오.
select bookname, price from Book;
2. 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오.
select * from Book;
3. 도서테이블에 있는 모든 출판사를 검색하시오.
select publisher from book;
4. 검색된 출판사의 중복을 제거하시오.
select DISTINCT publisher from book;
5. 가격이 20000원 미만인 도서를 검색하시오.
select * from book where price < 20000;
6. 가격이 10000이상 20000이하인 도서를 검색하시오.(and, between)
select * from book where price between 10000 and 20000;
7. 출판사가 ‘good sports' 혹은 ’media'인 도서를 검색하시오.(in)
select * from book where publisher = 'good sports' OR publisher ='media';
8. 출판사가 ‘good sports' 혹은 ’media'가 아닌 도서를 검색하시오.(not in)
select * from book where publisher not in ('good sports', 'media');
9. 도서이름이 ‘golf'를 출간한 출판사를 검색하시오.
select * from book where bookname in('golf');
10. 도서이름에 ‘baseball'이 들어가는 도서를 검색하시오.(like)
select * from book WHERE bookname LIKE '%baseball%';
11. 도서이름의 왼쪽 두 번째 위치에 ‘o'라는 문자를 갖는 도서를 검색하시오.
select * from book WHERE bookname LIKE '__o%';
12. ‘Olympic’에 관련된 도서 중에 10000원 이하인 도서를 검색하시오.
SELECT * FROM Book WHERE bookname LIKE '%Olympic%' AND price <= 10000;
13. 도서를 이름순으로 검색하시오.
select * from book order by bookname asc;
14. 도서를 가격순으로 내림차순하고 가격이 같으면 이름순으로 검색하시오.
SELECT * FROM Book ORDER BY price DESC, publisher ASC;
15. 고객이 주문한 도서의 총 판매액을 구하시오
SELECT SUM(saleprice) FROM Orders;
16. 2번 Kim 고객이 주문한 도서의 총 판매액을 구하시오.
select sum(saleprice) AS '총판매액' from Orders where custid = 2;
17. 고객이 주문한 도서의 총 판매역, 평균값, 최저가, 최고가를 구하시오.
select sum(saleprice) AS '총판매액', AVG(saleprice) AS '평균값', MIN(saleprice) AS '최저가',MAX(saleprice) AS '최고가' from orders;
18. 서점의 도서 판매 건수를 구하시오.
select count(bookid) AS '도서 판매 건수' from book;
19. 고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오.
select custid AS '고객', SUM(orderid) AS '총 수량', SUM(saleprice) AS '총 판매액' from orders GROUP BY custid;
20. 가격이 8000원 이상인 도서를 구매한 고객에 대해서 고객별 주문 도서의 총 수량을 구하시오. 단 2권 이상 구매한 고객만 구하시오.
SELECT custid, COUNT(*) AS '도서 총 수량' FROM Orders WHERE saleprice >= 8000 GROUP BY custid HAVING count(*) >= 2;
21. 2014-07-05일 이후에 구매한 정보를 검색하시오.
select * from orders where orderdate >= '2014-07-05';
-- 조인
21. 고객과 고객의 주문에 관한 데이터를 모두 보이시오.
SELECT * FROM Customer, Orders WHERE Customer.custid =Orders.custid;
22. 고객과 고객의 주문에 관한 데이터를 고객번호순으로 정렬하여 보이시오.
SELECT * FROM Customer, Orders WHERE Customer.custid =Orders.custid ORDER BY Customer.custid;
23. 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.
select name AS '이름' ,saleprice AS '판매가격' from customer,orders where Customer.custid =Orders.custid;
24. 고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.
select name AS '고객명', SUM(saleprice) AS '총판매액' from customer,orders WHERE Customer.custid =Orders.custid GROUP BY Customer.name ORDER BY Customer.name;
25. 고객의 이름과 고객이 주문한 도서의 이름을 구하시오.
SELECT Customer.name, book.bookname FROM Customer, Orders, Book WHERE Customer.custid =Orders.custid AND Orders.bookid =Book.bookid;
26. 가격이 20000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
SELECT Customer.name, book.bookname FROM Customer, Orders, Book WHERE Customer.custid =Orders.custid AND Orders.bookid =Book.bookid AND Orders.saleprice =20000;
27. 도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매가격을 구하시오.
SELECT Customer.name, saleprice FROM Customer LEFT OUTER JOIN Orders ON Customer.custid =Orders.custid;
28. 가격이 가장 비싼 도서의 이름을 보이시오.
SELECT bookname FROM Book WHERE price = (SELECT MAX(price) FROM Book);
29. 도서를 구매한 적이 있는 고객의 이름을 검색하시오.(in)
SELECT name FROM Customer WHERE custid IN (SELECT custid FROM Orders);
30. media에서 출판한 도서를 구한 고객의 이름을 보이시오.
SELECT name FROM Customer WHERE custid IN (SELECT custid FROM Orders WHERE bookid IN (SELECT bookid FROM Book WHERE publisher='media'));
31. 주문이 있는 고객의 이름과 주소를 보이시오.(EXISTS)
SELECT name, address FROM Customer cs WHERE EXISTS (SELECT * FROM Orders od WHERE cs.custid =od.custid);
32. 평균 주문금액 이하의 주문에 대해서 주문번호와 금액을 보이시오.
SELECT orderid, saleprice FROM Orders WHERE saleprice <= (SELECT AVG(saleprice) FROM Orders);
33. 3번 고객이 주문한 도서의 최고 금액보다 더 비싼 도서를 구입한 주문의 주문번호와 금액을 보이시오.(ALL)
SELECT orderid, saleprice FROM Orders WHERE saleprice > ALL (SELECT saleprice FROM Orders WHERE custid='3');
'DB > MY-SQL' 카테고리의 다른 글
MYSQL - DDL, DML? (0) | 2021.05.26 |
---|---|
MYSQL 많이 사용하는 함수 (0) | 2021.05.26 |
MYSQL - JOIN (INNER JOIN) (0) | 2021.05.25 |
MYSQL - GROUP BY , HAVING (0) | 2021.05.25 |
MYSQL - 집계함수 COUNT()와 CREATE TABLE..SELECT (0) | 2021.05.25 |
댓글