--[1] 자료실 게시판(Upload)용 테이블 설계
Create Table dbo.Upload
(
    Num Int Identity(1, 1) Not Null Primary Key,         --번호
    Name VarChar(25) Not Null,                --이름
    Email VarChar(100) Null,                 --이메일    
    Title VarChar(150) Not Null,                --제목
    PostDate DateTime Default GetDate() Not Null,        --작성일    
    PostIP VarChar(15) Not Null,                --작성IP
    Content Text Not Null,                    --내용
    Password VarChar(20) Not Null,                --비밀번호
    ReadCount Int Default 0,                --조회수
    Encoding VarChar(10) Not Null,                --인코딩(HTML/Text)
    Homepage VarChar(100) Null,                --홈페이지
    ModifyDate DateTime Null,                --수정일    
    ModifyIP VarChar(15) Null,                --수정IP
    FileName VarChar(255) Null,            --파일명
    FileSize Int Null,                    --파일크기
    DownCount Int Null                --다운수
)
Go
--[2] 기본 SQL문 예시문 6가지 작성
--Select * From Upload
--[3] 기본 게시판(Upload)에 글을 작성하는 저장 프로시저 : procWriteUpload
Create Proc dbo.procWriteUpload
    @Name VarChar(25), 
    @Email VarChar(100), 
    @Title VarChar(150), 
    @PostIP VarChar(15), 
    @Content Text, 
    @Password VarChar(20), 
    @Encoding VarChar(10), 
    @Homepage VarChar(100),
    @FileName VarChar(255),
    @FileSize Int    
As
--With Encryption
    Insert Upload
        (Name, Email, Title, PostIP, Content, Password, Encoding, Homepage, FileName, FileSize)
    Values
        (@Name, @Email, @Title, @PostIP, @Content, @Password, @Encoding, 
        @Homepage, @FileName, @FileSize)
Go
--[4] 기본 게시판(Upload)에서 데이터를 읽어오는 저장 프로시저 : procListUpload
Create Procedure dbo.procListUpload
As
    Select * From Upload Order By Num Desc
Go
--[5] 조회수 증가시켜주는 저장 프로시저 : procUpdateReadCount
Create Proc dbo.procUpdateReadCountUpload
    @Num Int
As
    Update Upload Set ReadCount = ReadCount + 1 Where Num = @Num
Go
--[6] 해당 글을 세부적으로 읽어오는 저장 프로시저 : procViewUpload
Create Procedure dbo.procViewUpload
    @Num Int
As
    Select * From Upload Where Num = @Num
Go
--[7] 해당 글에 대한 비밀번호 읽어오는 저장 프로시저 : procReadPassword
Create Proc dbo.procReadPasswordUpload
    @Num Int
As 
    Select Password From Upload Where Num = @Num
Go
--[8] 해당 글 지우는 저장 프로시저 : procDeleteUpload
Create Proc dbo.procDeleteUpload
    @Num Int
As
    Delete Upload Where Num = @Num
Go
--[9] 해당 글을 수정하는 저장 프로시저 : procUpdateUpload
Create Proc dbo.procUpdateUpload
    @Name VarChar(25), 
    @Email VarChar(100), 
    @Title VarChar(150), 
    @ModifyIP VarChar(15), 
    @ModifyDate DateTime,
    @Content Text, 
    @Encoding VarChar(10), 
    @Homepage VarChar(100),
    @Num Int
As
    Update Upload 
    Set 
        Name = @Name,
        Email = @Email,
        Title = @Title,
        ModifyIP = @ModifyIP,
        ModifyDate = @ModifyDate,
        Content = @Content,
        Encoding = @Encoding,
        Homepage = @Homepage
    Where Num = @Num
Go