블로그 이미지
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

'.Net Project/WindowServer2008'에 해당되는 글 44

  1. 2009.09.18 30장 Output 활용
  2. 2009.09.17 29장 도메인 생성 후 DB 연결 (상품검색)
  3. 2009.09.17 28장 Windows Server Select 기타 기워드
  4. 2009.09.17 27장 Windows Server 백업&복원
2009. 9. 18. 11:07 .Net Project/WindowServer2008
반응형

 use tempdb
--[1] 테이블생성
Create Table dbo.Products
(
 ProductID Int Identity(1,1) Primary Key,
 ModelName VarChar(25) Null,
 SellPrice Int Null
)
 

--[2] 예시문 입력
Insert Into Products Values
('좋은책',5000),
('준철책',6000),
('세창책',7000),
('용원책',8000),
('좋은책',9000)

--[3]상품의 가격을 2배로 업데이트, 업데이트된 레코드의 개수를 반환
Create Proc UpdateSellPrice
 @ProductID Int,
 @RecordCount Int Output --결과값 리턴
As

 Update Products Set SellPrice = SellPrice * 2 Where
                                       ProductID = @ProductID
Go

Exec UpdateSellPrice 1,1
Go

Declare @RecordCount Int
Exec UpdateSellPrice 1, @RecordCount OutPut
Select @RecordCount
Go

--[4]Products 테이블에 있는 모든 레코드의 개수 반환
--1. 일반적인 방식
Select Count(*) From Products;

Create Proc GetProductCount
As
 Select COUNT(*) From Products;
Go

-- 2. Output 키워드 사용하여 결과값을 변수로 담아오는 방식
Execute GetProductCount --결과값을 레코드셋, 스칼라값(집계함수)
Go


Create Proc GetProductCountUp
 @RecordCount Int Output
As
 Select @RecordCount = Count(*) From Products;
Go

Delclare @RecordCount Int
Exec GetProductCountUp @RecordCount Output

Select @RecordCount
Go


--[5]-3. 상품의 가격을 반값으로 조정한 후 영향 받은 레코드 수 반환(Return)
--Return 사용하여 레코드 개수 방환 하는 방식
Create Proc UpdateSellPrice
 @ProductID Int

As
 Update Products Set SellPrice = SellPrice / 2 Where ProductID > @ProductID
 
 --Select @@RowCount
 Return @@RowCount --함수 자체를 리턴해주고 싶을때
Go

Declare @RecordCount Int

Exec @RecoudCount =  UpdateSellPriceHalf 1
Select @RecordCount 


반응형
posted by Magic_kit
2009. 9. 17. 19:00 .Net Project/WindowServer2008
반응형

 --상품리스트 출력
Create Table [dbo].[Products]
(
 [ProductID] int identity (1,1) Primary Key Not Null,
 [CategoryID] Int Not Null, --카테고리
 [ModelNumber] VarChar (50), --상품코드
 [ModelName] VarChar(50), --상품명
 [ProductImage] VarChar (50), --이미지명
 [UnitCost] money Not Null, --단가
 [Description] VarChar (3800) --상품설명
)
Go

Insert Products Values (1,'좋은책','test','test.jpg',55,'test')
Insert Products Values (2,'내 컴퓨터','test','test.jpg',155,'test')
Insert Products Values (3,'니 컴퓨터','test','test.jpg',255,'test')

--출력
select *from [dbo].[Products] Order By ProductID Asc

--출력
Select *from Products Order By ProductID Desc

--상세
Select *From Products Where ProductID = 1

--수정
Update Products Set UnitCost = 100 Where ProductID = 1

--삭제
Delete Products Where 1 <> 1

--검색
Select *From Products Where ModelName Like '책%'

--View
Create View dbo.TopProduct
As
 Select *From Products Where UnitCost >= 200
Go
Select *From TopProduct
Go

-------------------------------------------------
--저장 프로시저 나타내보기
-------------------------------------------------

Create Proc dbo.AddProduct
 @CategoryID Int,
 @ModelNumber VarChar(50),
 @ModelName VarChar(50),
 @ProductImage VarChar(50),
 @UnitCost Money,
 @Description VarChar(3800)
