SQL Server Data Types

Posted On 2008-07-20 by FortyPoundHead
Keywords:
Tags: General Tutorial 
Views: 1418


SQL Server requires that each variable and column in a table should be defined with respect to the type of data it will store. From a bit to a huge image and binary storage types, the allocation is supposed to help the user conform to the data required, and help the engine allocate space and processing speed efficiently.

Built-in data types

SQL Server 2000 recognizes the following built in data types:

Data Types
Description

bigint
Integer data from -2^63 through 2^63-1

int
Integer data from -2^31 through 2^31 - 1

smallint
Integer data from -2^15 through 2^15 - 1

tinyint
Integer data from 0 through 255

bit
Integer data with either a 1 or 0 value

decimal
Fixed precision and scale numeric data from -10^38 +1 through 10^38 -1

numeric
Fixed precision and scale numeric data from -10^38 +1 through 10^38 -1

money
Monetary data values from -2^63 through 2^63 - 1

smallmoney
Monetary data values from -214,748.3648 through +214,748.3647

float
Floating precision number data from -1.79E + 308 through 1.79E + 308

real
Floating precision number data from -3.40E + 38 through 3.40E + 38

datetime
Date and time data from January 1, 1753, through December 31, 9999, with an accuracy of 3.33 milliseconds

smalldatetime
Date and time data from January 1, 1900, through June 6, 2079, with an accuracy of one minute

char
Fixed-length character data with a maximum length of 8,000 characters

varchar
Variable-length data with a maximum of 8,000 characters

text
Variable-length data with a maximum length of 2^31 - 1 characters

nchar
Fixed-length Unicode data with a maximum length of 4,000 characters

nvarchar
Variable-length Unicode data with a maximum length of 4,000 characters

ntext
Variable-length Unicode data with a maximum length of 2^30 - 1 characters

binary
Fixed-length binary data with a maximum length of 8,000 bytes

varbinary
Variable-length binary data with a maximum length of 8,000 bytes

image
Variable-length binary data with a maximum length of 2^31 - 1 bytes

cursor
A reference to a cursor

sql_variant
A data type that stores values of various data types, except text, ntext, timestamp, and sql_variant

table
A special data type used to store a result set for later processing

timestamp
A database-wide unique number that gets updated every time a row gets updated

uniqueidentifier
A globally unique identifier

Bigint, sql_variant, and table are new to SQL Server 2000

User-defined data types

You can make user-defined data types too, which sometimes can be more descriptive of the value types held in the object. This may make it easier for the programmer to document and work with the data. These data types are based on the built in types, and can be outfitted with preprogrammed defaults, checks, constraints, etc. . To create a user-defined data type, use

sp_addtype datatypename, basedatatype, ‘NULL''/''NOT NULL''

How to choose the appropriate data type

SQL Server stores data in data pages that are 8Kb (8192 bytes) in size. The system uses some of that s Sometimes, the system uses only 8060 bytes are availableto that are available to store user''s data. Consider the size of a row of data in your tables. If the rows are large, make sure that multiples of the fit conveniently on a data page so that page space is not wasted. This is cut down on disk paging overhead when accessing the data. You want to maximize the number of rows of data which that will fit on a page. This can be accomplished both by splitting the tables, and by choosing the smallest data type which that will accommodate your data. .

In you are using integer data, data; consider that the tinyint datatype will accommodate data which that will fit into one byte of storage. So if the range of all of the data in your field (or variable) is between 0 and 255, use the tinyint datatype. If the range is between -32,768 and 32,767, use the smallint data type. And if If you need to store integer data from -2,147,483,648 through 2,147,483,647, use int data type.

Similarly with smallmoney. If smallmoney. if your value range is between -214748.3648 and 214,748.3647, use the smallmoney datatype.

Use smalldatetime data type instead of datetime data type, if you need to store the date and time data from January 1, 1900 through June 6, 2079, with accuracy to the minute.

Prefer varchar.nvarchar to text/ntext whenever possible because the text and image fields are stored separately, which produces additional paging. And prefer char/varchar to nchar/nvarchar data types because the n types require twice as much storage space. The n types are used primarily for unicode data.


About the Author

has posted a total of 1974 articles.


Comments On This Post

No comments on this post yet!


Do you have a thought relating to this post? You can post your comment here. If you have an unrelated question, you can use the Q&A section to ask it.

Or you can drop a note to the administrators if you're not sure where you should post.


Your IP address is:54.158.30.219

Before you can post, you need to prove you are human. If you log in, this test goes away.


Code Links