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

در پایگاه‌های داده، انواع داده‌ها (Data Types) برای تعریف نوع اطلاعاتی که در ستون‌های جدول ذخیره می‌شوند استفاده می‌شوند. این انواع داده‌ها به سیستم کمک می‌کنند تا داده‌ها را به درستی ذخیره، بازیابی و پردازش کند. در ادامه برخی از رایج‌ترین انواع داده‌ها در پایگاه‌های داده آورده شده‌اند:

1. انواع داده‌های عددی (Numeric Data Types)

  • INT: برای ذخیره اعداد صحیح (مثلاً ۱، ۲، ۱۰۰).
  • BIGINT: برای اعداد صحیح بزرگ‌تر از محدوده INT.
  • SMALLINT: برای اعداد صحیح کوچک‌تر از محدوده INT.
  • TINYINT: برای اعداد صحیح بسیار کوچک (معمولاً بین ۰ تا ۲۵۵).
  • DECIMAL(p, s): برای اعداد اعشاری با دقت مشخص (p تعداد کل ارقام، s تعداد ارقام اعشار).
  • FLOAT: برای اعداد اعشاری با دقت تقریبی.
  • DOUBLE: برای اعداد اعشاری با دقت بالاتر از FLOAT.

2. انواع داده‌های متنی (String Data Types)

  • CHAR(n): برای ذخیره رشته‌های ثابت با طول مشخص (n).
  • VARCHAR(n): برای ذخیره رشته‌های متغیر با حداکثر طول مشخص (n).
  • TEXT: برای ذخیره متن‌های طولانی.
  • NCHAR(n): مشابه CHAR اما برای کاراکترهای Unicode.
  • NVARCHAR(n): مشابه VARCHAR اما برای کاراکترهای Unicode.

3. انواع داده‌های تاریخ و زمان (Date and Time Data Types)

  • DATE: برای ذخیره تاریخ (سال، ماه، روز).
  • TIME: برای ذخیره زمان (ساعت، دقیقه، ثانیه).
  • DATETIME: برای ذخیره تاریخ و زمان با هم.
  • TIMESTAMP: برای ذخیره زمان دقیق (معمولاً برای ثبت وقایع).
  • YEAR: برای ذخیره سال.

4. انواع داده‌های باینری (Binary Data Types)

  • BINARY(n): برای ذخیره داده‌های باینری با طول ثابت.
  • VARBINARY(n): برای ذخیره داده‌های باینری با طول متغیر.
  • BLOB: برای ذخیره داده‌های باینری بزرگ (مانند تصاویر، فایل‌ها).

5. انواع داده‌های منطقی (Boolean Data Types)

  • BOOLEAN: برای ذخیره مقادیر درست (True) یا نادرست (False).

6. انواع داده‌های خاص (Special Data Types)

  • JSON: برای ذخیره داده‌های ساختاریافته به فرمت JSON.
  • XML: برای ذخیره داده‌های ساختاریافته به فرمت XML.
  • ARRAY: برای ذخیره آرایه‌ها (در برخی پایگاه‌های داده مانند PostgreSQL).
  • ENUM: برای ذخیره مقادیر از یک لیست از پیش تعریف‌شده.

7. انواع داده‌های فضایی (Spatial Data Types)

  • GEOMETRY: برای ذخیره اشکال هندسی.
  • POINT: برای ذخیره نقاط در فضای دو بعدی.
  • LINESTRING: برای ذخیره خطوط.
  • POLYGON: برای ذخیره چندضلعی‌ها.

8. انواع داده‌های دیگر

  • UUID: برای ذخیره شناسه‌های منحصر به فرد جهانی.
  • MONEY: برای ذخیره مقادیر پولی.

نکات مهم:

  • هر سیستم مدیریت پایگاه داده (مانند MySQL, PostgreSQL, Oracle, SQL Server) ممکن است انواع داده‌های خاص خود را داشته باشد یا نام‌های متفاوتی برای انواع داده‌های مشابه استفاده کند.
  • انتخاب نوع داده مناسب برای هر ستون بسیار مهم است، زیرا بر عملکرد و دقت پایگاه داده تأثیر می‌گذارد.

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

توضیحات بیشتر راجع به نوع داده‌ها در پایگاه داده

در پایگاه‌های داده، هر نوع داده (Data Type) فضای ذخیره‌سازی مشخصی را اشغال می‌کند. انتخاب نوع داده مناسب نه تنها بر دقت و عملکرد پایگاه داده تأثیر می‌گذارد، بلکه بر میزان فضای ذخیره‌سازی مورد نیاز نیز تأثیر مستقیم دارد. در ادامه به تفصیل انواع داده‌ها و فضای ذخیره‌سازی هر کدام توضیح داده می‌شود:


۱. انواع داده‌های عددی (Numeric Data Types)

INT (Integer)

  • توضیح: برای ذخیره اعداد صحیح.
  • محدوده:
  • در سیستم‌های ۳۲ بیتی: از -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷.
  • در سیستم‌های ۶۴ بیتی: محدوده بزرگ‌تر.
  • فضای ذخیره‌سازی: ۴ بایت (۳۲ بیت).

BIGINT

  • توضیح: برای ذخیره اعداد صحیح بسیار بزرگ.
  • محدوده: از -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷.
  • فضای ذخیره‌سازی: ۸ بایت (۶۴ بیت).

SMALLINT

  • توضیح: برای ذخیره اعداد صحیح کوچک.
  • محدوده: از -۳۲,۷۶۸ تا ۳۲,۷۶۷.
  • فضای ذخیره‌سازی: ۲ بایت (۱۶ بیت).

TINYINT

  • توضیح: برای ذخیره اعداد صحیح بسیار کوچک.
  • محدوده: از ۰ تا ۲۵۵ (یا از -۱۲۸ تا ۱۲۷ در برخی سیستم‌ها).
  • فضای ذخیره‌سازی: ۱ بایت (۸ بیت).

DECIMAL(p, s)

  • توضیح: برای ذخیره اعداد اعشاری با دقت مشخص.
  • p: تعداد کل ارقام (precision).
  • s: تعداد ارقام اعشار (scale).
  • مثال: DECIMAL(5, 2) می‌تواند مقادیری مانند ۱۲۳.۴۵ را ذخیره کند.
  • فضای ذخیره‌سازی: بستگی به p دارد. معمولاً برای هر ۹ رقم، ۴ بایت استفاده می‌شود.

FLOAT

  • توضیح: برای ذخیره اعداد اعشاری با دقت تقریبی.
  • محدوده: بستگی به سیستم دارد.
  • فضای ذخیره‌سازی: ۴ بایت (۳۲ بیت) یا ۸ بایت (۶۴ بیت) بسته به دقت.

DOUBLE

  • توضیح: برای ذخیره اعداد اعشاری با دقت بالاتر از FLOAT.
  • فضای ذخیره‌سازی: ۸ بایت (۶۴ بیت).

۲. انواع داده‌های متنی (String Data Types)

CHAR(n)

  • توضیح: برای ذخیره رشته‌های ثابت با طول مشخص.
  • مثال: CHAR(10) همیشه ۱۰ بایت فضا اشغال می‌کند، حتی اگر داده کوتاه‌تر باشد.
  • فضای ذخیره‌سازی: n بایت (بسته به طول تعریف‌شده).

VARCHAR(n)

  • توضیح: برای ذخیره رشته‌های متغیر با حداکثر طول مشخص.
  • مثال: VARCHAR(100) می‌تواند تا ۱۰۰ کاراکتر ذخیره کند، اما فقط به اندازه طول داده واقعی فضا اشغال می‌کند.
  • فضای ذخیره‌سازی: طول واقعی داده + ۱ یا ۲ بایت برای ذخیره طول رشته.

TEXT

  • توضیح: برای ذخیره متن‌های طولانی.
  • فضای ذخیره‌سازی: بستگی به طول متن دارد. معمولاً تا ۲ گیگابایت.

NCHAR(n) و NVARCHAR(n)

  • توضیح: مشابه CHAR و VARCHAR، اما برای کاراکترهای Unicode (مانند UTF-8 یا UTF-16).
  • فضای ذخیره‌سازی: هر کاراکتر Unicode معمولاً ۲ یا ۴ بایت فضا اشغال می‌کند.

۳. انواع داده‌های تاریخ و زمان (Date and Time Data Types)

DATE

  • توضیح: برای ذخیره تاریخ (سال، ماه، روز).
  • فضای ذخیره‌سازی: ۳ بایت.

TIME

  • توضیح: برای ذخیره زمان (ساعت، دقیقه، ثانیه).
  • فضای ذخیره‌سازی: ۳ تا ۶ بایت (بسته به دقت).

DATETIME

  • توضیح: برای ذخیره تاریخ و زمان با هم.
  • فضای ذخیره‌سازی: ۸ بایت.

TIMESTAMP

  • توضیح: برای ذخیره زمان دقیق (معمولاً برای ثبت وقایع).
  • فضای ذخیره‌سازی: ۴ بایت.

YEAR

  • توضیح: برای ذخیره سال.
  • فضای ذخیره‌سازی: ۱ بایت.

۴. انواع داده‌های باینری (Binary Data Types)

BINARY(n)

  • توضیح: برای ذخیره داده‌های باینری با طول ثابت.
  • فضای ذخیره‌سازی: n بایت.

VARBINARY(n)

  • توضیح: برای ذخیره داده‌های باینری با طول متغیر.
  • فضای ذخیره‌سازی: طول واقعی داده + ۱ یا ۲ بایت.

BLOB

  • توضیح: برای ذخیره داده‌های باینری بزرگ (مانند تصاویر، فایل‌ها).
  • فضای ذخیره‌سازی: تا ۲ گیگابایت.

۵. انواع داده‌های منطقی (Boolean Data Types)

BOOLEAN

  • توضیح: برای ذخیره مقادیر درست (True) یا نادرست (False).
  • فضای ذخیره‌سازی: ۱ بایت.

۶. انواع داده‌های خاص (Special Data Types)

JSON

  • توضیح: برای ذخیره داده‌های ساختاریافته به فرمت JSON.
  • فضای ذخیره‌سازی: بستگی به طول داده دارد.

XML

  • توضیح: برای ذخیره داده‌های ساختاریافته به فرمت XML.
  • فضای ذخیره‌سازی: بستگی به طول داده دارد.

ARRAY

  • توضیح: برای ذخیره آرایه‌ها (در برخی پایگاه‌های داده مانند PostgreSQL).
  • فضای ذخیره‌سازی: بستگی به تعداد و نوع عناصر آرایه.

ENUM

  • توضیح: برای ذخیره مقادیر از یک لیست از پیش تعریف‌شده.
  • فضای ذخیره‌سازی: ۱ یا ۲ بایت (بسته به تعداد مقادیر).

۷. انواع داده‌های فضایی (Spatial Data Types)

GEOMETRY

  • توضیح: برای ذخیره اشکال هندسی.
  • فضای ذخیره‌سازی: بستگی به پیچیدگی شکل.

POINT

  • توضیح: برای ذخیره نقاط در فضای دو بعدی.
  • فضای ذخیره‌سازی: ۱۶ بایت.

LINESTRING

  • توضیح: برای ذخیره خطوط.
  • فضای ذخیره‌سازی: بستگی به تعداد نقاط.

POLYGON

  • توضیح: برای ذخیره چندضلعی‌ها.
  • فضای ذخیره‌سازی: بستگی به تعداد نقاط.

۸. انواع داده‌های دیگر

UUID

  • توضیح: برای ذخیره شناسه‌های منحصر به فرد جهانی.
  • فضای ذخیره‌سازی: ۱۶ بایت.

MONEY

  • توضیح: برای ذخیره مقادیر پولی.
  • فضای ذخیره‌سازی: ۸ بایت.

نکات نهایی:

  • بهینه‌سازی فضای ذخیره‌سازی: انتخاب نوع داده مناسب به کاهش فضای ذخیره‌سازی و بهبود عملکرد کمک می‌کند.
  • تفاوت بین سیستم‌ها: برخی انواع داده‌ها و فضای ذخیره‌سازی آن‌ها ممکن است بین سیستم‌های مدیریت پایگاه داده (مانند MySQL, PostgreSQL, Oracle) متفاوت باشد.
  • مستندات پایگاه داده: برای جزئیات دقیق‌تر، مستندات پایگاه داده مورد استفاده خود را بررسی کنید.

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.