'Database/MS-SQL'에 해당되는 글 16건

  1. 2012.07.12 MS-SQL UPDATE - SELECT문 사용
  2. 2011.12.21 MS-SQL 버전확인
  3. 2011.12.12 MS-SQL 특수문자 "[" like 검색
  4. 2011.02.28 MS-SQL 함수
  5. 2010.11.10 MS-SQL 2005(2008)에 필드 암호화 하기
  6. 2010.08.26 MS-SQL 트리거 사용
  7. 2010.08.04 MS SQL 백업 방법
2012.07.12 13:54

MS-SQL UPDATE - SELECT문 사용

UPDATE A
SET A.JobTitle = B.UserJobTitle
FROM BackDatabase.dbo.DATTACHINFO A, Appro.dbo.ATTACHINFO B
WHERE A.DocID=B.DocID AND A.FileSN=B.FileSN 


[출처] [MSSQL] UPDATE~SELECT 문의 사용

Trackback 0 Comment 0
2011.12.21 16:51

MS-SQL 버전확인

SQL Server 2008/2005/2000
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

2008 반환 결과 예
  • 제품 버전(예: 10.0.1600.22)
  • 제품 수준(예: RTM)
  • 에디션(예: Enterprise)

2005 반환 결과 예
  • 제품 버전(예: 9.00.1399.06)
  • 제품 수준(예: RTM)
  • 에디션(예: Enterprise Edition)

2000 반환 결과 예
  • 제품 버전(예: 8.00.534)
  • 제품 수준(예: "RTM" 또는 "SP2")
  • 에디션(예: "Standard Edition") 예를 들면 결과는 다음과 비슷합니다.


[출처]
SQL Server 버전과 에디션을 확인하는 방법
Trackback 0 Comment 0
2011.12.12 16:50

MS-SQL 특수문자 "[" like 검색

문제: 쿼리에서 특수분자 "[" 검색이 되지 않을 때
예) Query like '%[% → 검색안됨

해결: Query like '%[[]%'
 → 특수분자를 []로 감싸서 검색하면 됨


