'MS-SQL'에 해당되는 글 14건
- 2011/12/21 MS-SQL 버전확인
- 2011/12/12 MS-SQL 특수문자 "[" like 검색
- 2011/02/28 MS-SQL 함수
- 2010/11/10 MS-SQL 2005(2008)에 필드 암호화 하기
- 2010/08/26 MS-SQL 트리거 사용
- 2010/08/04 MS SQL 백업 방법
- 2010/08/03 MS SQL DATETIME 형식 변환
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 버전과 에디션을 확인하는 방법
예) Query like '%[% → 검색안됨
해결: Query like '%[[]%'
→ 특수분자를 []로 감싸서 검색하면 됨
[출처] 특수문자( [ ) like 검색
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(문자, 자릿수)
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()는 현재 시간을 표시해준다.
DATEADD
DATEADD함수는 날자에 지정한 만큼을 더한다.
형식: DATEADD(날자형식, 더할 값, 날자)
DATEDIFF함수는 두 날자사이의 날자형식에 지정된 부분을 돌려준다.
형식: DATEDIFF(날자형식, 시작 날자, 끝 날자)
DATENAME함수는 지정한 날자의 날자형식의 이름을 돌려준다.
형식: DATENAME(날자형식, 날자)
DATEPART함수는 날자에서 지정한 날자형식부분만 추출해줍니다.
형식: DATEPART(날자형식, 날자)
주일은 일요일부터 1로 시작해서 토요일날 7로 끝나게 된다.
NULL 함수
ISNULL은 NULL값을 대체값으로 바꾼다.
형식: ISNULL(NULL값, 대체값)
NULLIF
NULLIF함수는 두개의 표현식을 비교하여 같으면 NULL을 반환한다.
형식: NULLIF(표현식1, 표현식2)
COALESCE
COALESCE함수는 NULL이 아닌 첫번째 표현식이 반환된다.
형식: COALESCE(표현식)
GETANSINULL
GETANSINULL은 데이터베이스의 기본 NULL 상태를 표시해준다.
형식: GETANSINULL(데이터베이스 이름)
AVG, MAX, MIN, SUM, COUNT
최대값을 구한다.
MIN
최소값을 구한다.
SUM
값갑의 합을 구한다.
AVG
평균을 구한다.
COUNT
값의 갯수를 구한다.
[출처] MS-SQL 함수모음
mysql에는 password()라는 내장함수가 있다.
하지만 mssql에는 다른 함수가 있다.
암호화 하여 튜플 삽입하기
예)INSERT INTO MEMBERSHIP values('rE', pwdencrypt('1234'))
암호화된 튜플 검색하기
// Return one more UID or nothing
SELECT pwdcompare('1111', PASSWORD) FROM MEMBERSHIP WHERE UID = 'rE'
// Return [0 | 1]
트리거(trigger)란 데이터베이스 관리 시스템(DBMS) 기능의 하나로, 테이블에 어떤 조작이 가해졌을 때에 미리 지정해 놓은 처리를 자동으로 작동 시키는 기능을 지칭한다.
INSERT
회원 테이블에 회원이 추가되었을때 회원 정보 중에서 user_id와 phone_no을 주소록 테이블에 기록하는 예이다.
회원 테이블은 MEMBER, 주소록 테이블은 ADDRESS라고 가정한다.
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 트리거
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 방법
| 0 | Feb 22 2006 4:26PM | CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0) |
| 1 | 02/22/06 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1) |
| 2 | 06.02.22 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2) |
| 3 | 22/02/06 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 3) |
| 4 | 22.02.06 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 4) |
| 5 | 22-02-06 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 5) |
| 6 | 22 Feb 06 | CONVERT(CHAR(9), CURRENT_TIMESTAMP, 6) |
| 7 | Feb 22, 06 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 7) |
| 8 | 16:26:08 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 8) |
| 9 | Feb 22 2006 4:26:08:020PM | CONVERT(CHAR(26), CURRENT_TIMESTAMP, 9) |
| 10 | 02-22-06 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 10) |
| 11 | 06/02/22 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 11) |
| 12 | 060222 | CONVERT(CHAR(6), CURRENT_TIMESTAMP, 12) |
| 13 | 22 Feb 2006 16:26:08:020 | CONVERT(CHAR(24), CURRENT_TIMESTAMP, 13) |
| 14 | 16:26:08:037 | CONVERT(CHAR(12), CURRENT_TIMESTAMP, 14) |
| 20 | 2006-02-22 16:26:08 | CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20) |
| 21 | 2006-02-22 16:26:08.037 | CONVERT(CHAR(23), CURRENT_TIMESTAMP, 21) |
| 22 | 02/22/06 4:26:08 PM | CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22) |
| 23 | 2006-02-22 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) |
| 24 | 16:26:08 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 24) |
| 25 | 2006-02-22 16:26:08.037 | CONVERT(CHAR(23), CURRENT_TIMESTAMP, 25) |
| 100 | Feb 22 2006 4:26PM | CONVERT(CHAR(19), CURRENT_TIMESTAMP, 100) |
| 101 | 02/22/2006 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 101) |
| 102 | 2006.02.22 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102) |
| 103 | 22/02/2006 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 103) |
| 104 | 22.02.2006 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 104) |
| 105 | 22-02-2006 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 105) |
| 106 | 22 Feb 2006 | CONVERT(CHAR(11), CURRENT_TIMESTAMP, 106) |
| 107 | Feb 22, 2006 | CONVERT(CHAR(12), CURRENT_TIMESTAMP, 107) |
| 108 | 16:26:08 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 108) |
| 109 | Feb 22 2006 4:26:08:067PM | CONVERT(CHAR(26), CURRENT_TIMESTAMP, 109) |
| 110 | 02-22-2006 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 110) |
| 111 | 2006/02/22 | CONVERT(CHAR(10), CURRENT_TIMESTAMP, 111) |
| 112 | 20060222 | CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112) |
| 113 | 22 Feb 2006 16:26:08:067 | CONVERT(CHAR(24), CURRENT_TIMESTAMP, 113) |
| 114 | 16:26:08:067 | CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114) |
| 120 | 2006-02-22 16:26:08 | CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120) |
| 121 | 2006-02-22 16:26:08.080 | CONVERT(CHAR(23), CURRENT_TIMESTAMP, 121) |
| 126 | 2006-02-22T16:26:08.080 | CONVERT(CHAR(23), CURRENT_TIMESTAMP, 126) |
| 127 | 2006-02-22T16:26:08.080 | CONVERT(CHAR(23), CURRENT_TIMESTAMP, 127) |
| 130 | 24 ???? 1427 4:26:08:080PM | CONVERT(CHAR(32), CURRENT_TIMESTAMP, 130) |
| 131 | 24/01/1427 4:26:08:080PM | CONVERT(CHAR(25), CURRENT_TIMESTAMP, 131) |
[출처] [MS-SQL] DATETIME 변환

Prev
Rss Feed