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 |