[출처] 특수문자( [ ) like 검색
Trackback 0 Comment 0
2011.02.28 20:15

MS-SQL 함수

숫자함수
ABS
ABS함수는 절대값을 나타낸다.
형식: ABS(숫자값)

POWER
POWER함수는 제곱근을 표현해 준다.
형식: POWER(숫자값, 승수값)

SQRT
SQRT는 루트값을 표현해준다.
형식: SQRT(숫자값)

RAND
RAND는 0 에서 1사이의 난수를 발생시킨다.
형식: RAND(초기값)

ROUND
ROUND는 반올림 함수이다.
형식: ROUND(숫자, 자릿수)
ROUND는 자릿수만 조심하면 된다. 2번째 결과는 8을 반올림하여 그 앞의 9에 1이 더해진것이고 3번째 결과는 9가 반올림된것이다.

CEILING, FLOOR
CEILING은 소수점 첫번째 값을 기준으로 올림을 하고 FLOOR는 소수점 첫번째 값을 기준으로 내림을 한다.
형식: CEILING(숫자) ... FLOOR도 동일
CEILING과 FLOOR는 소수 첫번째값이 5 이상이든 이하든간에 무조건 올림, 내림을 수행한다.


문자함수
LEFT, RIGHT
LEFT는 지정해준 자릿수만큼 왼쪽에서부터 문자열을 반환한다.
당연히 RIGHT는 반대이다.
형식 : LEFT(문자, 자릿수)

LTRIM, RTRIM
LTRIM은 문자열의 왼쪽 공백을 제거한다. 역시 RTRIM은 반대일 경우 사용된다.
형식: LTRIM(문자)

LEN
LEN함수는 문자열에서 문자의 갯수를 추출한다.
형식: LEN(문자)
Len함수는 문자 뒤쪽의 공백은 문자로 계산하지 않는다.

UPPER, LOWER
UPPER는 소문자를 대문자로, LOWER는 대문자를 소문자로 바꾼다.
형식: UPPER(문자)

REVERSE
REVERSE는 문자열을 반대로 표시한다.
형식: REVERSE(문자열)

REPLACE
REPLACE함수는 지정한 문자열을 다른 문자열로 바꾸어준다.
형식: REPLACE(문자, 타겟문자, 바꿀문자)

REPLICATE
REPLICATE함수는 문자열을 지정된 횟수만큼 반복한다.
형식: REPLICATE(문자, 횟수)

STUFF
STUFF함수는 문자열에서 특정 시작위치에서 지정된 길이만큼 문자를 바꾸어준다.
형식: STUFF(문자, 시작위치, 길이, 바꿀문자)

SUBSTRING
SUBSTRING은 STUFF와 비슷하지만 문자를 바꾸는 것이 아니라 그 문자를 반환한다.
형식: SUBSTRING(문자, 시작위치, 길이)

PATINDEX, CHARINDEX
PATINDEX와 CHARINDEX는 문자열에서 지정한 패턴이 시작되는 위치를 뽑아준다.
형식: PATINDEX(문자패턴, 문자) - 문자패턴은 Like 사용과 같다.
형식: CHARINDEX(문자패턴, 문자) - 문자패턴은 일반형식을 사용한다.

SPACE
SPACE함수는 지정한 수 만큼 공백을 추가한다.
형식: SPACE(횟수)


시간 및 날짜 함수
GETDATE()
GETDATE()는 현재 시간을 표시해준다.
DATEADD
DATEADD함수는 날자에 지정한 만큼을 더한다.
형식: DATEADD(날자형식, 더할 값, 날자)
DATEDIFF
DATEDIFF함수는 두 날자사이의 날자형식에 지정된 부분을 돌려준다.
형식: DATEDIFF(날자형식, 시작 날자, 끝 날자)
DATENAME
DATENAME함수는 지정한 날자의 날자형식의 이름을 돌려준다.
형식: DATENAME(날자형식, 날자)
DATEPART
DATEPART함수는 날자에서 지정한 날자형식부분만 추출해줍니다.
형식: DATEPART(날자형식, 날자)
주일은 일요일부터 1로 시작해서 토요일날 7로 끝나게 된다.

NULL 함수
ISNULL
ISNULL은 NULL값을 대체값으로 바꾼다.
형식: ISNULL(NULL값, 대체값)

NULLIF
NULLIF함수는 두개의 표현식을 비교하여 같으면 NULL을 반환한다.
형식: NULLIF(표현식1, 표현식2)

COALESCE
COALESCE함수는 NULL이 아닌 첫번째 표현식이 반환된다.
형식: COALESCE(표현식)

GETANSINULL
GETANSINULL은 데이터베이스의 기본 NULL 상태를 표시해준다.
형식: GETANSINULL(데이터베이스 이름)


AVG, MAX, MIN, SUM, COUNT
MAX
최대값을 구한다.

MIN
최소값을 구한다.

SUM
값갑의 합을 구한다.

AVG
평균을 구한다.

COUNT
값의 갯수를 구한다.



[출처] MS-SQL 함수모음
Trackback 0 Comment 0
2010.11.10 13:33

MS-SQL 2005(2008)에 필드 암호화 하기

mysql에는 password()라는 내장함수가 있다.
하지만 mssql에는 다른 함수가 있다.

암호화 하여 튜플 삽입하기

INSERT INTO table_name VALUES(PWDENCRYPT('value'))

예)INSERT INTO MEMBERSHIP values('rE', pwdencrypt('1234'))


암호화된 튜플 검색하기

SELECT UID FROM MEMBERSHIP WHERE 1 = PWDENCRYPT('1111', PASSWORD)
// Return one more UID or nothing

SELECT pwdcompare('1111', PASSWORD) FROM MEMBERSHIP WHERE UID = 'rE'
// Return [0 | 1]


[출처] MSSQL 2005에 필드 암호화 하기

