트리거(trigger)

2010. 11. 12. 22:50

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.



 

1.     Group By 절에 있는 열은 집계함수로 묶지 않고 원본열이름 그대로 출력할 수 있다.

2.     Where절은 (출력되는 결과를) Group By로 묶기 전에 사용해야 한다.

Having절은 (출력되는 결과를) Group By로 묶은 후에 사용한다.

3.     Select

From

Where

Group By

Having

Order By

 

4.     Select로 출력되는 열이 아니더라도 Where절이나 Group By절에서 조건식으로 그 열을 사용할 수 있다.

ex) SELECT TYPE, AVG(PRICE) AS 평균가격

FROM TITLES

WHERE ADVANCE > 3000

GROUP BY TYPE

HAVING AVG(PRICE) > 10

 

'.NET프로그래밍 > SQL Server 2008' 카테고리의 다른 글

트리거(trigger)  (0) 2010.11.12
게시판에서 이전글 다음글 기능 프로시저 작성  (0) 2010.09.10
동적 SP 예제  (0) 2010.09.07
binary 및 varbinary  (0) 2010.09.05
SELECT WITH NOLOCK (= WITH(NOLOCK) 이란?)  (0) 2010.07.27
Posted by holland14
:

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

동적 SP 예제

2010. 9. 7. 10:39

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

binary 및 varbinary

2010. 9. 5. 21:01

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.






Posted by holland14
:
 

방명록 애플리케이션 설계

 

목표 : http://www.guestbook.com/ -> 한줄짜리 홈페이지 출력되도록...

 

Windows Server 레벨( -> 실제 배포(서비스) 사용됨)

  • 이번에는 "Windows Server 2003"에서 10가지 실행

 

  1. 설치
    1. 서비스 가동
      1. hostname, ipconfig /all, ping
  1. 사용자
    1. net user GuestBook Pa$$w0rd /add
  1. NTFS
    1. 입주공간
      1. 보안
        1. Everyone, IUSR_인터넷게스트계정, Network Service, 해당사용자권한
      1. 암호화
      2. 압축
      3. 할당량
        1. 최대1GB
  1. 공유
    1. UNC
  1. IIS
    1. 홈디렉터리
    2. 가상 디렉터리(응용프로그램설정)
  1. FTP
  2. DNS
  3. 기타
    1. 메일 서비스
      1. SMTP(25)
      2. POP3(110)
        1. guestbook@guestbook.com
          1. 아웃룩 익스프레스에서 보내고, 받고 테스트, 외부로는 안나감…(방화벽때문에)
    1. 미디어 서비스
      1. Windows Server 2003 초기버전에는 포함. 2003 이후로는 빠짐…
        1. Windows 7 K, KN
  1. 백업
    1. 부분 백업 : 지정한 시간에 지정된 폴더만…
  1. 원격

 

 


SQL Server 레벨

  1. 설치 환경구성
    1. 인스턴스 : (local)
  1. 데이터베이스
    1. DB : GuestBook
  1. 로그인사용자
    1. UID : GuestBook
    2. PWD : Pa$$w0rd
  1. OLE DB 설정
    1. GuestBook.udl
  1. 테이블 설계
    1. GuestBooks
      1. 개념적 설계
        1. 노트


 
  1. 논리적 설계
    1. ER-WIN, VISIO

 
  1. 물리적 설계

 

 

16.  SQL

    1. 입력, 출력, 상세, 수정, 삭제, 검색

17.  T-SQL

    1. 예시 데이터 100 입력

18.  개체

    1. Stored Procedure
      1. AddGuestBook
      2. GetGuestBooks

19.  DTS

    1. Zip 테이블

20.  백업 복원

    1. 전체 백업

 

Visual Studio 레벨

21.  설치

    1. .NET 3.5

22.  새 사이트

    1. GuestBook

23.  Web.config

    1. <connectionStrings> 섹션에 4가지 기록
      1. Server, Data Source
      2. Database, Initial Catalog
      3. Uid, User ID
      4. Pwd, Password

24.  입력

    1. SqlDataSource 컨트롤 : Insert 쿼리

25.  출력

    1. SqlDataSource 컨트롤 : Select 쿼리

 




====================================================================================




GuestBook.sql



-- 방명록테이블설계

Create Table GuestBooks

(

       ItemID Int Identity(1, 1) Primary Key,

       Name VarChar(25) Not Null,

       Content VarChar(8000) Not Null,

       Password VarChar(20) Not Null,

       PostData SmallDateTime Default(GetDate()),

       PostIP VarChar(15) Null

)

Go

 

 

-- 예시문6개타이핑~~

 

-- 입력

-- 샘플데이터100개입력

Declare @i Int

Set @i = 1

While @i <= 100

