블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

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 29 30 31

Category

Recent Post

Recent Comment

Archive

2009. 9. 15. 10:56 .Net Project/WindowServer2008
반응형





--[1] DB Create
Create database Tue
--[2] User Create
--[3] Table Create : 실제 데이터 저장 공간 

use Tue
--[4] View : 가상테이블(실제 테이터는 테이블에 그것을 조회하는 개체는 뷰로 표시)
   -- 자주 사용되는 긴 Select문을 View로 만들어 놓고 호출
   -- 저장 프로시저 (Stored Procedure)

--Drop table dbo.Categories --Table Delete
Create Table dbo.Categories
(
 CategoryID Int Identity(1,1) Not Null Primary Key, --카테고리번호
 CategoryName Varchar(50), --카테고리명
 
 SuperCategory Int Null, --부모카테고리번호(확장용)
 Align SmallInt Default(0) --카테고리보여지는순서(확장용)
)    
Go
--[5] Insert
Insert Categories Values('컴퓨터',Null, DEFAULT)
Insert Categories Values('노트북',1, 1)
Insert Categories Values('핸드폰',Null, 2)
Insert Categories Values('신규',3, 3)

Select *From Categories --All
--[5-1]다른 방식으로 삽입 방식
Insert Categories(CategoryName, SuperCategory,Align) Values ('핸드폰',Null,2)
--[5-2] Print(출력)
Select CategoryName From Categories Order By Align Asc
--[5-3] View(상세) : 긴SQL문장을 짧게 표현하는 방식
Select * From Categories Where CategoryID=1

--[5-4] Modify(수정), Edit(편집)
Update Categories
Set
 CategoryName = 'Computer'
Where CategoryID = 1

Update Categories
Set
 CategoryName = 'NoteBook'
Where CategoryID = 1

--[6]Delete(삭제)
Delete Categories Where CategoryID = 2

--[7]Search(검색) / Find(찾기)
Select * From Categories
Where
 CategoryName Like '%퓨%'
 And
 SuperCategory is Null --Null(널)값 비교
--[8] View생성 : 긴SQL문장을 짧게 표현하는 방식
Select CategoryID, CategoryName
From Categories
Where SuperCategory Is Null
Go

--[8-1] 위 구문을 줄여주는 뷰(View) 생성
--Drop View GetTopCategory --삭제

Create View dbo.GetTopCategory
As
 Select CategoryID, CategoryName
 From Categories
 Where SuperCategory Is Null
Go

--[8-2] 뷰(가상테이블) 사용 : 짧게 표현하는 방식
Alter View dbo.GetTopCategory
--개체 'GetTopCategory'의 텍스트가 암호화
With Encryption --개체 암호화 옵션
As
 Select CategoryID, CategoryName
 From Categories
 Where SuperCategory Is Null
 --Order By CategoryName Asc
Go 
--[8-3] 뷰(가상 테이블) 수정 : 암호화
Sp_helptext GetTopCategory --뷰 Create 구문 확인 가능 

--[9]뷰 구문 수정 : 스키마 바인딩 적용
Alter View dbo.GetTopCategory
With SchemaBinding --Categories 테이블 변경 불가능
As
 Select CategoryID, CategoryName
 From dbo.Categories
 Where SuperCategory Is Null
Go

--[10] 뷰에다가 직접 데이터 입력
Insert Into GetTopCategory (CategoryName) Values('가전')
Go
Select *from Categories
Go
--[10-1]------------------------------------------------------
Alter View dbo.GetTopCategory
As
 Select * From dbo.Categories
 Where SuperCategory Is Null --대분류만 입력/수정 가능 
 
 --Error : Identity값 입력X, SuperCategory -> Null 입력
 With Check Option  --조건절에 해당하는 데이터만 입력/수정 가능
Go
--[10-2]-------------------------------------------------------
Insert Into GetTopCategory  Values ('냉장고',5,1)
Go

Select * From Categories
--[10-3]--Error-----------------------------------------------------
Insert Into GetTopCategory(CategoryName) Values('오디오')
Go --Error

--실행 (조건절이 대분류만 가능하도록 되어있기 때문에)
Insert Into GetTopCategory(CategoryName) Values('오디오')
Go
Insert Into GetTopCategory(CategoryID, CategoryName) Values(7, '오디오')
Go
Insert Into GetTopCategory(CategoryID, CategoryName, SuperCategory) Values(8, '오디오')
Go
select *from Categories
Set Identity_Insert Categories on
Go   

반응형
posted by Magic_kit