Trackback 0 Comment 0
2010.08.26 17:43

MS-SQL 트리거 사용

트리거(trigger)란 데이터베이스 관리 시스템(DBMS) 기능의 하나로, 테이블에 어떤 조작이 가해졌을 때에 미리 지정해 놓은 처리를 자동으로 작동 시키는 기능을 지칭한다.

INSERT
회원 테이블에 회원이 추가되었을때 회원 정보 중에서 user_id와 phone_no을 주소록 테이블에 기록하는 예이다.
회원 테이블은 MEMBER, 주소록 테이블은  ADDRESS라고 가정한다.

CREATE TRIGGER ADDRESS_INSERT ON MEMBER FOR INSERT
AS
DECLARE
    @user_id        VARCHAR(20),
    @phone_no    VARCHAR(20)

SELECT @user_id = user_id, @phone_no = phone_no FROM MEMBER
INSERT INTO ADDRESS VALUES(@user_id, @phone_no)

위 예제는 회원 테이블에 데이터가 삽입되면 그 중에서 아이디와 전화번호를 주소록 테이블에 기록하게 된다.

[참조] [MSSQL] TRIGGER 트리거
Trackback 0 Comment 0
2010.08.04 12:43

MS SQL 백업 방법

MS Sql Server 2005에서 백업을 받을 경우 다음과 같이 Management Studio에서 받을 수 있다.

사용자 삽입 이미지

해당 Object Explorer에서 해당 DB에서 마우스 오른쪽을 클릭하면 위와 같은 팝업 창이 나온다.
Backup To를 클릭하면 다음과 같은 창이 뜬다.

사용자 삽입 이미지

해당 백업 이름 및 Destination을 입력하면 백업을 받을 수 있다.
여기서 Recovery model이 Simple일 경우 Full 및 Differential 백업만 받을 수 있다.

Backup set will expire는 해당 백업의 만기일자를 정해줄 수 있으며
Destination에서 백업 파일을 여러군데로 나누는 경우 해당 백업파일을 나눈 개수대로 생성한다.
해당 파일들이 전부 존재 해야 백업에 대해 restore를 할 수 있으므로 backup file은 한개로 생성하는 것이 좋다.

사용자 삽입 이미지

Backup Option 클릭 시 위와 같은 화면이 뜨는데 주의할 것은
Overwrite media의 화면에서 Append가 설정되어 있는 경우 기존 백업에 Append 되기 때문에
백업 파일의 크기가 2배가 된다.

백업을 받을 때 Backup Media를 설정하는 경우 백업 받기가 수월하다.
Server Objects -> Backup Devices에서 Backup Media를 생성할 수 있다.
Backup Media는 대상 Media의 이름과 백업 받을 대상 폴더만 지정해주면된다.

사용자 삽입 이미지

위와 같이 Backup Media 생성 시 백업 화면의 Destination에서 Add 버튼을 누르면 Backup media를 선택하여 간단하게 받을 수 있다.
일종의 코딩에서의 Template와 같다고 생각하면 된다.

해당 Backup의 Sql Query는 다음과 같다.
1) Data Backup
BACKUP DATABASE DB명
TO DISK = 'BACKUP FILE 명'
WITH NOINIT(NOINIT - 백업 파일 새로 생성, INIT - 백업 파일 APPEND)
,       DIFFERENTIAL (FULL은 Default)

2) Log Backup
BACKUP LOG DB명
TO DISK = 'BACKUP FILE명'
WITH NOINIT(NOINIT - 백업 파일 새로 생성, INIT - 백업 파일 APPEND)

3) Backup Device Add
-- Backup Device add
EXEC sp_addumpdevice
 @devtype = 'disk',  
 @logicalname = 'AdventureWorksBack',
 @physicalname = 'C:\MyBackupDir\AdventureWorksBack.bak'

위와 같이 백업을 쉽게 할 수 있다.


[출처] MS SQL DB Backup 방법

Trackback 0 Comment 0