Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 명사 분석기
- Node.js
- 나의 취미
- ror실행
- 명사 추출기
- nodejs express
- 도커
- C/C++
- 명사 뽑아내기
- iBatis
- php
- express for node.js
- 스킨 스쿠버
- docker
- Cross
- 베트남어
- 책이야기
- ejb
- rss
- 주식이야기
- 메일왕창보내는법
- ajax
- 나의 프로젝트
- Lift
- php thumbnail
- 디즈니씨
- Eclipse
- node.js web framework
- scala
- flex3
Archives
- Today
- Total
nkdk의 세상
오라클 DB 설계 및 활용 9일째 2번 내용 본문
CREATE VIEW V_GROUP AS SELECT SAWON_JIK, SUM(SAWON_PAY) AS HAP, AVG(SAWON_PAY) AS AVER FROM SAWON GROUP BY SAWON_JIK
SELECT * FROM V_GROUP;
UPDATE SAWON SET SAWON_PAY=50000 WHERE SAWON_NAME='이순신'
CREATE OR REPLACE VIEW V_JOIN AS SELECT SAWON_NO, SAWON_NAME, BUSER_NAME, SAWON_JIK FROM SAWON INNER JOIN BUSER ON BUSER_NUM=BUSER_NO WHERE SAWON.BUSER_NUM IN(10,20);
SELECT * FROM V_JOIN;
UPDATE V_JOIN SET SAWON_NAME ='강인수' WHERE SAWON_NAME='주호진'
UPDATE V_JOIN SET SAWON_NAME ='반장', BUSER_NAME='비서실' WHERE SAWON_NAME='강인수' -- 오류를 표출한다.
(이유: 조인 뷰에 의해서는 하나 이상의 기본테이블을 수정할 수 없다. 한개당 하나의 테이블만 작업해야 한다. 뷰에서는 안됨, SAWON, BUSER 테이블 동시 출현했기 때문에 오류이다.)
UPDATE V_JOIN SET SAWON_NAME ='강철', SAWON_JIK='계장' WHERE SAWON_NAME='강인수' <- 이와 같을 때에는 가능하다 한개의 테이블만 출연했기 때문이다.
INSERT INTO V_JOIN(SAWON_NO, SAWON_NAME) VALUES(25,'최중환');
DELETE FROM V_JOIN WHERE SAWON_NO=25;
문) 사번 직원명 부서 직급 구분 근무년수 고객확보
1 홍길동 전산부 대리 경력 7 O
2 한국인 총무부 사원 일반 3 X
조건: 직급이 없으면 임시직
구분란에는 5년 이상 근무자에 대해 경력, 나머지는 일반으로 표현
관리 고객이 있으면 O, 없으면 X를 고객 확보 란에 표시 총무부는 제외
위의 결과가 출력 될 수 있는 V_EXAM 작성하라
CREATE OR REPLACE VIEW V_EXAM AS SELECT DISTINCT SAWON_NO 사번, SAWON_NAME 직원명, BUSER_NAME 부서, NVL(SAWON_JIK,'임시직') 직급, CASE WHEN 2007 - TO_CHAR(SAWON_IBSAIL, 'YYYY') >= 5 THEN '경력' ELSE '일반' END AS 구분, 2007 - TO_CHAR(SAWON_IBSAIL, 'YYYY') AS 근무년수, CASE WHEN GOGEK_DAMSANO IS NULL THEN 'X' ELSE 'O' END AS 고객확보 FROM BUSER RIGHT OUTER JOIN SAWON ON BUSER_NO = BUSER_NUM LEFT OUTER JOIN GOGEK ON SAWON_NO = GEK_DAMSANO WHERE BUSER_NAME != '총무부' OR BUSER_NAME IS NULL ORDER BY SAWON_NO;
오늘은 이 정도까지네요 ^_^ 수고하셨습니다.
오츠까레 사마 데시따~
SELECT * FROM V_GROUP;
UPDATE SAWON SET SAWON_PAY=50000 WHERE SAWON_NAME='이순신'
CREATE OR REPLACE VIEW V_JOIN AS SELECT SAWON_NO, SAWON_NAME, BUSER_NAME, SAWON_JIK FROM SAWON INNER JOIN BUSER ON BUSER_NUM=BUSER_NO WHERE SAWON.BUSER_NUM IN(10,20);
SELECT * FROM V_JOIN;
UPDATE V_JOIN SET SAWON_NAME ='강인수' WHERE SAWON_NAME='주호진'
UPDATE V_JOIN SET SAWON_NAME ='반장', BUSER_NAME='비서실' WHERE SAWON_NAME='강인수' -- 오류를 표출한다.
(이유: 조인 뷰에 의해서는 하나 이상의 기본테이블을 수정할 수 없다. 한개당 하나의 테이블만 작업해야 한다. 뷰에서는 안됨, SAWON, BUSER 테이블 동시 출현했기 때문에 오류이다.)
UPDATE V_JOIN SET SAWON_NAME ='강철', SAWON_JIK='계장' WHERE SAWON_NAME='강인수' <- 이와 같을 때에는 가능하다 한개의 테이블만 출연했기 때문이다.
INSERT INTO V_JOIN(SAWON_NO, SAWON_NAME) VALUES(25,'최중환');
DELETE FROM V_JOIN WHERE SAWON_NO=25;
문) 사번 직원명 부서 직급 구분 근무년수 고객확보
1 홍길동 전산부 대리 경력 7 O
2 한국인 총무부 사원 일반 3 X
조건: 직급이 없으면 임시직
구분란에는 5년 이상 근무자에 대해 경력, 나머지는 일반으로 표현
관리 고객이 있으면 O, 없으면 X를 고객 확보 란에 표시 총무부는 제외
위의 결과가 출력 될 수 있는 V_EXAM 작성하라
CREATE OR REPLACE VIEW V_EXAM AS SELECT DISTINCT SAWON_NO 사번, SAWON_NAME 직원명, BUSER_NAME 부서, NVL(SAWON_JIK,'임시직') 직급, CASE WHEN 2007 - TO_CHAR(SAWON_IBSAIL, 'YYYY') >= 5 THEN '경력' ELSE '일반' END AS 구분, 2007 - TO_CHAR(SAWON_IBSAIL, 'YYYY') AS 근무년수, CASE WHEN GOGEK_DAMSANO IS NULL THEN 'X' ELSE 'O' END AS 고객확보 FROM BUSER RIGHT OUTER JOIN SAWON ON BUSER_NO = BUSER_NUM LEFT OUTER JOIN GOGEK ON SAWON_NO = GEK_DAMSANO WHERE BUSER_NAME != '총무부' OR BUSER_NAME IS NULL ORDER BY SAWON_NO;
오늘은 이 정도까지네요 ^_^ 수고하셨습니다.
오츠까레 사마 데시따~