๋ทฐ (VIEW)
"๊ฐ์ ํ
์ด๋ธโ
ํ๋ ์ด์์ ํ
์ด๋ธ์ ์กฐํํ๋ SELECT ๋ฌธ์ ์ ์ฅํ ๊ฐ์ฒด
๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฅ๋๋ ํ
์ด๋ธ์ด ์๋๋ผ, ๋
ผ๋ฆฌ์ ์ผ๋ก๋ง ๊ธฐ์กด์ ํ
์ด๋ธ๋ค์ ์กฐํ๊ฒฐ๊ณผ๋ฅผ ์ ์๋๋ค.
๋ชฉ์
1.
ํธ๋ฆฌ์ฑ : ์ฟผ๋ฆฌ์ ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด์
2.
๋ณด์์ฑ : ๋ฏผ๊ฐํ ์ ๋ณด์ ๋ํ ๋
ธ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด์(์ฃผ๋ฏผ๋ฒํธ, ๋น๋ฐ๋ฒํธ)
๋ทฐ ์์ฑ
CREATE [OR REPLACE] VIEW ๋ทฐ์ด๋ฆ (์ปฌ๋ผ1, ์ปฌ๋ผ2, ์ปฌ๋ผ3, ... )
AS ( SELECT ๋ฌธ );
SQL
๋ณต์ฌ
๋ทฐ ์ญ์
DROP VIEW ๋ทฐ์ด๋ฆ;
SQL
๋ณต์ฌ
์์ ์ฝ๋
โข
์ฌ์๋ฒํธ, ์ง์๋ช
, ๋ถ์๋ฒํธ, ๋ถ์๋ช
, ์ด๋ฉ์ผ, ์ ํ๋ฒํธ, ์ฃผ๋ฏผ๋ฒํธ, ์
์ฌ์ผ์, ๊ธ์ฌ, ์ฐ๋ด์ ์กฐํํ๋ ๋ทฐ๋ฅผ ์์ฑํ์์ค.
CREATE OR REPLACE VIEW VE_EMP_DEPT AS
SELECT e.emp_id
,e.emp_name
,d.dept_id
,d.dept_title
,e.email
,e.phone
-- ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ
,RPAD( SUBSTR(emp_no, 1, 8), 14, '*' ) emp_no
-- ์
์ฌ์ผ์
,TO_CHAR( hire_date, 'YYYY.MM.DD' ) hire_date
-- ๊ธ์ฌ
,TO_CHAR( salary, '999,999,999' ) salary
-- ์ฐ๋ด
,TO_CHAR( (salary + NVL( salary*bonus, 0)) * 12, '999,999,999,999') yr_salary
FROM employee e
LEFT JOIN department d ON (e.dept_code = d.dept_id)
;
SQL
๋ณต์ฌ
โข
๋ทฐ ์กฐํ
SELECT *
FROM VE_EMP_DEPT;
SQL
๋ณต์ฌ