강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

MSSQL 기본값
작성자 : 13 김영철
등록날짜 : 2009.01.24 23:12
3,036
Integers

bigint

sql2000부터 생긴 데이터 형으로

-2^63 (-9223372036854775808) 부터 2^63-1 (9223372036854775807) 까지의 정수를 지정 가능 합니다.

int

-2^31 (-2,147,483,648) 부터  2^31 - 1 (2,147,483,647)까지의 정수를 지정 가능 합니다.

smallint

2^15 (-32,768) 부터  2^15 - 1 (32,767)까지의 정수를 지정 가능 합니다.

tinyint

0 부터 255 까지의 정수를 지정 가능 합니다.

 
bit

bit

1 또는 0  이라는 데이터를 저장 가능하며 참, 거짓에 사용 됩니다.

 
decimal and numeric

decimal

 -10^38 -1  10^38 -1 까지의 수에 대해 정밀도와 크기를 사용자에 의해 지정 가능 합니다.

numeric

decimal 형과 같습니다.

 
money and smallmoney

money

돈과 관계되는 데이터 타입으로  -2^63 (-922,337,203,685,477.5808) 부터 

2^63 - 1 (+922,337,203,685,477.5807)까지의 수치를 사용가능 하며 

1000단위 컴마를 사용 가능 합니다. 천조 까지의 데이터를 처리 가능합니다.

smallmoney

 -214,748.3648 부터 +214,748.3647 까지 사용 가능하며 1000단위 컴마 지정이 가능 합니다.

 
Approximate Numerics

float

부동(정확하지 않은) 소수 데이터 형으로  -1.79E + 308 부터  1.79E + 308 까지의 데이터 

사용이 가능 합니다.

real

 -3.40E + 38 부터 3.40E + 38 까지의 부동 소수 데이터 형입니다.

 

datetime and smalldatetime

datetime

1월  1일, 1753년, 부터 12월 31일, 9999년, 까지의 데이터를 1000분의 일초 단위로 

지정 가능 합니다.

smalldatetime

1월 1일, 1900년, through 6월 6일, 2079년, 까지 1분 단위 정확도로 지정 가능 합니다.

 
Character Strings

char

8,000바이트(문자)까지 지정 가능한 유니코드가 아닌 고정길이 데이터 형입니다.

varchar

 8,000바이트 까지 지정 가능한 유니코드가 아닌 가변길이 데이터 형입니다.

text

 2^31 - 1 (2,147,483,647) 유니코드가 아닌 가변길이 데이터형으로 2기가 까지 지정 가능 합니다.

 

Unicode Character Strings

nchar

4,000바이트 까지 지정 가능한 유니코드 고정길이 데이터 형입니다.

nvarchar

4,000바이트 까지 지정 가능한 유니코드 가변길이 데이터 형입니다.

ntext

2^30 - 1 (1,073,741,823) 즉, 1기가 까지 지정 가능한 가변길이 유니코드 데이터 형입니다.

 

Binary Strings

binary

8,000 바이트 까지 이진 데이터를 지정 가능한 고정길이 데이터형입니다.

varbinary

8,000바이트 까지 이진 데이터를 지정 가능한 가변길이 데이터형입니다.

image

2기가까지 이진 데이터를 지정 가능한 가변길이 데이터형입니다.

 
Other Data Types

cursor

커서 지정에 사용하는 형입니다. 커서에서만 사용 합니다.

rowversion

sql2000에서 timestamp 형에서 변경된 데이터 형으로

데이터베이스에 걸쳐 유일하게 사용하는 고유 값을 지정 하는 

데이터 형입니다. 해당 로우가 변경될시 함께 변경됩니다. timestamp형이라 보통 불립니다.

sql_variant

sql2000부터 생긴 데이터 형으로 text, ntext, timestamp, 과 sql_variant 형을 제외한

 모든 데이터형을 저장 가능한 데이터 형입니다.

table

