انواع Data Type در SQL Server

Data Type در SQL Server

همانطور که در آموزش قبلی، آموزش ساخت Table دیدیم که برای ستون های جدول نیازمند مشخص کردن نوع آن هستیم

حالا در این آموزش قراره با انواع Data Type هایی که میتونیم در SQL Server استفاده کنیم آشنا شویم

و برای هرکدام از ستون های جدول دیتا تایپ صحیح به نسبت دیتایی که میخواهیم ذخیره کنیم داشته باشیم





همانطور که در تصویر بالا دسته بندی را مشاهده می کنید Datatype ها به 7 گروه تقسیم می شوند :

1 – Exact numeric   مقادیر عددی دقیق
2 – Approximate numeric مقادیر عددی تقریبی
3 – Date and time تاریخ و ساعت
4 – Character strings  رشته های کاراکتری
5 – Unicode character strings رشته های کاراکتری Unicode
6 – Binary strings  رشته های باینری
7 – Other data types  سایر انواع داده



1 – در گروه Exact numeric

Bigint

برای نگهداری اعداد صحیح بزرگ
یعنی از (9,223,372,036,854,775,808-)  تا (9,223,372,036,854,775,807)   
 8 بایت فضا را اشغال میکند و از (63^2-) شروع شده و تا 1-(63^2) ادامه دارد

Int

برای نگهداری اعداد صحیح از 31^2- (2,147,483,648-)  تا 1-(31^2) (2,147,483,647)
4 بایت را اشغال میکند

Smallint

برای نگهداری اعداد صحیح از 15^2- (32,768-)  تا 1-(15^2) (32,767)
2 بایت فضا اشغال می کند

Tinyint

اعداد صحیح از 0 تا 255 و 1 بایت فضا اشغال میکند

Bit

عدد صحیح 0 یا 1یا null را در خود نگه می دارد و 1 بایت فضا اشغال میکند

Decimal

اعداد صحیح و اعشاری با دقت بالا و بدون گرد شدن با امکان مشخص نمودن تعداد رقم اعشار .
از(38^10-) +1 تا (38^10) – 1

Money

نگهداری مقادیر پولی همانند دلار یورو ریال و … و محدود آن از
922,337,203,685,477.5808-
تا
922,337,203,685,477.5807
با فضای اشغالی 8 بایت و شامل 15 رقم صحیح و 4 رقم اعشار می شود

Smallmoney

نگهداری مقادیر پولی همانند دلار یورو ریال و … و محدود آن از
214,748.3648-
تا
214,748.3648
با فضای اشغالی 4 بایت و شامل 6 رقم صحیح و 4 رقم اعشار می شود.

2 – Approximate numeric

جهت ذخیره اعداد صحیح و اعشاری که نیاز به دقت بالا ندارند

  • float
    float [ (n) ]
    که n دقت و فضای اشغال شده را مشخص می نماید محدوده این نوع داده از
    1.79E+308-
    تا
    1.79E+308
    است و

فضای اشغال شده با توجه به مقدار n تغییر میکند.

 مقدار n می تواند عددی مابین ۱ تا ۵۳ باشد و مقدار ‍‍ default آن ۵۳ است .

  • real
    4 بایت فضا را اشغال میکیند و محدوده آن از
    3.40E + 38 –
    تا
    3.40E + 38
    می باشد.

3 – Date and Time

  • Date
    تاریخ میلادی با فضای اشغالی 3 بایت
  • datetime2
    تاریخ به همراه ساعت دقیق تا دقت 100 نانو ثانیه با توجه به دقت از 6 بایت تا 8 بایت
  • datetime
    تاریخ به همراه ساعت با دقت کمتر تا دقت هزارم ثانیه با فضای اشغالی 8 بایت
  • Datetimeoffset
    همانند datetime با لحاظ time zone و فضای 10 بایت بازای دقت 100 نانوثانیه
  • Smalldatetime
    تاریخ به همراه زمان دقت ان فقط تا ثانیه می باشد و 4 بایت فضا را اشغال میکند.
  • Time
    نگهداری ساعت بر اساس 24 ساعته و دقت ان تا 100 نانوثانیه می باشد فضای اشغالی 5 بایت با دقت پیشفرض 100 نانو ثانیه می باشد .

4 – Character Strings

نکته : Unicode یونیکد استاندار بین المللی است برای تبادل اطلاعات چند زبانه .

