반응형
--3.1. 모든 도서의 이름과 가격을 검색하시오 146p.
SELECT bookname, price FROM Book;
--3.2. 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오.
SELECT bookid, bookname, publisher, price FROM Book;
SELECT * FROM Book;
--3.3 도서 테이블에 있는 모든 출판사를 검색하시오.
SELECT DISTINCT publisher FROM Book;
--3.4. 가격이 20,000원 미만인 도서를 검색하세요.
SELECT * FROM Book WHERE price < 20000;
--3.5. 가격이 20,000원 이하이고 10,000원 이상인 도서를 검색하세요.
SELECT * FROM Book WHERE price >= 10000 AND price <= 20000;
SELECT * FROM Book WHERE price BETWEEN 10000 AND 20000;
--3.6. 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오.
SELECT * FROM Book WHERE publisher IN ('굿스포츠', '대한미디어');
--3.7. '축구의 역사'를 출간한 출판사를 검색하시오.
SELECT * FROM Book WHERE bookname LIKE '축구의 역사';
--3.8. 도서이름에 '축구'가 포함된 출판사를 검색하시오.
SELECT bookname, publisher FROM Book WHERE bookname LIKE '%축구%';
--3.9. 도서이름의 왼쪽 두 번째 위치에 '구'라는 문자열을 갖는 도서를 검색하시오.
SELECT * FROM Book WHERE bookname LIKE '_구%';
--3.10. 축구에 관한 도서 중 가격이 20,000원인 도서를 검색하시오.
SELECT * FROM Book WHERE price >= 20000 AND bookname LIKE '%축구%';
--3.11. 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오.
SELECT * FROM Book WHERE publisher = '굿스포츠' OR publisher = '대한미디어';
SELECT * FROM Book WHERE publisher IN ('굿스포츠', '대한미디어');
--3.12. 도서를 이름순으로 검색하시오.
SELECT * FROM Book ORDER BY bookname DESC;
--3.13. 도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.
SELECT * FROM Book ORDER BY price, bookname;
--3.14. 도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 출력하시오.
SELECT * FROM Book ORDER BY price DESC, publisher ASC;
--3.15 고객이 주문한 도서의 총판매액을 구하시오.
SELECT SUM(saleprice) FROM Orders;
--3.16. 2번 김연아 고객이 주문한 도서의 총판매액을 구하시오.
SELECT SUM(saleprice) FROM Orders WHERE custid = 2;
--3.17. 고객이 주문한 도서의 총판매액, 평균값, 최저가, 최고가를 구하시오.
SELECT SUM(saleprice), AVG(saleprice), MIN(saleprice), MAX(saleprice) FROM Orders;
--3.18. 마당서점의 도서 판매 건수를 구하시오.
SELECT COUNT(*)
FROM Orders;
--3.19.고객별로 주문한 도서의 총수량과 총판매액을 구하시오.
SELECT custid, SUM(saleprice) AS 총판매액, SUM(*) AS 총수량 FROM Orders GROUP BY custid;
--3.20. 가격이 8000원 이상인 도서를 구매한 고객에 대하여, 고객별 주문 도서의 총 수량을 구하시오.
-- 단 두 권 이상 구매한 고객만 구한다.
SELECT COUNT(custid) FROM Orders WHERE saleprice >= 8000 GROUP BY custid;
SELECT custid, COUNT(*) FROM Orders WHERE saleprice >= 8000 GROUP BY custid HAVING COUNT(*) >= 2;
--3.21.고객과 고객의 주문에 관한 데이터를 모두 보이시오.
SELECT * FROM Orders od,Customer cs
WHERE od.custid = cs.custid;
--3.22.고객과 고객의 주문에 관한 데이터를 모두 보이시오.
-- 단,데이터를 고객번호 순으로 정렬하세요.
SELECT * FROM Orders,Customer
WHERE Orders.custid = Customer.custid
ORDER BY Customer.custid
;
--3.23. 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하세요.
SELECT Customer.name,Orders.saleprice FROM Orders,Customer
WHERE Orders.custid = Customer.custid;
--3.24.고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하세요.
SELECT Customer.name,SUM(Orders.saleprice) FROM Orders,Customer
WHERE Orders.custid = Customer.custid
GROUP BY Customer.name
ORDER BY Customer.name
;
3.20.
--3.25. 고객의 이름과 고객이 주문한 도서의 이름을 구하세요.
SELECT Customer.name,Book.bookname FROM Orders,Customer,Book
WHERE Orders.custid = Customer.custid
AND Orders.bookid = Book.bookid;
--3.26. 가격이 20000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
SELECT cs.name,bk.bookname FROM Orders od,Customer cs,Book bk
WHERE od.custid = cs.custid
AND od.bookid = bk.bookid
AND od.saleprice = 20000
;
--3.27.도서를 구매하지 않은 고객을 포함하여
--고객의 이름과 고객이 주문한 도서의 판매가격을 구하시오.
--외부 조인 Customer 기준...
SELECT Customer.name,Orders.saleprice FROM
Customer LEFT OUTER JOIN Orders
ON Customer.custid = Orders.custid
;
--3.28. 가장 비싼 도서의 이름을 보시이오.
SELECT bookname FROM Book WHERE price = (SELECT MAX(price) FROM Book);
--3.29. 도서를 구매한 적이 있는 고객의 이름을 검색하시오.
SELECT name FROM customer WHERE custid IN (SELECT custid FROM Orders);
--3.30 '대한미디어'에서 출판한 도서를 구매한 고객의 이름을 보이시오.
SELECT name
FROM Customer
WHERE custid IN (SELECT custid
FROM Orders
WHERE bookid IN (SELECT bookid
FROM Book
WHERE publisher = '대한미디어'));
--3.31.출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오.
--3.32.도서를 주문하지 않은 고객의 이름을 보이시오.
--3.33.주문이 있는 고객의 이름과 주소를 보이시오.
3.29
--Q.김씨인 고객의 정보를 출력하세요...
--Q.박 으로 시작하고 리로 끝나는 고객의 정보를 출력하세요.
--Q.축구에 관한 도서중 가격이 20000원 이상인 도서를 검색하세요.
--Q.도서를 이름순으로 검색하세요.(ORDER BY)
--Q.도서를 가격순으로 검색하세요.
--Q.도서를 가격순으로 검색하되 단, 가격이 같으면 도서명순으로 검색하자.
--Q.도서를 가격의 내림차순으로 검색해보자.
--Q.도서를 가격의 내림차순으로 검색하되
--만약 가격이 같다면..출판사의 오름차순으로.
--집계 함수 (통계)
--Q.고객이 주문한 도서의 총 판매액을 구하세요.
--Q.2번 김연아 고객이 주문한 도서의 총 판매액은??
--Q.(모든)고객이 주문한 총 판매액 , 평균가 , 최저가 , 최고가를 구하세요.
--Q.마당 서점의 도서 판매 건수를 구하세요....
--COUNT : 행의 개수를 출력..
--Q.고객별 주문한 도서의 총 수량과 총 판매액을 구하세요.
--GROUP BY : 기준이되는 속성만 출력가능 , 나머지 속성은 집계해서 출력.
--Q.가격이 8000원 이상인 도서를 구매한 고객에 대하여,
--고객별 주문 도서의 총 수량을 구하시오.
--단, 두권 이상 구매한 고객만 구한다.
--Q.고객과 고객의 주문에 관한 데이터를 모두 보이시오.
--Q.고객과 고객의 주문에 관한 데이터를 모두 보이시오.
-- 단,데이터를 고객번호 순으로 정렬하세요.
--Q. 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하세요.
--Q.고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하세요.
--동명이인...custid로 gruop...
--Q. 고객의 이름과 고객이 주문한 도서의 이름을 구하세요.
--Q. 가격이 20000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
--Q.도서를 구매하지 않은 고객을 포함하여
--고객의 이름과 고객이 주문한 도서의 판매가격을 구하시오.
--(외부 조인)
--Q.등록된 책 가격의 평균가격 보다 높은 책의 이름을 구하세요.
--Q.가장 비싼 도서의 이름을 구하세요...
--Q.도서를 구매한 적이 있는 고객의 이름을 구하세요.
--Q.대한 미디어에서 출판한 도서를 구매한 고객의 이름을 구하세요.
반응형
'SQL_ORACLE' 카테고리의 다른 글
Name이 null이면 'No name'으로 처리하기 (0) | 2021.02.13 |
---|---|
SQL의 SYSDATE는 사실 분단위로 작성되어 있다. (0) | 2021.02.10 |
RowNum은 ORDER BY보다 먼저 실행된다..... (0) | 2021.02.10 |
SQL 내부조인 (0) | 2021.02.03 |
SQL Chapter3. 연습문제 (0) | 2020.10.25 |