sql2000부터 생긴 데이터 형으로 테이블과 같은 2차원 데이터를 저장하기위한 데이터 형입니다.

uniqueidentifier

어떠한 경우라도 중복되지 않는 항상 고유한 값을 저장하는 데이터 형입니다.

 

새롭게 생긴 샘플만 알아 보도록 하지요. 먼저 많은 분들이 궁금해 하시는

table형 데이터 입니다.

 

DECLARE @T TABLE (id int, name varchar(8))
INSERT @T values(10,'Joe')
select * from @T

 

 

다음은 모든 데이터를 지정 가능한 sql_variant 형입니다.

VB의 데이터형과 비슷 하다고 생각하심 되겠지요?

 

DECLARE @T1 sql_variant, @T2 sql_variant
set @T1 = 12345
set @T2 = '문자열'
select @T1
select @T2

 

개인적으로는 이런 variant형은 그다지 필요 없을듯 하지만? 개발자 쪽에선 차라리

쉬울수도 있겠지요.

자세한 이야기는 테이블 생성 편에서 드릴 겁니다.

 

많이 질문 받는으로 var형과 var가 안 붙은 데이텨형의 차이 입니다.

varchar과 char의 차이를 보여 드리면...

1번 char(10)

2번 varchar(10)으로 컬럼을 잡습니다...

여기에

kimdaewoo를 넣는다고 해 보지요...

그럼 1번에는

'kimdaewoo '가 저장 됩니다.

즉 9자의 알파벳과 공백값이 하나가 들어간다 라는 의미 입니다.

항상 10개의 문자를 채워 저장이 되지요...

varchar는....

마찬가지로 'kimdaewoo'를 입력하면

'kimdaewoo' 로 딱 9자만 들어 갑니다...

'daewoo'를 2번에 넣으면

'daewoo' 라고 6자만 저장이 되는 거지요....

var가 붙으면? 저장시 뒷부분의 공백이 잘려 저장되어 저장 공간이(디스크)

낭비되지 않는다는 겁니다...

 

조금 이해가 되셨느지요. 그럼 다음은 함수 입니다.

 

함수의 설명 입니다.

 

아울러 이하 모든 함수 리스트의 링크들은? 영문 MS의 기술지원으로 링크가 됩니다.

MS영문 사이트의 링크가 변환되면 링크가 안될 수 있습니다.

 

SQL서버의 함수의 종류를 간단히 설명 드리면.

함수 종류 설명

Aggregate Functions 

테이블의 로우들에 대해 결과집합을 생성 합니다.

Configuration Functions 

현재 시스템의 설정 정보를 보여 줍니다.
Cursor Functions 커서에 대한 정보를 보여 줍니다.
Date and Time Functions 날짜와 시간에 대한 함수
Mathematical Functions 수치 계산에 관한 함수
Metadata Functions 데이터베이스와 데이터베이스 개체에 대한 함수
Security Functions 사용자와 롤(권한)에 대한 함수
String Functions 문자열 처리에 대한 함수
System Functions 개체 세팅등의 SQL서버에 대한 함수
System Statistical Functions 시스템 통계치에 대한 함수
Text and Image Functions 텍스트와 이미지에 대한 함수

 

자 함수들이 무쟈게 많이 있지요? ^_^

이것덜중 많이 사용하게 되는 함수인 

Aggregate Functions, Date and Time Functions, Mathematical Functions, String Functions 들에 

대한 것을 설명을 드리구요. 

아울러 나머지 함수들중 많이 사용되는 함수를 코난이의 임의 판단하에 설명을

드리지요. ^_^

 

Aggregate Functions 입니다.

이는 일반적으로 테이블들의 여러 행들에 걸치는 작업을 하게 됩니다.

가장 많이 사용하실 테이블의 로우들에 대해 처리해 결과 또는 결과 집합을 생성 합니다.

 

AVG SUM
COUNT STDEV
GROUPING STDEVP
MAX VAR
MIN VARP

 

