no image
SQL 질의문(쿼리문) 문제정답 (개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 select bookname, price form book; 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. select * from book; 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) select distinct publisher from book; 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. select bookname, price from book where price = 10000 a..
2023.03.11
SQL
no image
SQL 질의문(쿼리문) 문제(개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. 질의 3-5 가격이 10,000원 이상 20,000 이하인 도서를 검색하시오. 질의 3-6 출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오. z 질의 3-7 ‘축구의 역사’를 출간한 출판사를 검색하시오. 질의 3-8 도서이름에 ‘축구’가 포함된 출판사를 검색하시오. 질의 3-9 도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오. 질의 3-10 축구에 관한 도서 중 가격이 20,000원 이상인 도서..
2023.03.11
SQL
no image
SQL 질의문(쿼리문) 테이블 데이터(개인공부)
테이블 데이터 DROP TABLE Book; DROP TABLE Customer; DROP TABLE Orders; DROP TABLE Imported_Book; CREATE TABLE Book ( bookid NUMBER(2) PRIMARY KEY, bookname VARCHAR2(40), publisher VARCHAR2(40), price NUMBER(8) ); CREATE TABLE Customer ( custid NUMBER(2) PRIMARY KEY, name VARCHAR2(40), address VARCHAR2(50), phone VARCHAR2(20) ); CREATE TABLE Orders ( orderid NUMBER(2) PRIMARY KEY, custid NUMBER(2) REFE..
2023.03.11
SQL
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오
select bookname, price
form book;


질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.
select *
from book;


질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)
select distinct publisher
from book;


질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.
select bookname, price
from book
where price < 20000;


질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.
select bookname, price
from book
where price >= 10000 and price <= 20000;


질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select *
from book
where publisher IN ('굿스포츠', '대한미디어');

또는

select *
from book
where publisher not IN ('굿스포츠', '대한미디어');

질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오. (LIKE) - LIKE 연산자는 문자열의 패턴을 검색하는 데 사용
select publisher, bookname
from book
where bookname LIKE '축구의 역사';


질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.
select publisher, bookname
from book
where bookname like '%축구%';


질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.
select bookname
from book
where bookname like '_구%';


질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.
select bookname
from book
where bookname like '%축구%' and price >= 20000;


질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select bookname, publisher
from book
where publisher in('굿스포츠', '대한미디어');


질의 3-12   도서를 이름순으로 검색하시오. (order by 기본적으로 오름차순, ASC)
select bookname
from book
order by bookname;


질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.
select bookname, price
from book
order by price, bookname;


질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC) @


질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.
select sum(saleprice)
from orders;

또는 

select sum(saleprice) as 총매출
from orders;


질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)
select sum(saleprice) as 김연아고객매출
from orders
where custid = 2;


질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)
select sum(saleprice) as 총매출, avg(saleprice) as 평균값, min(saleprice) as 최저가, max(saleprice) as 최고가
from orders;


질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))
select count(*)
from orders;


질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)
select custid, count(*) as 도서수량, sum(saleprice) as 총가격
from orders
group by custid;


질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)  @
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.


질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.
select *
from customer, orders
where customer.custid=orders.custid


질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.
select name, sum(saleprice)
from customer c, orders o
where c.custid=o.custid
group by c.name
order by c.name;


질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.
select c.name, b.bookname
from customer c, orders o, book b
where c.custid=o.custid and b.bookid=o.bookid;


질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
select name, bookname
from customer c, orders o, book b
where c.custid=o.custid and o.bookid=b.bookid
    and price = 20000;
    

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오. LEFT OUTER JOIN @@
select name, saleprice
from customer left outer join orders
    on customer.custid=orders.custid;
    

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX) @
select bookname, price
from book
where price = (select max(price)
            from book);
            

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN) @
select name
from customer
where custid in (select custid
                from orders);


질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN) @
select name
from customer
where custid in (select custid
                    from orders
                    where bookid in (select bookid
                                from book
                                where publisher = '대한미디어'));


질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)@
select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2
                where b2.publisher=b1.publisher);
또는

select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2);
또는

select bookname
from book
where price > (select avg(price)
                from book);


(합집합 UNION, 차집합 MINUS, 교집합 INTERSECT)


질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. @
select name
from customer
minus
select name
from customer
where custid in(select custid 
        from orders);


질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오. (EXIXTS)
select name, address
from customer
where exists (select *
                from orders
                where customer.custid = orders.custid);
또는

select name, address
from customer
where exists (select custid
                from orders
                where customer.custid = orders.custid);