“یونیکد” به هر یک از حروف، کد ها یکتایی مستقل از محیط سیستم عامل و برنامه و زبان اختصاص می‌دهد.(کاملا مناسب برای فارسی)

  • Char
    Char[(n)]
    نگهداری رشته کاراکتری با طول ثابت n که از یونیکد پشتیبانی نمی کند. و n که معرف طول رشته است می تواند از 1 تا 8000 باشد .
    و فضای اشغالی جهت ذخیره نیز یک بایت بازای هر کاراکتر است . بنابراین در نهایت n بایت فضا اشغال خواهد شد. (تابع تنظیمات collation )
  • varchar
    varchar [ ( n | max ) ]
    رشته کاراکتری با طول متغیر که از یونیکد پشتیبانی نمی کند n طول رشته را مشخص میکند و می تواند مقداری از 1 تا 8000 را داشته باشد. MAX : تعیین میکند که ماکزیمم فضای اشغالی 2^31-1 بایت یعنی 2 گیگابایت باشد فضای اشغالی برای ذخیره این نوع داده عبارتست از طول واقعی رشته وارد شده بعلاوه 2 بایت.
  • TEXT
    ذخیره داده متنی غیر یونیکدی با ماکزیمم طول 2^31-1 . با توجه به این که در نسخه های آینده اس کیو ال سرور از این داده پشتیبانی نمی شود. لذا استفاده از آن برای طراحی دیتابیس های جدید توصیه نمی شود و شایسته است بجای آن از VARCHAR (MAX) استفاده شود .

5 – Unicode Character Strings

  • nchar
    nchar[(n)]
    نگهداری رشته یونیکدی با طول ثابت n که n می تواند مقداری از 1 تا 4000 رابه خود بگیرد. برای ذخیره اطلاعات یونیکدی برای هر کاراکتر احتیاج به 2 بایت فضا می باشد. بنابراین فضای اشغالی 2n خواهد بود.
  • nvarchar
    nvarchar [ ( n | max ) ]
    رشته کاراکتری یونیکدی با طول متغیر که n می تواند بین 1 تا 4000 باشد . max مشخص میکند که ماکزیمم فضای ذخیره داده 2^31-1 یعنی 2 گیگا بایت است. فضای اشغال شده توسط این نوع داده عبارتست از 2 برابر طول رشته بعلاوه 2 بایت

6 – Binary Strings

  • binary
    binary [ ( n ) ]
    دیتای باینری با طول ثابت n را درخود نگهداری میکند که n می تواند بین 1 تا 8000 باشد . فضای اشغال شده برابر با n بایت خواهد بود
  • varbinary
    varbinary [ ( n | max) ]
    دیتای باینری با طول متغیر که در آن n می تواند بین 1 تا 8000 باشد و max مشخص میکند که ماکزیمم فضای ذخیره 2^31-1 بایت خواهد بود . فضای اشغال شده توسط دیتا برابر است با طول واقعی دیتا بعلاوه 2 بایت
  • image
    دیتای باینری با طول متغیر را در خود نگهداری میکند که طول ان می تواند بین 0 تا 2^31-1 باشد.

نکته در صورت عدم قید شده n در هرکدام از انواع دیتای شامل آن مقدار پیشفرض 1 می باشد

نکته : انواع داده text و ntext و image در نسخه های ینده اس کیو ال سرور حذف خواهند شد لذا از استفاده از آنها خود داری نمایید و بجای آنها از انواع داده nvarchat(max) , varchar(max) و varbinary(max) استفاده نمایید .

7 – Other Data Types

  • Cursor
    اشاره به یک کرسر
  • hierarchyid
    معرفی یک موقعیت در یک ساختار سلسله مراتبی
  • sql_variant
    ذخیره اطلاعاتی با انواع نوع داده های اس کیو ال در این نوع داده
  • table
    نوع داده ایی که برای ذخیره نتیجه یک پروسه که دارای ساختار جدولی می باشد بکار میرود
  • Timestamp
    این نوع داده اعداد باینری منحصر به فردی را بطور اتوماتیک تولید می کند و برای حل مسئله کابران همزمان کاربرد دارد .
  • Uniqueidentifier
    یک GUID 16 بایتی ایجاد میکند
  • Xml
    نوع داده ایی که برای ذخیره داده های با فرمت xml کاربرد دارد
  • spatial types
    برای ذخیره داده های جغرافیایی و مختصات و اطلاعات gis ی کاربرد دارد .
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *