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 בייט.ערכים גיאו-מרחביים, סטטיסטיקה ופיצ'רים של ML.
סכום מטבע עם הגדרה אזורית (locale) קבועה.לעיתים רחוקות; 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 בת 6 או 8 בייט (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() מובנה.