סוגי נתונים PostgreSQL: תו | מספריים | בינארי | בוליאני

PostgreSQL מציעה קבוצה עשירה של סוגי נתונים מקוריים למשתמשים. משתמשים יכולים להוסיף סוגים חדשים בעזרת הפקודה CREATE TYPE. זה גם הופך את השאילתות לפשוטות וקריאות יותר.

סוגי נתונים ב- PostgreSQL

PostgreSQL תומך בסוגי הנתונים הבאים:

  • סוגי טקסט
  • סוגים מספריים
  • תאריכים וזמנים
  • XML
  • JSON
  • בוליאני
  • ביסים
  • נתונים בינארי
  • רֶשֶׁת
  • מערכים
  • צור את סוג הנתונים שלך
  • בוליאני
  • זמני
  • UUID
  • מַעֲרָך
  • JSON
  • סוגי נתונים מיוחדים לאחסון כתובת רשת ונתונים גיאומטריים.

בואו ללמוד בפירוט סוגי נתונים של PostgreSQL

סוגי נתונים של תווים

PostgreSQL תומך בסוגי נתוני תווים לאחסון ערכי טקסט. PostgreSQL בונה סוגי נתוני תווים מאותם מבנים פנימיים. PostgreSQL מציעה שלושה סוגי נתוני תווים: CHAR (n), VARCHAR (n) ו- TEXT.

שֵׁםתיאור
varchar (n)מאפשר לך להכריז על אורך משתנה עם גבול
צ'ארם (n)מרופד באורך קבוע, ריק
טֶקסטשימוש יכול להשתמש בסוג נתונים זה כדי להכריז על משתנה באורך בלתי מוגבל

סוגי נתונים מספריים

PostgreSQL תומך בשני סוגים שונים של מספרים:

  • שלמים
  • מספרים עשרוניים
שֵׁםגודל החנותטווח
smallint2 בתים-32768 עד +32767
מספר שלם4 בתים-2147483648 עד +2147483647
bigint8 בתים-9223372036854775808 עד 9223372036854775807
נקודהמִשְׁתַנֶהאם הכרזת אותו כסוג נתונים עשרוני נע בין 131072 ספרות לפני הנקודה העשרונית ל- 16383 ספרות אחרי הנקודה העשרונית
מספרייםמִשְׁתַנֶהאם תצהיר על זה כמספר, תוכל לכלול מספר עד 131072 ספרות לפני הנקודה העשרונית עד 16383 ספרות אחרי הנקודה העשרונית.
אמיתי4 בתיםדיוק של 6 ספרות עשרוניות
לְהַכפִּיל8 בתיםדיוק של 15 ספרות עשרוניות

סוגי נתונים בינאריים

מחרוזת בינארית היא רצף של אוקטטים או בתים. סוגי הנתונים הבינאריים Postgres מתחלקים לשתי דרכים.

  • מחרוזות בינאריות מאפשרות אחסון סיכויים לערך אפס
  • בתים שאינם ניתנים להדפסה

מחרוזות תווים אינן מאפשרות אפס אוקטטים וגם אינן מאפשרות ערכי ורצפים אחרים שאינם חוקיים בהתאם לכללי הקידוד של מערך התווים של מסד הנתונים.

שֵׁםגודל אחסוןתיאור
בייט1 עד 4 בתים בתוספת גודל המחרוזת הבינאריתמחרוזת בינארית באורך משתנה

סוג כתובת רשת

יישומים רבים מאחסנים פרטי רשת כמו כתובת IP של משתמשים או

חיישנים. PostgreSQL כוללת שלושה סוגים מקוריים שעוזרים לך לייעל את נתוני הרשת.

שֵׁםגודלתיאור
סיידר7 או 19 ביירשתות IPV4 ו- IPv6
אינעט7 או 19 בתיםמארח ורשתות IPV4 ו- IPV5
macaddr6 בתיםכתובות MAC

לשימוש בסוגי כתובות רשת יש יתרונות הבאים

  1. חיסכון בשטח אחסון
  2. בדיקת שגיאות קלט
  3. פונקציות כמו חיפוש נתונים לפי רשת משנה