AVG 함수 - 수치형으로 된 컬럼의 로우들에 대해 평균을 리턴 합니다.

 

SELECT AVG(advance)

FROM titles

 

 

SUM 함수 - 수치형으로 된 컬럼의 로우들에 대해 수치데이터의 총합값을 계산합니다.

 

SELECT SUM(price), SUM(advance)

FROM titles

 

 

COUNT 함수 - 컬럼의 로우 갯수를 리턴합니다. 

이는 *로 잡으셔도 되며 컬럼 1개를 잡으셔도 같은 결과 입니다.

 

SELECT COUNT(*)

FROM titles

SELECT COUNT(title)

FROM titles

 

 

MAX함수 - 수치형으로 된 컬럼의 로우들중 최대값을 찾아 리턴 합니다.

 

SELECT MAX(ytd_sales)

FROM titles

GO

 

 

MIN 함수 - 수치형으로 된 컬럼의 로우들중 최소값을 찾아 리턴 합니다.

 

SELECT min(ytd_sales) FROM titles 

GO

 

 

 

다음은 Date and Time Function 함수 

DATEADD DAY
DATEDIFF GETDATE
DATENAME MONTH
DATEPART YEAR

 

GETDATE() : 현재 날짜와 시간을 반환

 

USE pubs
GO
SELECT GETDATE()
GO

 

 

DATEADD : 기존 날짜 데이터에 대해 날짜, 월, 년 등의 날짜 데이터를 더하는 함수

 

USE pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO

 

 

DATEDIFF : 날짜 데이터부터 지정일까지의 년,월,일 시간을 반환

 

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

 

 

DATEPART : 지정년도의 년, 월, 일 등의 특정 부분만을 반환

 

SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO

 

 

웃샤.. 양이 점점 많아 지는군요. 그래도 코난이는 꿋꿋하게 해나갈랍니다. ^_^

웃으며 해야지요. ^_^

 

다음은 Mathematical Functions 수치 계산에 관한 함수 입니다.

수학과 관련된 부분이지만? 몇몇개는 종종 사용 한답니다. ^_^

ABS LOG10
ACOS PI
ASIN POWER
ATAN RADIANS
ATN2 RAND
CEILING ROUND
COS SIGN
COT SIN
DEGREES SQUARE
EXP SQRT
FLOOR TAN
LOG  

 

ABS : 절대값을 반환.

 

SELECT ABS(-1.0), ABS(0.0), ABS(1.0)

 

 

RAND : 0~1 까지의 소수로된 난수를 발행시킴.

 

SELECT RAND(1) AS Random_Number

 

 

ROUND : 지정위치에서 반올림을 함. - 많이 사용 됩니다.

 

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) 

 

주의 하셔야 할 부분 입니다. ROUND는 종종 사용할 경우가 있답니다.

좀더 샘플을 보여 드리면?

예제 결과
ROUND(748.58, -1) 750.00
ROUND(748.58, -2) 700.00
ROUND(748.58, -3) 1000.00
<PRE>SELECT ROUND(123.4545, 2)</PRE> <PRE>123.4500</PRE>
<PRE>SELECT ROUND(123.45, -2)</PRE> <PRE>100.00</PRE>
<PRE>SELECT ROUND(150.75, 0)</PRE> <PRE>151.00</PRE>
<PRE>SELECT ROUND(150.75, 0, 1)</PRE> <PRE>150.00</PRE>
ROUND(748.58, -4) 0

 

다음은 String Functions 즉 문자열 처리에 대한 함수 입니다.

이거 많이 사용하게 되실 겁니다. 잘 알아두시면 나중에 유용합니다.

ASCII REPLICATE
CHAR REVERSE
CHARINDEX RIGHT
DIFFERENCE RTRIM
LEFT SOUNDEX
LEN SPACE
LOWER STR
LTRIM STUFF
NCHAR SUBSTRING
PATINDEX UNICODE
REPLACE UPPER
QUOTENAME  

 

