انواع داده ها در SQL Server

9666 ٩:٣٦ ق.ظ

داده های متنی

نوع داده توضیحات فضا
char(n)

رشته ای با طول ثابت، حداکثر 8000 کاراکتر
مصرف فضای ابن نوع وابسته به تعداد کاراکترهای آن است هر کاراکتر یک بایت اشغال می کند

n می تواند عددی بین 1 تا 8000 باشد

توجه: اگر 5=n باشد و 2 کاراکتر وارد کنید، 3 کاراکتر باقی مانده با Space پر می شود

مزیت این نوع داده در جستجوی سریع آن است

n
varchar(n)

رشته ای با طول متغیر، حداکثر 8000 کاراکتر
از این نوع داده زمانی استفاده می کنیم که میزان فضایی که داده ها اشغال می کنند بسیار متغیر باشد 

توجه: اگر 5=n باشد و 2 کاراکتر وارد کنید، فقط به اندازه 2 کاراکتر فضا اشغال می شود (3 کاراکتر باقی مانده در نظر گرفته نمی شود)

مزیت این نوع داده در میزان فضای استفاده شده است

 
varchar(max)

رشته ای با طول متغیر، حداکثر 1,073,741,824 کاراکتر

به جای n در مورد قبلی می توان از عبارت max استفاده کرد تا حداکثر فضای امکان پذیر در دسترس باشد

 
text

رشته کاراکتر با طول متغیر، حداکثر 2GB داده متنی 

 

داده های متنی Unicode

نوع داده توضیحات فضا
nchar(n)

داده Unicode با طول ثابت، حداکثر 4,000 کاراکتر

میزان مصرف این نوع داده دو بایت به ازای هر کاراکتر است. بخاطر این موضوع، n باید بین یک تا چهار هزار تعیین شود

 
nvarchar(n)

داده Unicode با طول متغیر، حداکثر 4,000 کاراکتر 

 
nvarchar(max)

داده Unicode با طول متغیر، حداکثر 536,870,912 کاراکتر 

 
ntext

داده Unicode با طول متغیر، حداکثر 2GB داده متنی

 

داده های Binary

نوع داده توضیحات فضا
bit

0، 1 یا NULL 

 
binary(n)

داده باینری با طول ثابت حداکثر 8000 بایت

 
varbinary(n)

داده باینری با طول متغیر حداکثر 8000 بایت

 
varbinary(max)

داده باینری با طول متغیر حداکثر 2GB

 
image

داده باینری با طول متغیر حداکثر 2GB

 

داده های عددی

نوع داده توضیحات فضا
tinyint

اعداد صحیح بین 0 تا 255

1 byte
smallint

اعداد صحیح بین 32,767 تا 32,768-

2 bytes
int

اعداد صحیح بین 2,147,483,647 تا 2,147,483,648 -
معادل از منفی 231 تا 231 منهای یک است

4 bytes
bigint

اعداد صحیح بین 9,223,372,036,854,775,807 تا 9,223,372,036,854,775,808-

که معادل از منفی 263 تا 263 منهای یک است

8 bytes
decimal(p,s)

اعداد با مقیاس (scale) و دقت (precision) ثابت
از منفی 1038 بعلاوه یک تا 1038 منهای یک
پارامتر p ماکزیمم تعداد ارقام یک عدد را نشان می دهد (شامل هم ارقامی که سمت راست علامت اعشار می آیند و هم ارقامی که سمت چپ علامت اعشار می آیند) پارامتر p باید مقداری بین صفر تا 38 باشد. مقدار پیش فرض 18 می باشد.
پارامتر s ماکزیمم تعداد ارقامی که سمت راست علامت اعشار می آید را نشان می دهد. پارامتر s باید عددی بین صفر تا p باشد. مقدار پیش فرض عدد صفر است

5-17 bytes
numeric(p,s)

