--[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
'.Net Project > WindowServer2008' 카테고리의 다른 글
23장 도메인생성 ~ 웹사이트 DB연결 (0) | 2009.09.15 |
---|---|
22장 저장프로시저(Stored Procedure) (0) | 2009.09.15 |
20장 While문 (0) | 2009.09.14 |
19장 Select문 (0) | 2009.09.14 |
19장 Memos 테이블 생성후 3의배수 4의배수 (0) | 2009.09.14 |