제목 : 26.2. 회원(Users) 테이블 및 저장프로시저 설계
글번호:
|
|
160
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2007/06/04 오후 6:06:00
|
조회수:
|
|
8729
|
--[1] 회원 테이블 설계
Create Table dbo.Users
(
UID Int Identity(1, 1) Not Null Primary Key, -- 일련번호
UserID VarChar(20) Not Null, -- 아이디
Password VarChar(20) Not Null, -- 암호
UserName VarChar(25) Not Null, -- 이름
-- 위 4개 필드가 필수 나머지는 필요한 만큼 추가
Email VarChar(50) Null, -- 이메일
Job VarChar(20) Null, -- 직업
Hobby VarChar(255) Null, -- 취미
Gender Bit Null, -- 성별
Intro VarChar(8000) Null, -- 소개
CreatedDate SmallDateTime Default(GetDate()) -- 가입일
-- 전화번호, 우편번호, 주소, 주소상세, 주민번호 등등 필요하면 추가
)
Go
-- SQL 예시문
--[1] 입력
Insert Users
Values('admin', '1234', '레드플러스', 'red@r.com', '백수',
'농구, 배구', 0, '안녕하세요', GetDate())
Go
Insert Users
Values('red', '1234', '레드플러스', 'red@r.com', '백수',
'농구, 배구', 0, '안녕하세요', GetDate())
Go
-- 저장 프로시저
--[1] 회원가입 저장 프로시저 설계
Create Proc dbo.AddUser
@UserID VarChar(20),
@Password VarChar(20),
@UserName VarChar(25)
As
--[1] 이미 회원가입된 아이디가 있다면
Declare @Result Int
Select @Result = Count(*) From Users
Where UserID = @UserID
If @Result > 0
Return -1 -- -1이 반환되면 회원가입 불가
Else
Begin
Insert Users(UserID, Password, UserName)
Values(@UserID, @Password, @UserName)
Return @@Identity -- 회원가입이되면 -1 이외의 값(1)을 반환
End
Go
--[2] 로그인 저장 프로시저 설계
Create Proc dbo.LoginUser
@UserID VarChar(20),
@Password VarChar(20)
As
--[1] 아이디와 암호가 맞는지?
Declare @Result Int
Select @Result = Count(*) From Users
Where UserID = @UserID And Password = @Password
If @Result > 0
Begin
Select '1' -- 1이 반환되면 로그인 처리
End
Else
Begin
Select '-1' -- -1이 반환되면 로그인 불가
End
Go
--LoginUser 'admin', '12345'
--[2] 출력 저장 프로시저
Create Proc dbo.GetUsers
As
Select * From Users Order By UID Desc
Go
--[3] 상세 저장 프로시저
Create Proc dbo.GetUser
@UID Int
As
Select * From Users
Where UID = @UID
Go
--[4] 수정 저장 프로시저
Create Proc UpdateUser
(
@UserName VarChar(25),
@Email VarChar(50),
@Job VarChar(20),
@Hobby VarChar(255),
@Gender Bit,
@Intro VarChar(8000),
@UserID VarChar(20),
@Password VarChar(20)
)
As
Update Users
Set
UserName = @UserName, Email = @Email,
Job = @Job, Hobby = @Hobby,
Gender = @Gender, Intro = @Intro
Where
UserID = @UserID And Password = @Password
Go
--[5] 삭제 저장 프로시저
Create Proc dbo.DeleteUser
@UserID VarChar(20),
@Password VarChar(20)
As
Delete Users Where UserID = @UserID And Password = @Password
Go
--[6] 검색 저장 프로시저 : 동적 쿼리문 -> 정적 쿼리문 변경해서 사용 가능
Create Proc dbo.FindUsers
@SearchField VarChar(255),
@SearchQuery VarChar(255)
As
Declare @strSql VarChar(255)
Set @strSql = '
Select * From Users Where ' + @SearchField
+ ' Like ''%' + @SearchQuery + '%''
'
Exec(@strSql)
Go