As
 Insert Products
 Values(@CategoryID, @ModelNumber, @ModelName, @ProductImage, @UnitCost, @Description)
Go

AddProduct 2, 'COM-02', '노트북','COM-1.jpg', 200, '좋은 노트북'
Go

--출력 : Get, List
Create Proc dbo.GetProducts
As
 Select *from Products Order By ProductID Desc
Go

--상세 : Get, View
Create Proc dbo.GetProductByProductID
 @ProductID int
As  
 Select *From Products Where ProductID = @ProductID
Go

Exec GetProductByProductID 4
Go

--수정 : Update, Modify, Edit
Create  Proc UpdateProc
 @ModelName VarChar(50),
 @UnitCost Money,
 @Description VarChar(3800),
 @ProductID int
As
 Update Products

  Set
   ModelName = @ModelName,
   UnitCost = @UnitCost,
   Description = @Description
  Where
   ProductID = @ProductID 
Go
   
UpdateProc '개 컴퓨터', 300, '개 컴에서 용컴으로', 2
Go

--삭제 : Delete
Create Proc DeleteProduct
 @ProductID int
As
 Delete Products Where ProductID = @ProductID
Go

--검색 : Get~By, Search, Find
-- 매개변수화 ?  바뀔부분 => ' + 변수 + 'C

Create Proc SearchProducts

 @SearchQuery VarChar(50)
