26. view (가상테이블) | or replace 는 같은 이름있을시 덮어씀
--조인, 외부키문제
--1. seq_food 1부터 3씩증가, 캐시0
create sequence seq_food start with 1 increment by 3 nocache;
--2. 테이블: food...6개정도...제약조건은 알아서 줄것
----------------------------------------------------------------------------------
--시퀀스(fno) 음식명(food) 가격(prince) 상호명(shop) 위치(loc)
--1 스파게티 15000 소렌토 역삼동
---------------------------------------------------------------------------------
--부모테이블
create table food( fno number(5), CONSTRAINT food_pk_fno primary key,
food varchar2(30), price number(7), shop varchar2(20), loc varchar2(20) );
--부모테이블에 insert
insert into food values(seq_food.nextval, '스파게티', 15000, '소렌토', '역삼동');
insert into food values(seq_food.nextval, '뇨끼', 20000, '모란', '역삼동');
insert into food values(seq_food.nextval, '순대국밥', 7000, '장수순대', '도곡동');
insert into food values(seq_food.nextval, '햄버거', 12000, '맘스터치', '강북동');
insert into food values(seq_food.nextval, '피자', 22000, '알볼로피자', '대구시교동');
insert into food values(seq_food.nextval, '감자튀김', 6000, '맛감자', '광주시화교동');
--3.테이블명: jumun
--외부키는 food의 fno를 외부키로 설정할것(부모데이터 삭제시 자동삭제 되도록)
--시퀀스(num) 주문자(name) 음식번호(fno)-외부키 주소(addr)
----------------------------------------------------------------------
-- 20 이수연 1 도곡동
----------------------------------------------------------------------
create table jumun(num number(3) CONSTRAINT jumun_pk_num primary key,
name varchar(20), fno number(3) CONSTRAINT jumun_fk_fno REFERENCES food(fno) on delete cascade,
addr varchar2(20) );
--4.출력 (배민처럼 주문자 출력)
--순서
--fno(주문번호) 주문자(name) 음식명(food) 가격(prince) 상호명(shop) 가게위치(Loc) 주문자위치(addr)
--주문테이블에 데이터 추가
insert into jumun values (seq_food.nextval, '김민지',1,'역삼동');
insert into jumun values (seq_food.nextval, '박민지',4,'도곡동');
insert into jumun values (seq_food.nextval, '홍민지',1,'강북동');
insert into jumun values (seq_food.nextval, '이민지',7,'강원도춘천시');
insert into jumun values (seq_food.nextval, '류민지',16,'광주시화교동');
--요순서대로 출력해서 채팅창에 결과물 올릴것
--주문자의 오름차순 으로 출력할것
--join출력
select f.fno 주문번호, name 주문자, food 음식명, price 가격, shop 상호명, loc 가게위치, addr 주문자주소
from food f, jumun j
where f.fno=j.fno
order by name asc;
--view (가상테이블)
--or replace 는 같은 이름있을시 덮어씀
create or replace view jumunja1
as
select f.fno 주문번호, name 주문자, food 음식명, price 가격, shop 상호명, loc 가게위치, addr 주문자주소
from food f, jumun j
where f.fno=j.fno
order by name asc;
--jumunja1 조화
select * from jumunja1;
--부서별 인원수와 평균급여를 구해본후..오류없을시 buseoview1로 생성해보자
select buseo 부서명, count(buseo) 인원수, round(avg(pay), 2) 평균급여
from sawon
group by buseo;
--buseiview1생성
create view buseoview1
as
select buseo 부서명, count(buseo) 인원수, round(avg(pay), 2) 평균급여
from sawon
group by buseo;
--출력
select * from buseoview1;
--삭제
drop view buseoview1;