반응형
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오

질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.

질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)

질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.

질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.

질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
z
질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오.

질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.

질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.

질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.

질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.

질의 3-12   도서를 이름순으로 검색하시오. (order by 사용)

질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.

질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC)

질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.

질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)

질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)

질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))

질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)

질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.

질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.

질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.

질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.

질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.

질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.

질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오.

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX)

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN)

질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN)

질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)

질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. - 합집합 UNION, 차집합 MINUS, 교집합 INTERSECT

질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오.
반응형
반응형

테이블 데이터

DROP TABLE Book;
DROP TABLE Customer;
DROP TABLE Orders;
DROP TABLE Imported_Book;

CREATE TABLE Book (
bookid NUMBER(2) PRIMARY KEY,
bookname VARCHAR2(40),
publisher VARCHAR2(40),
price NUMBER(8)
);

CREATE TABLE Customer (
custid NUMBER(2) PRIMARY KEY,
name VARCHAR2(40),
address VARCHAR2(50),
phone VARCHAR2(20)
);


CREATE TABLE Orders (
orderid NUMBER(2) PRIMARY KEY,
custid NUMBER(2) REFERENCES Customer(custid),
bookid NUMBER(2) REFERENCES Book(bookid),
saleprice NUMBER(8) ,
orderdate DATE
);

-- Book, Customer, Orders 데이터 생성

INSERT INTO Book VALUES(1, '축구의 역사', '굿스포츠', 7000);
INSERT INTO Book VALUES(2, '축구아는 여자', '나무수', 13000);
INSERT INTO Book VALUES(3, '축구의 이해', '대한미디어', 22000);
INSERT INTO Book VALUES(4, '골프 바이블', '대한미디어', 35000);
INSERT INTO Book VALUES(5, '피겨 교본', '굿스포츠', 8000);
INSERT INTO Book VALUES(6, '역도 단계별기술', '굿스포츠', 6000);
INSERT INTO Book VALUES(7, '야구의 추억', '이상미디어', 20000);
INSERT INTO Book VALUES(8, '야구를 부탁해', '이상미디어', 13000);
INSERT INTO Book VALUES(9, '올림픽 이야기', '삼성당', 7500);
INSERT INTO Book VALUES(10, 'Olympic Champions', 'Pearson', 13000);


INSERT INTO Customer VALUES (1, '박지성', '영국 맨체스타', '000-5000-0001');
INSERT INTO Customer VALUES (2, '김연아', '대한민국 서울', '000-6000-0001');
INSERT INTO Customer VALUES (3, '장미란', '대한민국 강원도', '000-7000-0001');
INSERT INTO Customer VALUES (4, '추신수', '미국 클리블랜드', '000-8000-0001');
INSERT INTO Customer VALUES (5, '박세리', '대한민국 대전', NULL);


-- 주문(Orders) 테이블의 책값은 할인 판매를 가정함
INSERT INTO Orders VALUES (1, 1, 1, 6000, TO_DATE('2014-07-01','yyyy-mm-dd'));
INSERT INTO Orders VALUES (2, 1, 3, 21000, TO_DATE('2014-07-03','yyyy-mm-dd'));
INSERT INTO Orders VALUES (3, 2, 5, 8000, TO_DATE('2014-07-03','yyyy-mm-dd'));
INSERT INTO Orders VALUES (4, 3, 6, 6000, TO_DATE('2014-07-04','yyyy-mm-dd'));
INSERT INTO Orders VALUES (5, 4, 7, 20000, TO_DATE('2014-07-05','yyyy-mm-dd'));
INSERT INTO Orders VALUES (6, 1, 2, 12000, TO_DATE('2014-07-07','yyyy-mm-dd'));
INSERT INTO Orders VALUES (7, 4, 8, 13000, TO_DATE( '2014-07-07','yyyy-mm-dd'));
INSERT INTO Orders VALUES (8, 3, 10, 12000, TO_DATE('2014-07-08','yyyy-mm-dd'));
INSERT INTO Orders VALUES (9, 2, 10, 7000, TO_DATE('2014-07-09','yyyy-mm-dd'));
INSERT INTO Orders VALUES (10, 3, 8, 13000, TO_DATE('2014-07-10','yyyy-mm-dd'));
반응형

'SQL' 카테고리의 다른 글

SQL 질의문(쿼리문) 문제정답 (개인공부)  (0) 2023.03.11
SQL 질의문(쿼리문) 문제(개인공부)  (0) 2023.03.11