هر نوع داده ستون رایج PostgreSQL، گروهبندیشده بر اساس خانواده: اعداد صحیح، اعشارها، متن، زمان، بولی و UUID، JSON، آدرسهای شبکه، انواع ترکیبی و انواع افزونهای. هر سطر نشان میدهد هر نوع چه چیزی ذخیره میکند و کِی باید آن را انتخاب کرد.
PostgreSQL دهها نوع دارد، اما طراحی روزمره شِما از مجموعهای هستهای استفاده میکند. انتخابهای تکراری اینها هستند: integer یا numeric برای اعداد، varchar یا text برای رشتهها (text معمولاً کافی است)، timestamp یا timestamptz (برای هر چیز واقعی timestamptz را ترجیح دهید) و json یا jsonb (jsonb را ترجیح دهید؛ باینری است و قابل ایندکسگذاری). خاصترین نوعی را برگزینید که هنوز جای میگیرد؛ پایگاه داده آن را بهجای شما اعمال میکند.
جدول مرجع · 46 مورد
انواع داده PostgreSQLExplained
46 of 46 rows
اعداد صحیح
عدد صحیح 2 بایتی از -32768 تا 32767.
نادر؛ فقط وقتی باید فضا ذخیره کنید.
عدد صحیح 4 بایتی، حدود مثبت/منفی 2 میلیارد.
ستون پیشفرض اعداد صحیح.
عدد صحیح 8 بایتی، حدود مثبت/منفی 9 کوینتیلیون.
شمارندههای بسیار بزرگ یا شناسههای خارجی.
عدد صحیح 4 بایتی با افزایش خودکار.
کلیدهای خودشمار قدیمی؛ از PG 10 به بعد، GENERATED AS IDENTITY جایگزین توصیهشده است.
گونههای 2 بایتی و 8 بایتی serial.
شمارهگذاری خودکار هماندازه با ستون smallint یا bigint.
عدد صحیحی که جدول برای شما تولید میکند (GENERATED ALWAYS AS IDENTITY).
serial مدرن؛ استاندارد SQL و در برابر درج دستی ایمنتر.
اعشاری و ممیز شناور
اعشارهای دقیق با دقت دلخواه.
پول و هر جایی که خطای گردکردن قابلقبول نیست.
عدد ممیز شناور تکدقت 4 بایتی.
مقادیر علمی تقریبی که دقت در آنها حیاتی نیست.
عدد ممیز شناور دودقت 8 بایتی.
مقادیر مکانی، آماری و ویژگیهای یادگیری ماشین.
مبلغ ارزی با تنظیمات محلی ثابت.
بهندرت؛ numeric با کد ارز در سمت برنامه قابلحملتر است.
متن
متن با طول ثابت، پرشده با فاصله.
کدهایی با عرض مشخص؛ بهندرت لازم میشود.
متن با طول متغیر و سقف اختیاری.
رشتههای محدود مانند نام کاربری یا ایمیل.
متن با طول متغیر و بدون محدودیت طول.
ستون رشته همهکاره؛ هیچ جریمه عملکردی نسبت به varchar ندارد.
زمان
تاریخ تقویمی بدون ساعت روز.
تاریخ تولد و مواعد مقرر.
ساعت روز، با یا بدون منطقه زمانی.
هشدارهای روزانه یا ساعات کاری فروشگاه.
تاریخ و ساعت بدون منطقه زمانی.
شِماهای قدیمی؛ برای کار جدید اجتناب کنید.
تاریخ و ساعت ذخیرهشده به UTC و نمایشدادهشده در منطقه زمانی کاربر.
گزینه پیشفرض برای هر لحظه واقعی؛ این را به timestamp ترجیح دهید.
بازه زمانی، مانند 2 روز یا 3 ساعت.
مدتها و محاسبات تاریخ.
بولی، UUID و بایتها
درست یا نادرست.
پرچمها و کلیدهای روشن/خاموش.
شناسه یکتای جهانی 128 بیتی.
شناسههای غیرمتوالی که امن است آشکار شوند (تولید در برنامه یا با gen_random_uuid).
بایتهای باینری خام.
بلابها، تصاویر و محمولههای نامشخص؛ برای فایلهای بزرگ ذخیرهسازی شیگرا بهتر است.
رشتههایی از بیتها با طول ثابت یا متغیر.
پرچمهای فشرده و فیلدهای پروتکل؛ یک مقدار تکی روشن/خاموش همچنان boolean است.