סוג חיפוש טקסט

PostgreSQL מספקת שני סוגי נתונים שנועדו לתמוך בחיפוש בטקסט מלא. חיפוש בטקסט מלא הוא חיפוש באוסף של מסמכים בשפה טבעית לחיפוש במסמכים המתאימים ביותר לשאילתה.

  • חיפוש טקסט של Tsvector סוגי משתנים PostgreSQL מייצגים מסמך בצורה המותאמת לחיפוש טקסט
  • חיפוש הטקסט מסוג סוג השאילתה מאחסן את מילות המפתח שצריך לחפש

סוגי נתונים תאריך/שעה

חותמת הזמן PostgreSQL מציעה דיוק מיקרו -שניות במקום דיוק שני. יתר על כן, יש לך גם אפשרות לאחסן עם אזור זמן או בלי. PostgreSQL תמיר את חותמת הזמן עם אזור הזמן ל- UTC בכניסה ותשמור אותה.

קלט תאריך ושעה מתקבל בפורמט שונה, כולל Postgres מסורתי, ISO 8601. תואם SQL וכו '.

PostgreSQL תומך בהזמנת יום / חודש / שנה. הפורמטים הנתמכים הם DMY, MDY, YMD

סוגי נתונים זמניים

שֵׁםגודלטווחפתרון הבעיה
חותמת זמן ללא אזור זמן8 בתים4713 לפני הספירה עד 294276 לספירה1 מיקרו שנייה/14 ספרות
חותמת זמן עם אזור זמן8 בתים4713 לפני הספירה עד 294276 לספירה1 מיקרו שנייה/14 ספרות
תַאֲרִיך4 בתים4713 לפני הספירה עד 294276 לספירהיום אחד
זמן ללא אזור זמן8 בתים00:00:00 עד 24:00:001 מיקרו שנייה/14 ספרות
זמן עם אזור זמן12 בתים00:00:00 + 1459 עד 24: 00: 00-14591 מיקרו שנייה/14 ספרות
הַפסָקָה12 בתים-178000000 עד 178000000 שנים1 מיקרו שנייה/14 ספרות

דוגמאות:

קֶלֶטתיאור
2025-09-07ISO 8601, 7 בספטמבר עם כל סגנון תאריך (פורמט מומלץ)
7 בספטמבר 20257 בספטמבר עם כל סגנון תאריך
9/7/20257 בספטמבר עם MDY, 9 ביולי עם DMY
9/7/257 בספטמבר 2025, עם MDY
2025 -7 בספטמבר7 בספטמבר עם כל סגנון תאריך
ספטמבר 7-20187 בספטמבר עם כל סגנון תאריך
7-ספטמבר -257 בספטמבר 2025, עם YMD
20250907ISO 8601,7 ספטמבר 20225 בכל מצב
2,025,250שנה ויום בשנה, במקרה זה, 7 בספטמבר, 2025
J25250דייט ג'וליאן

זמן/ זמן עם קלט אזור זמן

קֶלֶטתיאור
11: 19: 38.507 11:19:38 11:19 111938ISO 8601
11:19 בבוקראותו הדבר כמו 11:19
23:19אותו הדבר כמו 23:19
23: 19-3 23: 19-03: 00 231900-03ISO 8601, אותו הדבר כמו 23:19 EST
23:19 שעון החוף המזרחיאזור הזמן שצוין כ- EST, אותו דבר כמו 23:19 EST

סוג בוליאני

סוג נתונים בוליאני יכול להחזיק

  • נָכוֹן
  • שֶׁקֶר
  • ריק

ערכים.

אתה משתמש בא בול אוֹ בוליאני מילת מפתח להצהרת עמודה עם סוג הנתונים הבולאני.

כאשר אתה מוסיף ערכים לעמודה בוליאנית, Postgre ממיר ערכים כמו

  • כן
  • ו
  • 1
  • t
  • נָכוֹן

לתוך 1.

בעוד ערכים כמו

  • לא
  • נ
  • 0
  • ו
  • שֶׁקֶר

מומרים ל 0

בעת בחירת הנתונים, הערכים שוב מומרים בחזרה ל- yes, true, y וכו '.