LEFT - 해당 컬럼의 문자열중 해당하는 문자열 까지만 문자열을 리턴

 

SELECT LEFT(title, 5) 

FROM titles

 

 

LEN - 해당 컬럼의 문자열의 길이를 수치로 리턴

 

SELECT LEN(title) 

FROM titles

 

 

LOWER - 해당 컬럼의 문자열(영문)을 모두 소문자로 변경

 

SELECT LOWER(title) AS 소문자

FROM titles

 

 

LTRIM - 문자열 왼쪽의 공백을 제거함

 

--@konan_string 이라는 변수를 VARCHAR(100) 이라는 

--100자의 문자열로 선언

DECLARE @konan_string varchar(100)

 

--@konan_string에 아래의 땀표부터 땀표까지 문자열 지정

SET @konan_string = ' 냐햐~ 코난이는 잘생겼다.'

 

--STRING에 LTRIM 적용으로 왼쪽의 빈 문자열 잘라냄

SELECT LTRIM(@konan_string)

GO

 

조금 어려우신가요? 변수를 생성하고 문자열을 변수에 대입후 처리하는 샘플 입니다.

나중에 T-SQL 프로그래밍 등에서 종종 보실테니 그러려니하시고 어려우시면 지금은 그냥

실행만 해 보세요. ^_^

 

PATINDEX - 해당 컬럼의 문자열중 원하는 패턴이 처음 발생한 위치(수치위치)을 리턴

 

SELECT PATINDEX('%the%', title) as 문자열이첨발생한곳

FROM titles

 

 

REPLACE - 문자열중 일정 문자열 또는 문자를 다른 문자열로 변환 

 

SELECT REPLACE('코난이는 잘 생겼다','잘','못')

 

 

REVERSE - 문자열의 위치를 바꿈 (맨첫자는 맨 뒤로 식으로 문자열의 순서를 바꿈)

 

SELECT REVERSE(au_fname) 

FROM authors

 

 

RIGHT - 문자열중 오른쪽부터 원하는 수치만큼의 문자열만 가져옴

 

SELECT RIGHT(au_fname, 5) 

FROM authors

 

 

RTRIM - 문자열중 오른쪽부터의 공백을 제거 (LTRIM 참고)

 

STUFF - 문자열중 원하는 위치부터 원하는 길이까지 원하는 문자열로 변환

 

SELECT STUFF('코난이는 자알~ 생겼다.', 6, 3, '못')

 

 

SUBSTRING - 문자열중 원하는 위치부터 원하는 길이만큼 문자열을 가져옴

 

SELECT au_fname, SUBSTRING(au_fname, 3, 2) as 세번째위치부터두글자

FROM authors

 

 

UPPER - 모두 대문자로

 

SELECT UPPER(au_lname) AS 모두대문자로

FROM authors

 

 

웃차 이정도면? 많이 사용되는 네가지

Aggregate Functions, Date and Time Functions, Mathematical Functions, String Functions

들에대해서 약간 알아 보았구요. 이외의 것들은 제경우 많이 사용하진 않았던 함수들이군요

그래도 이외에도 수없이 많은 함수들이 있으니 꼬옥~ 공부 하셔야 할겁니다. ^_^

 

코난이도 이 많은 다른 함수들을 다 기억하진 못합니다. - 제가 천잽니까 -_-;;

항상 북스 온라인을 보고 예제를 보고 사용하는 것이지요.

항상 북스 온라인을 자주 보시길 바랍니다.

 

북스 온라인의 샘플은 대주제로 위처럼 

Aggregate Functions, Date and Time Functions, Mathematical Functions, String Functions

등으로 나뉘어 지며 자신이 하고자 하는게 함수로 있을까 의문이라면?

이분류에서 찾아 보심 되겠지요? ^_^ 

즉, 문자열처리가 필요한데.. 하시면? String 함수에서

날짜와 관계된 함수가 필요한데.. 하시면? Date Time 함수에서 차자 보심 되겠지요?

