انواع داده ها در SQL Server
انواع داده ها در SQL Server
داده های متنی
نوع داده | توضیحات | فضا |
---|---|---|
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 - | 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) ثابت | 5-17 bytes |
numeric(p,s) | اعداد با مقیاس (scale) و دقت (precision) ثابت | 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) | 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 | نتیجه یک کوری را برای عملیاتهای بعدی ذخیره می کند. |