סוגי נתונים גיאומטריים

סוגי נתונים גיאומטריים מייצגים אובייקטים מרחביים דו-ממדיים. הם עוזרים לבצע פעולות כמו סיבובים, קנה מידה, תרגום וכו '.

שֵׁםגודל אחסוןיִצוּגתיאור
נְקוּדָה16 בתיםהצבע על מטוס(x, y)
קַו32 בתיםשורה אינסופית((xl.yl). (x2.y2))
לסג32 בתיםקטע קו סופי((xl.yl). (x2.y2))
קופסא32 בתיםקופסה מלבנית((xl.yl). (x2.y2))
נָתִיב16n + 16n בתיםסגור ופתח את הנתיב((xl.yl), ...)
מְצוּלָע40 + 16n בתיםמְצוּלָע[(xl.yl) ....]
מעגל24 בתיםמעגל(נקודת מרכז ורדיוס)

סוגים מנויים

סוג הנתונים המפורסם של PostgreSQL שימושי לייצוג מידע המשתנה לעתים רחוקות כגון קוד מדינה או מזהה סניף. סוג הנתונים המצור מיוצג בטבלה עם מפתחות זרים כדי להבטיח את שלמות הנתונים.

דוגמא:

צבע השיער סטטי למדי במאגר נתונים דמוגרפי | _+_ |

סוג טווח

יישומים עסקיים רבים דורשים נתונים בטווחים. בדרך כלל, שתי עמודות (דוגמא: תאריך התחלה, תאריך סיום) מוגדרות להתמודדות עם טווחים. זה גם לא יעיל וגם קשה לתחזוקה.

Postgre בנתה סוגי טווחים כדלקמן

  • int4range - טווח תצוגה של מספר שלם
  • int8range - טווח תצוגות של bigint
  • מספר טווח - מציג את הטווח המספרי
  • tstrange - עוזר לך להציג חותמת זמן ללא אזור זמן
  • מוזר - מאפשר לך להציג חותמת זמן עם אזור זמן
  • טווח תאריכים - טווח תאריכים

סוג UUID

Universally Unique Identifies (UUID) הוא כמות של 128 סיביות שנוצרת על ידי אלגוריתם. מאוד לא סביר שאותו מזהה ייווצר על ידי אדם אחר בעולם באמצעות אותו אלגוריתם. לכן עבור המערכות המבוזרות, המזהים הללו הם בחירה אידיאלית מכיוון שהם מציעים ייחודיות בתוך מסד נתונים אחד. UUID נכתב כקבוצה של ספרות הקסדצימליות קטנות, כאשר קבוצות שונות מופרדות על ידי מקפים.

PostgreSQL כולל סוג נתונים מקורי של UUID הצורך 16 בתים של אחסון. UUID הוא סוג נתונים אידיאלי למפתחות ראשיים.

דוגמא:

CREATE TYPE hair_color AS ENUM ('brown','black','red','grey','blond')

Postgre גם מקבלת צורות חלופיות של תשומות UUID כמו כל רישיות, ללא מקפים, פלטות וכו '.

סוג XML

PostgreSQL מאפשר לך לאחסן נתוני XML בסוג נתונים, אך הם אינם אלא הרחבה לסוג נתוני טקסט. אבל היתרון הוא שהוא בודק ש- XML ​​הקלט מעוצב היטב.

דוגמא:

d5f28c97-b962-43be-9cf8-ca1632182e8e

סוג JSON

לאחסון נתוני JSON PostgreSQL מציעה 2 סוגי נתונים

  1. JSON
  2. JSONB
jsonJsonb
הרחבה פשוטה של ​​סוג נתוני טקסט עם אימות JSONייצוג בינארי של נתוני JSON
ההוספה מהירה אך אחזור הנתונים איטי יחסית.ההוספה איטית אך בחר (אחזור הנתונים מהיר)
חוסך נתונים מוכנים בדיוק כמו שהם כוללים מרחב לבן.תומך באינדקס. עשוי לייעל את המרחב הלבן כך שהאחזור יהיה מהיר יותר.
עיבוד מחדש על אחזור נתוניםאין צורך בעיבוד מחדש בשליפת נתונים

סוג הנתונים הנפוץ ביותר של JSON השתמש בנו jsonb אלא אם כן יש צורך מיוחד להשתמש בסוג הנתונים של JSON.

דוגמא:

XMLPARSE (DOCUMENT 'Data Type...')
 CREATE TABLE employee ( id integer NOT NULL, age integer NOT NULL, data jsonb ); 

סוגי פסאודו

PostgreSQL מכיל ערכים רבים למטרות מיוחדות הנקראות סוגי פסאודו. לא ניתן להשתמש בסוגי פסאודו כסוגי עמודות PostgreSQL. משתמשים בהם כדי להכריז או לתפקד טיעון או סוג החזרה.

כל אחד מסוגי הפסאודו הזמינים מועיל במצבים בהם מסמכי ההתנהגות של פונקציה אינם תואמים פשוט לקחת או להחזיר ערך מסוג נתונים ספציפי של SQL.

שֵׁםתיאור
כלהפונקציה מקבלת את כל סוגי נתוני הקלט.
מערךהפונקציה מקבלת כל סוג נתוני מערך.
כל אלמנטהפונקציה מקבלת כל סוג נתונים.
כל סיכוםהפונקציה מקבלת כל סוג נתוני enum.
Nonarrayהפונקציה מקבלת כל סוג נתונים שאינו מערך.
Cstringהפונקציה מקבלת או מחזירה מחרוזת C המסתיימת באפס.
פְּנִימִיהפונקציה הפנימית מקבלת או מחזירה סוג נתונים פנימי של השרת.
מטפל_שפההוא מוכרז להחזיר מטפל בשפות.
תקליטמצא פונקציה שמחזירה סוג שורה לא צוין.
הדקפונקציית ההדק משמשת להחזרת ההדק.

חשוב שהמשתמש המשתמש בפונקציה זו צריך לוודא שהפונקציה תתנהג בצורה בטוחה כאשר סוג פסאודו משמש כסוג ארגומנט.

שיטות מומלצות לשימוש בסוגי נתונים

  • השתמש בסוג נתוני 'טקסט' אלא אם ברצונך להגביל את הקלט
  • לעולם אל תשתמש ב'צ'אר '.
  • שלמים משתמשים ב- 'int'. השתמש ב- bigint רק כשיש לך מספרים ממש גדולים
  • השתמש ב'מספר 'כמעט תמיד
  • השתמש ב- float ב- PostgreSQL אם יש לך מקור נתונים של IEEE 754

סיכום

  • PostgreSQL מציעה קבוצה עשירה של סוגי נתונים מקוריים למשתמשים
  • PostgreSQL תומך בסוגי נתוני תווים לאחסון ערכי טקסט
  • PostgreSQL תומך בשני סוגים שונים של מספרים: 1. שלמים, 2. מספרים של נקודה צפה
  • מחרוזת בינארית היא רצף של בתים או אוקטטים
  • PostgreSQL כולל סוג כתובת רשת שיעזור לך לייעל את אחסון נתוני הרשת
  • חיפוש טקסט מבני הנתונים PostgreSQL נועדו לתמוך בחיפוש בטקסט מלא
  • תאריך/שעה סוגי נתונים PSQL מאפשרים מידע על תאריך ושעה בפורמטים שונים
  • סוגי שדות Boolean Postgres יכולים להכיל שלושה ערכים 1. נכון 2. לא נכון 3. בטל
  • סוגי נתונים גיאומטריים PostgreSQL מייצגים אובייקטים מרחביים דו-ממדיים
  • סוגי נתונים מנויים ב- PostgreSQL שימושיים לייצוג מידע המשתנה לעתים רחוקות כגון קוד מדינה או מזהה סניף
  • Universally Unique Identifies (UUID) הוא כמות של 128 סיביות שנוצרת על ידי אלגוריתם
  • PostgreSQL מכיל ערכים רבים למטרות מיוחדות הנקראות סוגי פסאודו
  • מומלץ להשתמש בסוג נתוני 'טקסט' אלא אם ברצונך להגביל את הקלט