강원도지사
--insert 키 해제하기!!!!!!!!
select * from book;
select * from customer;
select * from orders;
select to_char(orderdate, 'yy-mm-dd') from orders;

--to_char(날짜타입에 해당하는 속성명, '출력 형식'): date 타입의 속성을 '출력 형식'에 맞게 문자열로 변환해주는 함수
-- 예를 들어 날짜타입의 속성이름이 orderdate, 데이터 예시로 20년 9월 1일이 insert되어 있다.
--select orderdate from orders; 이렇게 출력하면 정해진 날짜형식으로 나옴.(20/09/01)
--내가 원하는 형식인 20년 9월 1일로 출력하고 싶으면
--select to_char(orderdate_ 'yy-mm-dd') from orders;
--' ' 따옴표쓰면 괄호 안 한글은 안됨 " " 쌍따옴표를 쓰면 한글써짐
--Q1. 날짜 속성을 2020/09/01과 같은 형식으로 출력하시오
select to_char(orderdate, 'yyyy/mm/dd') from orders;
select to_char(orderdate, 'yyyy"년"mm"년"dd"일"') from orders;  

insert into orders values(11, 2, 1, 5000, '20/07/05');
insert into orders values(12, 3, 2, 25000, '20/08/05');
insert into orders values(13, 4, 3, 15000, '20/09/05');
insert into orders values(14, 3, 4, 13000, '20/09/06');
insert into orders values(15, 1, 6, 7000, '20/09/07');
insert into orders values(16, 1, 7, 3000, '20/08/03');

--Q2. customer와 orders테이블에서 2020년 7월에 책을 주문한 고객의 고객번호와 고객이름, 주문한 가격, 주문한 날짜를 조회하시오.
--(단, 아래 조건을 만족하시오)
--1. 주문한 날짜는 'yyyy-mm-dd'와 같은 형식으로 출력하고 컬럼명은 'orderdate'로 하시오 (별명을 orderdate로 하라는 뜻)
--2. 주문일 기준으로 오름차순 정렬, 주문일이 같다면 고객이름 기준으로 오름차순 정렬해주세요.
select c.custid, name, saleprice, to_char(orderdate, 'yyyy-mm-dd')orderdate
from customer c, orders o
where c.custid=o.custid and to_char(orderdate, 'yymm') = '2007'
order by orderdate asc;
select * from book;
select * from customer;
select * from orders;
--Q1. orders 테이블에서 2020년 7월에 속하는 주문일에 대해서 주문기간이 1일부터 5일까지이면 '장기 주문'
--나머지는 '단기 주문'으로 표시하는 칼럼(칼럼명:order type)을 추가하여 주문 내용을 전체 출력하는 sql문을 작성하시오.
--단 경과는 주문 가격을 기준으로 내림차순을 정렬해주세요

--1-1 orders 테이블을 출력해보자
select * from orders;
-- 1-2. orders테이블에서 2020년 7월에 속하는 주문일에 해당하는 주문을 출력해보자
select * from orders
where to_char(orderdate, 'yymm') = '2007';
--1-3. orders 테이블에서 2020년 7월에 속하는 주문일에 해당하는 주문을 주문 가격 기준으로 내림차순 정렬해보자
select * from orders
where to_char(orderdate, 'yymm') = '2007'
order by saleprice desc;
--1-4. 위테이블에서 주문기간이 1일부터 5일까지이면 '장기 주문'
--나머지는 '단기 주문'으로 표시하는 칼럼(칼럼명:order type)을 추가하시오.
select orderid, custid, bookid, saleprice, orderdate,
case
when to_char(orderdate, 'yymmdd') between '200701' and '200705'
then '장기 주문'
else '단기 주문' 
end order_type
--case end문
from orders
where to_char(orderdate, 'yymm') = '2007'
order by saleprice desc;

commit;
--round 문법

--round(소수점 자리가 있는 속성, 0 또는 1 또는 2 등) : 소수점
--round(소수점 자리가 있는 속성, 1) : 소수점 첫번째 자리까지 나타내기(두번째 자리에서 반올림)
--round(소수점 자리가 있는 속성, 0) : 소수점 나타내지 않기(첫번째 자리에서 반올림)
--round(소수점 자리가 있는 속성, -1) : 십의 자리까지 나타내기(일의 자리에서 반올림)

--Q2. 책 이름에 '축구'가 들어가는 책들의 평균가격을 소수점 첫째 자리까지만 나타내시오
select round(avg(price), 1)
from book
where bookname like '%축구%';

commit;
profile

강원도지사

@박강원입니다

노력하여 끊임없이 발전하는 사람이 되겠습니다!