데이터 -> 정보 -> 지식 -> 지혜
-- 도서테이블의 도서 중 가격이 가장 비싼 책과 가장 저렴한 가격을 검색하시오, 2중 셀렉트문 잘 외워두자
select bookname, price from book where price = (select max(price) from book) or price = (select min(price) from book);
-- 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오
select name, address from customer where address like '%서울%' or address like '%대전%';
where in 에서는 와일드 카드를 사용할 수 없다
쿼리문 복습, 일단 조인없는 부분만
create table publisher(
pubno char(4) check(pubno like 'p___') primary key,
pubname varchar(20) default '한양출판사' check(pubname in('asgas','asgasassa','sagasgzx')),
tel char(24) not null,
address char(20)
);
-- insert into (넣을 테이블 들) values (넣을 데이터들); 형태 잘 기억해두자
insert into publisher (pubno, pubname, address, tel) values ('p111','asgas','asaasfasv','arseh');
-- 외래키 입력하는 양식 잘 기억해두자
select * from publisher;
create table NewBook(
bookid int primary key auto_increment,
bookname varchar(20) not null,
price int not null check(price < 40000),
pubno char(4),
foreign key(pubno) references publisher(pubno) on update cascade on delete cascade
);
alter table NewBook add column isbn varchar(13);
alter table NewBook modify column isbn int;
alter table NewBook change column isbn isbn_no_int int;
alter table NewBook modify column pubno char(4) null;
alter table BookNew add isbn_no int;
alter table BookNew add isbn_no_no int;
rename table NewBook to BookNew;
desc NewBook;
select * from book;
select * from customer;
select * from orders;
-- 고객 번호가 3번인 선수의 이름과 주소를 검색하시오
select name, address from customer where custid = 3;
-- 2014년 7월 4일~7월 7일 사이에 주문받은 도서의 주문번호와 주문날짜를 검색하시오
select orderid , orderdate from orders where orderdate between '20140707' and '20140707';
-- 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오
select name, address from customer where address like '%서울%' or address like '%대전%';
-- 출판사가 이상미디어 중 가격이 20000원 이상인 도서의 책제목, 출판사, 가격을 검색
select bookname, publisher, price
from book
where publisher = '이상미디어' and price >= 20000;
-- 도서를 주문한 회원의 번호를 검색하시오 단 중복된 회원의 번호는 한번만 출력
select distinct custid from orders;
-- 고객 중 전화번호가 없는 고객의 이름과 주소를 검색하시오
select name, address from customer where phone is null;
-- 출판사가 굿스포츠 인 도서 중 축구가 포함된 도서의 이름과 출판사 가격을 검색
select * from book;
select bookname, publisher from book where publisher = '굿스포츠' and bookname like '%축구%';
-- 2014년 7월 4일~7월 7일 사이에 주문받은 도서를 제외한 도서의 주문번호 주문날짜를 검색하시오
select orderid, orderdate from orders where orderdate not between '20140704' and '20140707';
-- 도서 테이블에서 출판사별로 금액의 합계와 평균을 출력해주세요
select sum(price), avg(price) from book group by publisher;
-- 도서테이블의 도서 중 가격이 가장 비싼 책과 가장 저렴한 가격을 검색하시오, 2중 셀렉트문 잘 외워두자
select bookname, price from book where price = (select max(price) from book) or price = (select min(price) from book);
-- 주문 테이블에서 고객번호 가 1번인 고객의 총 구매한 책의 가격을 출력하시오
select sum(saleprice) from orders where custid = 1;
select * from orders;
-- 주문 테이블에서 고개번호 별로 책 구입 금액이 비싼 책 부터 정렬해서 고객번호 판매금액을 검색하시오
select custid, saleprice from orders order by custid, saleprice desc;
-- 주문 테이블에서 책 번호 별로 판매금액의 합계를 구하되 판매금액의 합계가 10000원 이상 인 것만 검색하시오
select bookid, sum(saleprice) from orders group by bookid having sum(saleprice) >= 10000;
-- 도서테이블의 도서의 총 개수를 출력해주세요
select count(*) from book;
-- 도서 테이블의 총 출판사의 개수를 출력해 주세요
select * from book;
select count(distinct publisher) from book;
-- 주문 테이블에서 한번이라도 주문한 고객의 개수를 출력해주세요
select * from orders;
select count(distinct custid) from orders;
-- 고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오
select count(bookid) , sum(saleprice) from orders group by custid;
-- 고객과 고객의 주문한 관한 테이블을 모두 검색하시오
-- 책을 주문한 고객의 이름과 책이름 가격을 검색하시오
-- 박지성이 주문한 책의 총가격을 검색하시오
-- 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오
-- 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하되 금액이 비싼거별로 정렬하시오
-- 도서명별로 책을 판매한 금액을 검색하시오
-- 책을 구매한 고객의 이름과 구매한 책의 이름과 판매금액을 검색하시오
-- 고객명별로 책을 구입한 합계를 검색하되 합계가 높은순으로 검색하시오
-- 주문 테이블에서 책 이름 별로 판매금액의 합계를 구하되 판매금액의 합계가 10000 원 이상인 것만 검색
-- 가격이 20000 원 이상인 도서를 주문한 고객의 이름과 도서의 이름을 검색하시오
-- 도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매가격을 구하시오.
'학교 강의 > 데이터베이스' 카테고리의 다른 글
조인, 서브쿼리 조금 더 알아본 내용 (0) | 2023.10.29 |
---|---|
9주차 조인, 서브쿼리 (1) | 2023.10.27 |
6주차 - 조인 시험에 많이 나옴 (0) | 2023.10.13 |
5주차 (1) | 2023.10.06 |
4 주차 (0) | 2023.09.22 |