۱۴۰۴/۰۶/۲۸ Nebular

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

در SQL Server انواع داده‌ (Data Types) خیلی مهم هستن، چون تعیین می‌کنن داده‌ای که در ستون ذخیره میشه چه شکلی باشه، چقدر فضا بگیره و چه عملیات‌هایی روش قابل انجام باشه.


📌 دسته‌بندی کلی انواع داده‌ها در SQL Server

1️⃣ عددی (Numeric Data Types)

برای ذخیره مقادیر عددی.

  • int, bigint, smallint, tinyint → اعداد صحیح با سایزهای مختلف.
    • int پرکاربردترین هست (۴ بایت، بازه: -2,147,483,648 تا 2,147,483,647).
  • decimal(p,s) / numeric(p,s) → اعداد دقیق با تعداد رقم مشخص (مثلاً قیمت، پول).
  • float / real → اعداد تقریبی (برای محاسبات علمی، جایی که دقت کامل لازم نیست).
  • money / smallmoney → برای مقادیر مالی (ولی معمولاً به خاطر مشکلات دقت، توصیه میشه decimal استفاده بشه).

2️⃣ کاراکتری (Character/String Data Types)

برای متن و رشته‌ها.

  • char(n) → رشته ثابت طول (مثلاً char(10) همیشه ۱۰ کاراکتر ذخیره می‌کنه).
  • varchar(n) → رشته متغیر طول (برای متن‌های کوتاه مثل نام، ایمیل).
  • varchar(max) → برای متن‌های خیلی طولانی (تا 2GB).
  • nchar(n), nvarchar(n), nvarchar(max) → مشابه بالا ولی برای ذخیره متن‌های یونیکد (چندزبانه مثل فارسی، عربی، چینی).

3️⃣ تاریخ و زمان (Date and Time Data Types)

برای ذخیره تاریخ و ساعت.

  • date → فقط تاریخ (YYYY-MM-DD).
  • time → فقط زمان (HH:MM:SS).
  • datetime → تاریخ و زمان با دقت ثانیه.
  • smalldatetime → تاریخ و زمان با دقت دقیقه.
  • datetime2 → تاریخ و زمان با دقت بالاتر (توصیه میشه به‌جای datetime معمولی استفاده بشه).
  • datetimeoffset → تاریخ و زمان همراه با اختلاف منطقه زمانی (Time Zone).

4️⃣ باینری (Binary Data Types)

برای ذخیره داده‌های باینری مثل فایل‌ها، عکس‌ها.

  • binary(n) → داده باینری با طول ثابت.
  • varbinary(n) → داده باینری با طول متغیر.
  • varbinary(max) → برای فایل‌ها و داده‌های خیلی بزرگ (مثل تصاویر یا PDF).

5️⃣ دیگر انواع خاص

  • bit → فقط ۰ یا ۱ (Boolean).
  • uniqueidentifier → برای ذخیره GUID (شناسه یکتا جهانی).
  • xml → برای ذخیره داده‌های XML.
  • json → به صورت مستقیم نوع داده نداره، ولی میشه در nvarchar(max) ذخیره کرد و با توابع JSON کوئری زد.
  • sql_variant → می‌تونه مقادیر انواع مختلف رو ذخیره کنه (ولی کمتر استفاده میشه).
  • hierarchyid → برای ذخیره داده‌های سلسله‌مراتبی (مثل ساختار درختی سازمان).
  • geometry / geography → برای داده‌های مکانی و نقشه‌ها.

📌 جمع‌بندی کاربردها

  • اگر داده عددیه → int, decimal, float
  • اگر متنیه → varchar, nvarchar
  • اگر تاریخ و زمانه → datetime2, date
  • اگر فایل/باینریه → varbinary(max)
  • اگر کلید یکتا نیاز داری → uniqueidentifier
Accept Cookies
Accept Cookies
[your-shortcode]