IT_DBMS/MSSQL

파티션드 뷰 연습

JJun ™ 2006. 3. 7. 16:44




use pubs

 

select * from titles

CREATE VIEW testview8
with encryption
/* 이미 생성된 뷰의 정의를 보안상의 문제등으로 남들에게 공개하고 싶지 않을 경우에 사용한다.
   (사용자 뿐만 아니라 개발자 역시 뷰의 내부 정의를 볼 수 없게 된다.) */
as
select title_id,title,type,price
from titles
where price >=25
with check option
/*일정한 조건에 의해서 만들어진 뷰에서의 데이터 수정이 있을 경우 뷰를 생성할 때와
   동일한 조건을 수정에도 적용시켜야 할 때 사용한다. (조건이 만족해야 수정)*/

go
select * from testview8

 

drop view testview8

 

use test
 
create table customer_01
(
user_id int not null primary key check (user_id between 1 and 99),
user_name varchar(30)
)
/*customer_01 테이블 만들기*/

create table customer_02
(
user_id int not null primary key check (user_id between 100 and 999),
user_name varchar(30)
)
/*customer_02 테이블 만들기*/

create table customer_03
(
user_id int not null primary key check (user_id >= 1000),
user_name varchar(30)
)
/*customer_03 테이블 만들기*/

create view customer_ALL
as
select user_id,user_name from customer_01
union all
select user_id,user_name from customer_02
union all
select user_id,user_name from customer_03
/*customer_ALL 뷰 생성*/

insert customer_ALL(user_id,user_name)
values (1,'김현준')
/*customer_ALL에 정보 삽입*/

select * from customer_ALL
select * from customer_01
select * from customer_02
select * from customer_03
/*각 테이블, 뷰의 모든 항목 반환 */

insert customer_ALL(user_id,user_name)
values (2,'강남철')
/*뷰에 데이터 삽입. customer_ALL과 customer_01에 들어감*/
insert customer_ALL(user_id,user_name)
values (100,'진혁수')
/*뷰에 데이터 삽입. customer_ALL과 customer_02에 들어감*/
insert customer_ALL(user_id,user_name)
values (103,'이은주')
/*뷰에 데이터 삽입. customer_ALL과 customer_02에 들어감*/
insert customer_ALL(user_id,user_name)
values (1000,'남미자')
/*뷰에 데이터 삽입. customer_ALL과 customer_03에 들어감*/
insert customer_ALL(user_id,user_name)
values (1050,'이문주')
/*뷰에 데이터 삽입. customer_ALL과 customer_03에 들어감*/
insert customer_ALL(user_id,user_name)
values (10000,'장웅인')
/*뷰에 데이터 삽입. customer_ALL과 customer_03에 들어감*/
insert customer_ALL(user_id,user_name)
values (100000,'고석진')
/*뷰에 데이터 삽입. customer_ALL과 customer_03에 들어감*/
 
select * from customer_ALL
select * from customer_01
select * from customer_02
select * from customer_03
/*각 테이블, 뷰의 모든 항목 반환 */

 

delete customer_ALL where user_id = 1
/*customer_ALL에서 user_id가 1인 값을 지워라*/

select * from customer_01
where user_id = 1
/*customer_01에서 user_id가 1인 값을 지워라*/

 

update customer_ALL set user_name='바꾼다'
where user_id = 1000
/*customer_ALL에서 user_id가 1인 값의 user_name을 '바꾼다'로 고쳐라. */

 

/*
create view customer_ALL
as
select user_id,user_name from server1.test.dbo.customer_01
union all
select user_id,user_name from server2.test.dbo.customer_02
union all
select user_id,user_name from server3.test.dbo.customer_03
*/

 

====================================================================================


/*서버 연결을 통한 파티션드 뷰 생성*/


 

create database 강의
use 강의

 

/*

    [ 다른 컴퓨터에서 만들어야 하는 테이블들.. ]

create table 정회원
(
회원id int primary key check(회원id between 1 and 100),
이름 varchar(8) not null
)

create table 준회원
(
회원id int primary key check(회원id between 101 and 200),
이름 varchar(8) not null
)
*/

 

create table 비회원
(
회원id int primary key check(회원id between 201 and 300),
이름 varchar(8) not null
)

 

select * from 비회원

 

insert 비회원(회원id,이름)
values (201,'강남철')
insert 비회원(회원id,이름)
values (300,'진혁수')
insert 비회원(회원id,이름)
values (250,'이은주')

 

select * from 비회원

 

exec sp_addlinkedserver 'khj','sql server'
exec sp_addlinkedserver 'jiseo','sql server'
exec sp_addlinkedserver 'choiblsftukwep','sql server'
/*exec sp_addlinkedserver '컴퓨터 이름','sql server'*/


create view 회원관리view
as
select 회원id,이름 from jiseo.강의.dbo.정회원
union all
select 회원id,이름 from khj.강의.dbo.비회원
/*'회원관리view' 뷰 생성*/

 

select * from 회원관리view /*회원관리뷰 안에 있는 모든 행 출력*/
select * from jiseo.강의.dbo.정회원

/*

    상대 컴퓨터의 정회원 테이블의 모든 행 출력

    select * from 컴퓨터이름.데이터베이스.소유주.테이블명

*/

'IT_DBMS > MSSQL' 카테고리의 다른 글

프로시저 연습하기 2  (0) 2006.03.08
프로시저 연습하기 1  (0) 2006.03.08
분산 파티션 뷰(Distributed Partitioned Views) 사용 하기 | MS-SQL  (0) 2006.03.07
뷰(view) 연습  (0) 2006.03.07
select연습 3  (0) 2006.03.07