/* 뷰(view) */
use pubs
/*뷰를 만들때에는 진짜 테이블이 반드시 하나 있어야 한다.*/
select * from titles
/*뷰의 생성*/
create view testview1
as
select title_id,type,price from titles
/*
위의 뷰를 정의하는 select에는 order by,select into,compute,compute by를 사용할 수 없다.
단, select top을 사용하였을 경우에는 order by 사용이 가능하다.
*/
go
select * from testview1 order by price asc
/*
이미 정의 되어진 testview1이라는 뷰는 테이블(가상)과 같기 때문에
order by,select into,compute,compute by을 사용할 수 있다.
*/
sp_helptext testview1 /*뷰를 생성하는데 사용한 텍스트를 보여준다.*/
sp_depends testview1 /*뷰가 종속되어 있는 테이블과 뷰의 정보를 보여준다.*/
create view emp_jobs
as
select dbo.employee.fname, dbo.jobs.job_desc
from dbo.employee inner join dbo.jobs
on dbo.employee.job_id = dbo.jobs.job_id
/*뷰 생성*/
select * from emp_jobs
/*뷰 확인*/
/*
뷰 수정: ALTER VIEW viewname
[WITH ENCRYPTION]
AS
select ~~
[WITH CHECK OPTION]
뷰 삭제: DROP VIEW viewname
*/
use test
/*데이터 베이스 선택*/
create view testview2
as
select 이름,관계,핸드폰번호
from 개인신상
/*뷰 생성하기*/
insert into testview2 values ('김현준','나','011-0000-0000')
/*뷰에 정보삽입*/
select * from testview2
/*뷰 검색*/
select * from 개인신상
select * from 자동차
/*테이블 검색: view에 입력된 값이 실제 테이블에 들어갔음을 확인할 수 있다.*/
create view testview6
as
select a.이름,관계,핸드폰번호,차명,년식
from 개인신상 a, 자동차 b
where a.이름=b.이름
select * from testview6
insert into testview6(이름,관계,핸드폰번호,차명,년식)
values ('김현준','나','011-000-0000','재규어','2000')
/*
이름,관계,핸드폰번호 = 개인신상 테이블
차명,년식 = 자동차 테이블
→ 2개의 테이블을 동시에 영향을 줄 수 있기 때문에 Error
*/
insert into testview6(이름,관계,핸드폰번호)
values ('김현기','동생','010-0000-0000')
/*
하나의 테이블에만 영향을 주므로 가능함
한번의 질의에 하나의 테이블만 수정 가능하다.
*/
'IT_DBMS > MSSQL' 카테고리의 다른 글
파티션드 뷰 연습 (0) | 2006.03.07 |
---|---|
분산 파티션 뷰(Distributed Partitioned Views) 사용 하기 | MS-SQL (0) | 2006.03.07 |
select연습 3 (0) | 2006.03.07 |
[Transact-SQL] 외부조인(outer join) - Full join (0) | 2006.03.06 |
[Transact-SQL] 외부조인(outer join) - Right join (0) | 2006.03.06 |