Begin

      

       If @i % 2 = 0

       Begin

             Insert Into GuestBooks Values('홍길동', '안녕', '1234', GetDate(), '127.0.0.1')

       End

       Else

       Begin

             Insert Into GuestBooks Values('지리산', '방가', '1234', GetDate(), '127.0.0.1')

       End

      

       Set @i = @i + 1

      

End

Go

Select Count(*) From GuestBooks

Go

 

-- 출력

Select * From GuestBooks Order By ItemID Asc

Go

 

-- 상세

Select * From GuestBooks Where ItemID = 1

Go

 

-- 수정

Update GuestBooks Set Name = '제시카' Where Name = '홍길동'

Go

 

-- 삭제

Delete GuestBooks Where ItemID = 1 And (1 <> 1)

Go

 

-- 검색

Select * From GuestBooks Where Name Like '%'

Go

 

 

 

-- 6개저장프로시저생성하세요~~~

 

-- 입력저장프로시저

Create Proc AddGuestBook

       @Name VarChar(25),

       @Content VarChar(8000),

       @Password VarChar(20),

       @PostIP VarChar(15)

As

       Insert Into GuestBooks Values(@Name, @Content, @Password, GetDate(), @PostIP)

Go

 

-- 출력저장프로시저

Create Proc GetGuestBooks

As

       Select * From GuestBooks Order By ItemID Desc

Go

 

-- 상세저장프로시저

Create Proc GetGuestByItemID

       @ItemID Int

As

       Select * From GuestBooks Where ItemID = @ItemID

Go

 

-- 수정저장프로시저

Create Proc UpdateGuest

       @Name VarChar(25),

       @ItemID Int

As

       Update GuestBooks Set Name = @Name Where ItemID = @ItemID

Go

 

-- 삭제저장프로시저

Create Proc DeleteGuest

       @ItemID Int

As

       Delete GuestBooks Where ItemID = @ItemID

Go

 

-- 검색저장프로시저

Create Proc SearchGuest

       @SearchText VarChar(50)

As

       Declare @sql VarChar(100)

       Set @sql = '

       Select * From GuestBooks Where Name Like ''' + @SearchText + '%''

       '

       Exec(@sql)

Go

SearchGuest ''

 

 

 

 


====================================================================================


 

Visual Studio 레벨

  1. 설치 : .NET 3.5
  2. 사이트 : GuestBook으로 이름지정하여 생성
  3. Web.config : SQL Server 레벨의 데이터베이스 연결문자열 설정
        a. <connectionStrings> 섹션에 4가지 기록
              i. Server, Data Source
             ii. Database, Initial Catalog
            iii. Uid, User ID 
            iv. Pwd, Password       
  4. 생성
  5. 입력 페이지 작성
        a. SqlDataSource 컨트롤 : Insert 쿼리
  6. 출력(검색) 페이지 작성
        b. SqlDataSource 컨트롤 : Select 쿼리


Visual Studio를 열고 [파일] - [새로 만들기] - [웹사이트]클릭 -> [ASP.NET 웹 사이트]로 선택하고 "저장위치(저장폴더)"는 "C:\...\GuestBook폴더"로 지정한다.("GuestBook폴더가 없으면, [ASP.NET 웹 사이트]로 선택하여 만들 때 GuestBook폴더를 만든다.")


[Default.aspx 디자인]
아래그림과 같이 웹페이지를 디자인한다. 그림에서 [SqlDataSource - SqlDataSource2]는 위에 있는 "이름", "내용", "암호",  "IP주소" 각각의 4개 텍스트 박스의 값을 입력받아서(insert) 담는 그릇에 해당되며, [SqlDataSource - SqlDataSource2]의 "속성"중 "InsertQuery"속성을 클릭하면 속성을 바꾸는버튼(...)이 뜨는데 여기서 "InsertQuery "속성을 변경해줘야한다.





[web.config]
아래그림의 코드에서 "name", "connectionString에서 'server', 'database', 'uid', 'pwd'와", 그리고 "providerName"을 아래와 같이 입력하였다.






[Default.aspx.cs]

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 처음 로드시에 IP주소 미리 세팅

        if (!Page.IsPostBack)

        {

            this.txtPostIP.Text = Request.UserHostAddress; // IP주소 받아서 초기화

        }

    }

    protected void btnSave_Click(object sender, EventArgs e)

    {

        // 저장

        this.SqlDataSource2.Insert();

        // 새로 요청

        this.GridView1.DataBind();

    }

}

 





<실행결과>
아래실행결과에서 '이름', '내용', '암호', 'IP주소' 각각의 4개 텍스트 박스에 "한라산"과 "백두산"의 각각의 정보("Name", "Content", "Password", "PostIP"에 해당하는 정보)를 입력하여 "글 남기기"버튼을 누르면 그림과 같이 "한라산"과 "백두산"의 입력(insert)한 정보가 (GridView에)출력된다.






Posted by holland14
: