×

DataType ها در SQL Server

فصل پنجم :

DataType ها در SQL Server

در فصل قبل انواع DataType های SQL Server را به اجمال نام بردیم در این فصل بطور مفصل به تشریح انها می پردازیم

Datatype ها در اس کیو ال سرور به 7 گروه ذیل تقسیم می شوند :
  • 1. Exact numeric : مقادیر عددی دقیق
  • 2. Approximate numeric : مقادیر عددی تقریبی
  • 3. Date and time : تاریخ و ساعت
  • 4. Character strings : رشته های کاراکتری
  • 5. Unicode character strings : رشته های کاراکتری یونیکدی (مناسب برای فارسی)
  • 6. Binary strings : رشته های باینری
  • 7. Other data types : سایر انواع داده

1. Exact numeric که خود شامل انواع داده ذیل میشود :

  • Bigint
    اعداد صحیح را در خود نگه میدارد و بسیار بزرگ و حجیم است . 8 بایت فضا را اشغال میکند و از -2^63 شروع شده و تا (2^63)-1 ادامه دارد یعنی از
    (9,223,372,036,854,775,808-)
    تا
    (9,223,372,036,854,775,807)
  • Int
    اعداد صحیح از
    -2^31 (2,147,483,648-)
    تا
    2^31-1 (2,147,483,647)
    و 4 بایت را اشغال میکند
  • Smallint
    اعداد صحیح از
    -2^15 (32,768-)
    تا
    2^15-1 (32,767)
    و 2 بایت فضا را اشغال میکیند
  • Tinyint
    اعداد صحیح از 0 تا 255 و 1 بایت فضا اشغال میکند
  • Bit
    عدد صحیح 0 یا 1یا null را در خود نگه می دارد و 1 بایت فضا اشغال میکند
  • Decimal
    اعداد صحیح و اعشاری با دقت بالا و بدون گرد شدن با امکان مشخص نمودن تعداد رقم اعشار .
    از
    - 10^38 +1
    تا
    10^38 – 1

    تعریف ان بصورت :
    decimal [ (p[ ,s] )]
    p (precision)
    یا دقت که ماکزیمم تعداد ارغام را مشخص میکند(عدد کلا چند رقمیست) (قبل و بعد اعشار) . p می تواند مقداری از 1 تا 38 باشد. و مقدار پیشفرض آن 18 رقم است.
    s (scale)
    تعداد رقم اعشار بعد از ممیز و مقدار s می تواند مابین 0 تا p باشد با توجه به دقت یا همان precision مقدار فضای اشغال شده متغیر است

    Precision Storage bytes
    1 - 9 5
    10-19 9
    20-28 13
    29-38 17

    با توجه به دقت بالای این نوع داده در محاسبات کند تر از داده های دیگر است لذا در استفاده از آن باید نهایت دقت را نمود .

  • 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 آن ۵۳ است .
    nvalue Precision Storage bytes
    1-24 7 digits 4 bytes
    25-53 15 digits 8 bytes
  • 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

  • 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 باشد.

7. Other Data Types

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

مفاهیم و موضوعات این فصل عبارتند از :

  • DataType ها در SQL Server

vatantop
نظرات و سوالات درج سوال/ نظر