2013.04.01 17:10 IT/MSSQL

MSSQL Data Type(2)

MSSQL NUMERIC DATA TYPE

 

BIGINT, 8 bytes of storage . -263 to 263 -1. If possible avoid this.

 

INT, 4 bytes of storage ; store numbers from -231 to 231 -1.

 

SMALLINT, 2 bytes of storage store numbers from -215 to 215 -1.

 

TINYINT, 1 byte of storage store numbers from 0 to 255.

 

MONEY, 8 bytes of storage.

 

SMALLMONEY, 4 bytes of storage.

 

 

REAL, 4 bytes for storage; precision of 7 digits. The synonym for REAL is FLOAT[(n)] for n = 1 to 7.

 

FLOAT, 8 bytes for storage;precision of 15 digits. The synonym for FLOAT is DOUBLE PRECISION and FLOAT[(n)] for n = 8 to 15.

 

DECIMAL, whose storage size varies based on the specified precision and uses 217 bytes for storage. The synonyms for DECIMAL are DEC and NUMERIC.

 

 

 


Character Data Types

 

 

CHAR(n)s are fixed-length single-byte and can store8,000 bytes of data. Faster than varchar type. Useful for fixed data which invariable. Social Security number could be of CHAR(9)

 


Varchar(n) are non-fixed-length and can store also 8000 bytes of data. = variable char.

"Variable length means that if less data than the specified n bytes is used, the storage size will be the actual length of the data entered."(quoted from "Learning SQL series" by oreilly).

 


Varchar is same as varchar2 in Oracle.

 

 

 


Text: more than 8000 bytes. It is same as Long in Oracle.

 

 

 

 

 

 

Nchar and Nvarchar are for unicode.

 

 


Tips) from Oreilly book "Learning SQL series"


1. Use the variable-length data types (VARCHAR) over fixed-length data types (CHAR) when you expect a lot of null values or a lot of variation in the size of data.

 

2. 데이터 사이즈의 변화가 심하거나 널 가치가 들어갈때에는 char 대신 varchar타입을 사용하라.

 


3. If a column's data does not vary widely in number of characters, consider using CHAR instead of VARCHAR.

 

4. 칼럼의 데이타가 캐릭터 수치상 크게 변하지 않을때는 varchar대신 char를 사용.


5. NVARCHAR or NCHAR data types should not be used unless you need to store 16-bit character (Unicode) data.

NVARCHARs and NCHARs take up twice as much space as VARCHAR or CHAR data types, reducing I/O performance.


6. nvarchar나 nchar,는 꼭 필요할때만 사용한다. varchar나 char보다 2배의 공간을 차지하기 때문이다.

 

 

 

Date and Time Data Types

 


datetime(date in Oracle): up to 8 bytes;

smalldatetime: up to 4 bytes;

Respectively stored as date and time part. Primary key should not be used in these data types.

 

 

 

 


Others


The BINARY data types are BINARY and VARBINARY.

 


1.BINARY data : store strings of bits, hexadecimal (hex) representation. 8000 bytes.

 

널값이나 데이터 사이즈 변화가 자주일어날때는 Varbinary를 사용한다.


2. The VARBINARY data type can store up to 8,000 bytes of variable-length binary data.

 

 

 

 

 

In Oracle, raw is the equivalent of VARBINARY.

 

 

 

 

 

IMAGE DATA TYPE: USED TO STORE PICTURES AND BINARY DATA UP TO 8000 BYTES.

IMAGE IS SAME AS "LONG LAW" IN ORACLE.

 

 

 

 


*BIT DATATYPE: 0 OR 1. Can not be indexed and null.

 

 

 

 

 

 

 


The monetary data types

Monetary data types are generally used to store monetary values.

MONEY: 8 bytes of storage
SMALLMONEY:4 bytes of storage


money


 -922,337,203,685,477.5808 - 922,337,203,685,477.5807
 8바이트
 


smallmoney


 - 214,748.3648 - 214,748.3647
 4바이트
 

 

 

 

 

The TABLE data type

: Used to store function's result.

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1.4.7. The UNIQUEIDENTIFIER data type

 

 

The UNIQUEIDENTIFIER data type, globally unique identifier (GUID)


3.1.4.8. The XML data type

 


Introduced in sql server 2005 for the first time.

 


Tips) Selecting Data Types

If possible, use smallest column sizes to faster sql server.


For example, if you want to store numbers from 1 to 100 in a column, selecting TINYINT is better choice than INT.

 


Better use numeric data type like INTEGER than VARCHAR OR CHAR. Because it requires much less space than character data types.

From. http://blog.daum.net/wonderful_nhk/417

'IT > MSSQL' 카테고리의 다른 글

MSSQL 문자열 함수  (0) 2013.04.09
Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

2013.04.01 17:04 IT/MSSQL

MSSQL Data Type

Integers
 
bigint
-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
text, ntext, timestamp, 과 sql_variant 형을 제외한 모든 데이터형을 저장 가능한 데이터 형입니다.
 
table
sql2000부터 생긴 데이터 형으로 테이블과 같은 2차원 데이터를 저장하기위한 데이터 형입니다.
 
uniqueidentifier
어떠한 경우라도 중복되지 않는 항상 고유한 값을 저장하는 데이터 형입니다.

 

'IT > MSSQL' 카테고리의 다른 글

Trigger 트리거 관련 정보 조회.  (0) 2013.04.09
MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
MSSQL Index  (0) 2013.03.19
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

 Type

Byte 

Range 

 bigint  8  -2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)
 int  4  -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)
 smallint  2  -2^15(-32,768) ~ 2^15-1(32,767)

 tinyint

 1  0 ~ 255

smallint를 잠시 살펴보면

1Byte = 8Bit..

Bit는 0과 1. 즉 2가지 Case.

그러므로

2Byte 표현 가능수 =16Bit의 표현가능 수 = 2^16 = 65535

0~65535 하면 음수 표현 못하니까

반 잘라서

-32768~32767

너무 당연한 이야기를 했지만.. 그래도 끄적거리고 싶었다.

 

그럼 왜 tinyint는 반 잘라서 음수표현을 안한것일까?

걍 내 생각엔 1Byte의 숫자범위(0~255)를 그대로 살리고자 했음이 아닐까 싶다.

플밍을 하다보면 Byte 단위는 소중하니까(Memory Handling 등..).. ㅋㅋ

 

 

 

'IT > MSSQL' 카테고리의 다른 글

MSSQL Data Type(2)  (0) 2013.04.01
MSSQL Data Type  (0) 2013.04.01
MSSQL Int (Integer) Type  (0) 2013.04.01
Database Compare Tool.  (0) 2013.03.21
MSSQL Index  (0) 2013.03.19
DB ID 조회 Query  (0) 2013.03.18
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

블로그 이미지
경제를 좋아하는 일산의 행복한 프로그래머입니다. 감사합니다.
당양부부
Yesterday40
Today29
Total117,401

달력

 « |  » 2019.01
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 달린 댓글

최근에 받은 트랙백

글 보관함