اعداد با مقیاس (scale) و دقت (precision) ثابت
از منفی 1038 بعلاوه یک تا 1038 منهای یک
پارامتر p ماکزیمم تعداد ارقام یک عدد را نشان می دهد (شامل هم ارقامی که سمت راست علامت اعشار می آیند و هم ارقامی که سمت چپ علامت اعشار می آیند) پارامتر p باید مقداری بین صفر تا 38 باشد. مقدار پیش فرض 18 می باشد.
پارامتر s ماکزیمم تعداد ارقامی که سمت راست علامت اعشار می آید را نشان می دهد. پارامتر s باید عددی بین صفر تا p باشد. مقدار پیش فرض عدد صفر است

5-17 bytes
smallmoney

داده های ارزی بین 214,748.3648- تا 214,748.3647 

4 bytes
money

داده های ارزی بین 922,337,203,685,477.5808- تا 922,337,203,685,477.5807

8 bytes
float(n)

برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده می‌شود (from -1.79E + 308 to 1.79E + 308)
پارامتر n نشان دهنده 4 byteی یا 8 byteی بودن فیلد است. اگر بین ا تا 24 باشد فیلد، 4 byteی است و اگر بین 25 تا 53 باشد فیلد، 8 byteی است. مقدار پیش فرض عدد 53 است. 

4 یا 8 bytes
real

 برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده می‌شود (from -3.40E + 38 to 3.40E + 38)

4 bytes

داده های تاریخ و زمان

این نوع فیلد‌ها برای نگهداری تاریخ میلادی و ساعت استفاده می‌شود و برای تاریخ شمسی کاربردی ندارد.

نوع داده توضیحات فضا
datetime

از تاریخ اول January سال 1753 تا سی ویکم December سال 9999 با دقت 3.33 میلی ثانیه 

8 bytes
datetime2

از تاریخ اول January سال 0001 (01/01/0001) تا سی ویکم December سال 9999 (31/12/9999)  با دقت 100 نانو ثانیه 

6-8 bytes
smalldatetime

از تاریخ  اول January سال 1900 تا ششم June سال 2079 با دقت یک دقیقه 

4 bytes
date

فقط تاریخ را ذخیره می کند. از تاریخ  اول January سال 0001 (01/01/0001) تا سی ویکم December سال 9999(31/12/9999) 

3 bytes
time

فقط زمان را ذخیره می کند با دقت 100 نانو ثانیه 

3-5 bytes
datetimeoffset

مشابه datetime2 می باشد به علاوه timeoffset را ذخیره می کند

8-10 bytes
timestamp

هر زمان سطری ایجاد یا تغییر داده می شود، یک عدد یکتا ذخیره می شود. داده timestamp وابسته به ساعت داخلی سیستم می باشد و با زمان واقعی مطابقت ندارد. هر جدولی ممکن است یک timestamp متفاوت داشته باشد.

به عبارت دیگر در این فیلد ۸ بایتی، تایم لحظه‌ای اجرای دستور نگهداری می‌شود و کاربرد آن کنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند کاربر است. البته در تعداد رکوردهای پایین به کار نمی‌آید و بیشتر زمانی مورد نیاز است که تعداد رکوردها خیلی زیاد باشد مثلاً ۱۰۰ میلیون رکورد!

 

انواع داده ای دیگر

نوع داده توضیحات
sql_variant

این نوع فیلد، به جز داده های text, ntext, timestamp برای نگهداری انواع داده های دیگر استفاده می‌شود و نوع آن با توجه به اولین مقداری که در آن قرار می‌گیرد تعیین خواهد شد. (حداکثر 8000 بایت) چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشاره‌گر ۱۶ بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری می‌شود. استفاده از این نوع فیلد، توصیه نمی‌گردد.

uniqueidentifier

این فیلد ۱۶ بایتی، به ما کدی Unique یا یکتا می‌دهد که به اصطلاح GUID می‌گویند. یکی از کاربردهای آن در Replication است. 

xml

داده هایی با فرمت XML را ذخیره می کند. (حداکثر 2GB)

این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده می‌شود و شامل انواع MetaData های مختلف است. این فیلد در SQL 2005 معرفی گردید. 

cursor

این فیلد مربوط به كنترل Cursor است و مرجع یک Cursor در آن ذخیره می شود

table

نتیجه یک کوری را برای عملیاتهای بعدی ذخیره می کند. 


از مجموع 93 رأی

فاقد نظر