As
 --Declare @SearchQuery VarChar(50)
 --Set @SearchQuery = '집'
 
 Declare @sql VarChar(500)
 Set @sql = '
 Select *From Products Where ModelName Like ''' + @SearchQuery + '%'' ' 

 Print @sql --확인
 Exec(@sql) --실행
Go

SearchProducts '니'

--인덱스
Create NonClustered Index idxModelName On Products (ModelName)
Go


                                                 ↓     ↓
                             (테이블 1000행 편집)


(C# DB연결 웹사이트에서 실행)
   
                      (이미지를 클릭하시면 원본파일로 확대해서 확인 가능)
반응형

'.Net Project > WindowServer2008' 카테고리의 다른 글

31장 트랜잭션 활용  (0) 2009.09.18
30장 Output 활용  (0) 2009.09.18
28장 Windows Server Select 기타 기워드  (0) 2009.09.17
27장 Windows Server 백업&복원  (0) 2009.09.17
26장 인덱스 (Index)  (0) 2009.09.16
posted by Magic_kit
2009. 9. 17. 12:22 .Net Project/WindowServer2008
반응형

--use zip
--Select *From dbo.zip
--Select LEN(Gu) From dbo.zip

--[1]테이블 생성

-- 삭제 하기 위해 다음과 같이 명령어 사용
-- Drop Table Customers

Create Table dbo.Customers
(
 Num Int Identity(1,1) Primary Key,
 Name VarChar(25) Not Null,
 Age Int Null,
 Address VarChar(100)
 
)
Go

--[2]샘플 데이터 입력
Insert Customers Values('홍길동','21','서울')
Insert Customers Values('백두산','31','서울')
Insert Customers Values('한라산','41','부산')
Insert Customers Values('지리산','21','부산')
Insert Customers Values('설악산','31','대전')


--select문 주요 기능
--전체 고객 리스트
Select *From Customers

--[2-1]중복제거(Distinct) : 고객들이 사는 지역을 중복없이 출력
Select Distinct Address From Customers


--[2-2] Group By : 집계함수 그룹화 : 같은 지역 고객의 나이 평균
Select Address, AVG(Age) From Customers
Group By Address


--[2-3] 조건이 있는 집계함수 그룹화 :
-- 같은 지역 고객 중 나이가 40이상인 고객의 나이의 평균
Select Address, AVG(Age) From Customers
Where Age >= 40
Group By Address

--Group By All : 위 쿼리문 중 조건에 맞지 않아도 지역 리스트 출력
Select Address, AVG(Age) From Customers
Where Age > 40
Group By All Address


--[2-4] Having :  집계함수에 대한 조건처리
-- 같은 지역 고객의 나이의 평균이 30이상인 데이터만 출력
Select Address, AVG(Age) As 나이평균 From Customers
Group By Address
Having AVG(Age) >= 30



--[2-5] RollUp : 소계 : 지역별 나이를 출력 후 나의 소계 (중간합계)
Select Address, AVG(Age) From Customers
Group By Address With RollUp


--[2-6] Cube : 소계 : 지역별 나이를 출력 후 나의 소계
Select Address, AVG(Age) From Customers
Group By Address With Cube


--[2-7] Grouping() 함수 : RollUp/Cube 사용시 그룹화 된 항목인지 표시
Select Address, AVG(Age), GROUPING(Address) As 그룹화여부
From Customers
Group By Address With Cube


--[2-8] Compute : 출력 결과에 대한 집계
Select Address, Age From Customers
Compute SUM(Age), AVG(Age)


--[2-9] Compute by : 출력결과에 대한 집계에 대한 정렬
Select Address, Age From Customers Order By Address
Compute Sum(Age), Avg(Age) By Address


--[2-10] Case : 문장 대체
Select Name, Age, Address From Customers

Select Name, Age,
 Address =
 Case Address
  When '서울' Then 'Seoul'
  When '부산' Then 'Busan'
  Else '다른지역'
 End
From Customers 


반응형
posted by Magic_kit
2009. 9. 17. 12:19 .Net Project/WindowServer2008
반응형

 --백업  : 물리적인 MDF/LDF/NDF을 안전한 곳에 복사 (서비스 중지)
--(작은 규모에서 10정도의 중지시간 허용 가능한 상태)
--백업 마법사를 사용해서 *.bak파일로 백업 
 --(서비스가동 : 대규모에서 실시간 서비스 유지, Ex)풀백업, 차등백업, 스케줄링 )
-- 주로 개발 환경에서 사용 

     
Alter Database zip
Set Recovery Simple; --단순모델 설정

--T-SQL이용한 전체 백업
Backup Database zip
To Disk = 'C:\Backups\zip.bak';

--옵션에서는 백업 유형 차등으로 선택하고 이름, 설명, 만료 기한으로 지정
--T-SQL이용한 차등 백업

Backup Database zip
To Disk = 'c:\Backups\zip2.bak'
With Differential;

--파일백업 : 데이터베이스 전체 백업에서 발생하는 비용을 감소시키기 위해 사용
--T-SQL 사용하여 특정 파일 전체를 백업하라

Backup Database zip FILE = 'zip'
To Disk = 'c:\Backups\zip3.bak';

--특정파일을 차등백업하라
Backup Database zip File = 'zip'
To Disk = 'c:\Backups\zip4.bak'
With Differential;

--트랜잭션 로그를 백업하라
Backup Log zip
To Disk = 'c:\Backups\zip_log.bak';

--복사전용백업 실행
Backup Database zip
To Disk = 'c:\Backups\zip_copy.bak'
With Copy_ONLY;


--복원 : 데이터베이스 백업과 트랜잭션 로그 백업을 이용해 데이터베이스 목표한 시점의 데이터베이스로 복구하는 과정
use master
Go
If DB_ID('fruitstore') IS NOT NULL

Drop Database Fruitstore
Go

Create Database Fruitstore;
Go

Alter Database Fruitstore Set Recovery Simple;
Go

Backup Database Fruitstore To Disk = 'c:\Backups\Fruitstore.bak';
Go

--Fruitstore데이터베이스의 전체 백업을 이용하여 데이터베이스 복원하라 (단순모델)
Restore Database Fruitstore
From Disk = 'c:\backups\fruitstore.bak'
With Recovery

--단순 모델 - 전체 백업 및 차등 백업으로부터 확인하기
use master
Go
If DB_ID('fruitstore') Is Not Null
Drop Database Fruitstore;
Go

Create Database Fruitstore;
Go

Alter Database Fruitstore Set Recovery Simple;
Go

Backup Database fruitstore To Disk = 'c:\Backups\fruitstore.bak';
Go

Backup Database fruitstore To Disk = 'c:\Backups\fruitstore.bak'
With Differential;
Go

Backup Database fruitstore To Disk = 'c:\Backups\fruitstore.bak'
With Differential
Go




반응형
posted by Magic_kit
prev 1 2 3 4 5 6 7 ··· 11 next