본문 바로가기
DB/MY-SQL

MYSQL - Select문, 서브쿼리 기본 예제

by ahhang0k 2021. 5. 25.

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

댓글