물론 함수를 생성도 가능하니 없다면? 생성하고 사용하셔도 된답니다. ^_^

 

예를들면? TRIM이라는 함수가 필요하다고 하지요.

이는 문자열 왼쪽 또는 오른쪽 또는 문자열내에 공백이 있다면? 이 공백을 없애는 함수를

쓰고 싶은데 SQL에는 없는 겁니다. 어케함 될까요? -_-;;

바로!!!  다른 String 함수 등을 이용해 만드시는 겁니다.

코난이는 일케 했습니다.

 

SELECT replace(' 코난이는 아주 잘 생겼다. ', ' ', '')

 

이런 식이죵. 물론 이를 어플리케이션의 함수로 보내도 되지 않는가?

물론 됩니다. 하지만 코난이는 개발자의 부담(저는 ASP개발자와 일합니다.)

을 덜어주기 위해 상의후 가능함 DB쪽에서 처리하기 위해 노력 한답니다.

 

아울러 방법이 없네.. 내가 찾는 함수가 없어..  T.T 

항상 방법은 있다고 생각 하세요. 생각하시면 나옵니다. 

[출처] 민주가인

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2715 MySQL 에서 사용되는 sql문 정리 M 최고의하루 12.19 2743
2714 [ MySQL ] MySQL 기본적으로 익혀야할 과제 M 최고의하루 12.18 2501
2713 [ MySQL ] MySql4.x / PHP4.x / Apache 한글깨짐 M 최고의하루 12.18 3257
2712 [ MySQL ] MySQL 5 한글 UTF8 한글 깨짐 분석 (Windows 용) M 최고의하루 12.04 5730
2711 MySQL 명령어 정리 M 최고의하루 12.04 2388
2710 MSSQL 페이징 13 김영철 01.24 2487
2709 mssql 암호화 13 김영철 01.24 2486
2708 mysql과 mssql의 변환시 유의사항 13 김영철 01.24 2672
2707 mssql 백업방법 13 김영철 01.24 2773
2706 데이터 정보 확인방법 13 김영철 01.24 2354
2705 MS-SQL JDBC "ResultSet Can Not Re-Read Row Data" 예외 처리 방법 13 김영철 01.24 3283
2704 IDENTITY 속성 13 김영철 01.24 2160
2703 Jsp + Mssql Long타입 데이타 사용시 문제점 13 김영철 01.24 2764
2702 PWDENCRYPT와 PWDCOMPARE를 통해 암호화 기능 13 김영철 01.24 3471
열람중 MSSQL 기본값 13 김영철 01.24 3037
2700 :: 데이터베이스의 종류 :: 13 김영철 01.24 2350
2699 :: 데이터베이스의 객체 :: 13 김영철 01.24 2635
2698 :: Transact-SQL 이란 :: 13 김영철 01.24 2886
2697 :: 단순 SELECT 문 :: 13 김영철 01.24 2368
2696 :: WHERE 절 :: 13 김영철 01.24 2803
2695 :: ORDER BY, GROUP BY :: 13 김영철 01.24 2479
2694 :: 조인(Join) 이란? :: 13 김영철 01.24 2182
2693 :: 조인(Join)의 사용 예 :: 13 김영철 01.24 2342
2692 :: SELECT INTO 와 INSERT INTO :: 13 김영철 01.24 2575
2691 :: 데이터베이스의 구조 :: 13 김영철 01.24 2306
2690 :: 데이터베이스 생성 :: 13 김영철 01.24 2112
2689 :: 데이터 무결성 :: [출처] :: 데이터 무결성 :: (쇼핑몰 대박못내는 진짜이유!) |작성자 프런티어 13 김영철 01.24 3177
2688 :: 인덱스(Index) :: 13 김영철 01.24 2090
2687 :: 뷰(View) :: 13 김영철 01.24 2816
2686 :: 저장프로시저 (Stored Procedure) :: 13 김영철 01.24 2784
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취