Skip to content

انواع داده PostgreSQL توضیح داده شده

هر نوع داده ستون رایج PostgreSQL، گروه‌بندی‌شده بر اساس خانواده: اعداد صحیح، اعشارها، متن، زمان، بولی و UUID، JSON، آدرس‌های شبکه، انواع ترکیبی و انواع افزونه‌ای. هر سطر نشان می‌دهد هر نوع چه چیزی ذخیره می‌کند و کِی باید آن را انتخاب کرد.

PostgreSQL ده‌ها نوع دارد، اما طراحی روزمره شِما از مجموعه‌ای هسته‌ای استفاده می‌کند. انتخاب‌های تکراری این‌ها هستند: integer یا numeric برای اعداد، varchar یا text برای رشته‌ها (text معمولاً کافی است)، timestamp یا timestamptz (برای هر چیز واقعی timestamptz را ترجیح دهید) و json یا jsonb (jsonb را ترجیح دهید؛ باینری است و قابل ایندکسگذاری). خاص‌ترین نوعی را برگزینید که هنوز جای می‌گیرد؛ پایگاه داده آن را به‌جای شما اعمال می‌کند.

جدول مرجع · 46 مورد
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 است.
JSON و نیمه‌ساختاریافته
JSON تجزیه‌شده به شکلی باینری و قابل ایندکسگذاری.داده‌های انعطاف‌پذیر یا تودرتو؛ ستون JSON توصیه‌شده (از ایندکس GIN پشتیبانی می‌کند).
JSON نگه‌داشته‌شده به‌صورت متن اصلی.نادر؛ فقط وقتی باید ترتیب کلیدها یا فاصله‌گذاری دقیق حفظ شود.
متن XML.یکپارچه‌سازی‌های قدیمی که XML می‌خواهند.
عبارت مسیر کامپایل‌شده برای پیمایش داده‌های JSON.پالایش داخل jsonb با jsonb_path_query و عملگرهای SQL/JSON.
شبکه و جستجو
آدرس میزبان IPv4 یا IPv6.ذخیره IP کاربر یا سرور.
بلوک شبکه IP، مانند 10.0.0.0/24.قواعد فایروال و بازه‌های زیرشبکه.
آدرس MAC شش‌بایتی یا هشت‌بایتی (EUI-64).شناسه‌های دستگاه و رابط شبکه.
متن پیش‌پردازش‌شده برای جستجوی تمام‌متن.جستجوی داخلی Postgres قبل از سراغ موتور جستجوی جداگانه.
عبارات جستجو ترکیب‌شده با عملگرهای AND، OR و پیشوند.نیمه پرس‌وجوی جستجوی تمام‌متن که با @@ با tsvector تطبیق داده می‌شود.
موقعیت در گزارش پیش‌نویس، شماره ترتیبی گزارش.پایش تأخیر همانندسازی و پشتیبان‌گیری.
ترکیبی و پیشرفته
آرایه‌ای از هر نوع پایه، مثلاً integer[].فهرست‌های مقادیر ساده؛ وقتی عناصر به ستون خودشان نیاز دارند سراغ جدول فرزند بروید.
یک مقدار از فهرست ثابتی که خودتان تعریف می‌کنید.فیلدهای وضعیت با مجموعه گزینه‌های پایدار.
نوع سطر سفارشی از چند فیلد.گروه‌های فیلد تکرارشونده که میان جدول‌ها مشترک‌اند.
بازه پیوسته میان دو حد.برنامه‌های زمانی، بازه‌های قیمتی و دامنه نسخه‌ها، با عملگرهای هم‌پوشانی.
نوع پایه پیچیده در قیدهایی که خودتان تعریف می‌کنید.قواعد قابل‌استفاده مجدد مانند ایمیل ناتهی، اعمال‌شده در هر ستونی که از آن استفاده می‌کند.
سطر بی‌نام از مقادیر دارای نوع.مقادیر بازگشتی توابع PL/pgSQL و نتایج میانی پرس‌وجو.
مقادیر هندسی دوبعدی داخلی.هندسه ساده صفحه؛ مکان‌های واقعی به PostGIS نیاز دارند.
شناسه شیء سیستمی 4 بایتی بدون علامت.اتصال کاتالوگ‌های سیستمی؛ برای ستون‌های برنامه نیست.
رشته شناسه داخلی 63 نویسه‌ای.پرس‌وجوهای کاتالوگ؛ برای هرچیز رو به کاربر، text معمولی.
انواع افزونه‌ای
جفت‌های کلید/مقدار رشته‌ای در یک مقدار واحد (افزونه).نگاشت‌های تخت؛ امروزه jsonb این نیاز را بهتر پوشش می‌دهد.
مسیر برچسب سلسله‌مراتبی مانند news.tech.ai (افزونه).درخت‌ها با پرس‌وجوهای والد و فرزند.
متنی که بدون توجه به بزرگی و کوچکی حروف مقایسه می‌شود (افزونه).یکتایی بی‌حساس به بزرگی حروف مانند ایمیل، بدون ایندکس lower().
اشیای جغرافیایی و هندسی از افزونه PostGIS.پرس‌وجوهای فاصله، شمول و ایندکس مکانی.
توابع افزونه که مقادیر UUID تولید می‌کنند.تولید قدیمی؛ از PG 13 به بعد gen_random_uuid() داخلی است.