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

Insert Row If Values Don T Already Exist Postgresl



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

תחביר

>> לְהַכנִיס לְתוֹךשם שולחן(עמודה 1,טור) ערכים ('ערך 1', 'ערך 2');

כאן, עמודה היא התכונות של הטבלה. מילת מפתח VALUE משמשת להזנת ערכים. 'ערך' הוא נתוני הטבלאות שיש להזין.







הכנסת פונקציות שורה במעטפת PostgreSQL (psql)

לאחר התקנה מוצלחת של postgresql, נזין את שם מסד הנתונים, מספר היציאה והסיסמה. Psql יתחיל. לאחר מכן נבצע שאילתות בהתאמה.





דוגמה 1: שימוש ב- INSERT להוספת רשומות חדשות לטבלאות
בעקבות התחביר ניצור את השאילתה הבאה. כדי להכניס שורה בטבלה, ניצור טבלה בשם לקוח. הטבלה המתאימה מכילה 3 עמודות. יש לציין את סוג הנתונים של עמודות מסוימות כדי להזין נתונים בעמודה זו ולמנוע יתירות. השאילתה ליצירת טבלה היא:





>> לִיצוֹר שולחןצרכן(תְעוּדַת זֶהוּתint,שֵׁם varchar (40), מדינהvarchar (40));

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



>> לְהַכנִיס לְתוֹךצרכן(תְעוּדַת זֶהוּת,שֵׁם, מדינה) ערכים ('1','עליה', 'פקיסטן');

לאחר כל הכנסה מוצלחת, הפלט יהיה 0 1, מה שאומר שמוסיפה שורה אחת בכל פעם. בשאילתה כפי שהוזכר קודם לכן, הכנסנו נתונים 4 פעמים. כדי לצפות בתוצאות, נשתמש בשאילתה הבאה:

>> בחר*מצרכן;

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

דוגמה 3: הכנס שורות מרובות בטבלה אחת המבוססת על מספרים בטבלה אחרת
דוגמה זו מתייחסת להכנסת נתונים מטבלה אחת לאחרת. שקול שני טבלאות, a ו- b. טבלה א 'כוללת 2 תכונות, כלומר שם ומחלקה. על ידי יישום שאילתת CREATE, נציג טבלה. לאחר יצירת הטבלה, הנתונים יוזנו באמצעות שאילתת הוספה.

>> לִיצוֹר שולחןל(שֵׁם varchar (30),מעמד varchar (40));
>> לְהַכנִיס לְתוֹךלערכים ('אמנה',1),('בהישמה', '2'),('לקט', '3'),('מטה',4');

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

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

>> לִיצוֹר שולחןב(כל שמות varchar(30), נושא varchar(70));

להביא את הרשומה על ידי תיאוריה נבחרת.

>> בחר*מב;

להוספת ערכי הטבלה ב בטבלה, נשתמש בשאילתה הבאה. שאילתה זו תפעל בצורה כזו שכל השמות בטבלה ב יוכנס בטבלה ל עם ספירת מספרים המציגים את מספר המופעים של מספר מסוים בעמודה המתאימה של הטבלה ב . ב. כל שמות מייצגים את פונקציית האובייקט לציון הטבלה. הפונקציה Count (b.allnames) פועלת לספירת התרחשות כוללת. מכיוון שכל שם מתרחש בבת אחת, העמודה המתקבלת תהיה בעלת מספר אחד.

>> לְהַכנִיס לְתוֹךל(שֵׁם,מעמד) בחרב. כל שמות, ספירה(ב. כל שמות) מבקְבוּצָה על ידיב. כל שמות;

דוגמה 4: הוסף נתונים בשורות אם אין
שאילתה זו משמשת להזנת שורות אם היא אינה קיימת. ראשית השאילתה שסופקה בודקת אם השורה כבר קיימת או לא. אם זה כבר קיים, הנתונים לא יתווספו. ואם אין נתונים בשורה, ההוספה החדשה תישמר. כאן tmp הוא משתנה זמני המשמש לאחסון נתונים למשך זמן מה.

>> לְהַכנִיס לְתוֹךב(שמות כולם, נושא) בחר*מ (בחר'קינזה'כפי שכל שמות, 'איסלאמיאט'כפי שנושא) כפי שtmpאיפה לֹא קיים ( בחרשמות כלמבאיפהשמות כל='סונדוס'לְהַגבִּיל 1);

דוגמה 5: העלאת PostgreSQL באמצעות הצהרת INSERT
לפונקציה זו שני סוגים:

  • עדכון: אם מתרחשת התנגשות, אם הרשומה תואמת את הנתונים הקיימים בטבלה, היא מתעדכנת בנתונים חדשים.
  • אם מתרחש עימות, אל תעשה דבר : אם רשומה תואמת את הנתונים הקיימים בטבלה, היא מדלגת על הרשומה, או אם נוצרת שגיאה, היא גם מתעלמת.

בתחילה, ניצור טבלה עם כמה נתונים לדוגמה.

>> לִיצוֹר שולחןtbl2(תְעוּדַת זֶהוּתINT יְסוֹדִי מַפְתֵחַ,שֵׁם אופי משתנה);

לאחר יצירת טבלה נוסיף נתונים ב- tbl2 באמצעות שאילתה:

>> לְהַכנִיס לְתוֹךtbl2ערכים (1,'אוזמה'),(2,'עבדול'),(3,'המנה'),(4,'פטימה'),(5,'שיזה'),(6,'javeria');

אם מתרחשת התנגשות, עדכן:

>>לְהַכנִיס לְתוֹךtbl2ערכים (8,'נסיעה') עַלסְתִירָה(תְעוּדַת זֶהוּת) לַעֲשׂוֹת עדכון מַעֲרֶכֶת שֵׁם=לא נכלל.שֵׁם;

בהתחלה, נזין נתונים באמצעות שאילתת ההתנגשות של מזהה 8 והשם Rida. אותה שאילתה תשמש בעקבות אותו מזהה; השם ישתנה. כעת תבחין כיצד ישתנו שמות באותו מזהה בטבלה.

>> לְהַכנִיס לְתוֹךtbl2ערכים (8,'עֲבוֹדָה') עַלסְתִירָה(תְעוּדַת זֶהוּת) לַעֲשׂוֹת עדכון מַעֲרֶכֶת שֵׁם =לא נכלל.שֵׁם;

גילינו שיש התנגשות במזהה 8, ולכן השורה שצוין מתעדכנת.

אם מתרחש עימות, אל תעשה דבר

>> לְהַכנִיס לְתוֹךtbl2ערכים (9,'הירה') עַלסְתִירָה(תְעוּדַת זֶהוּת) לַעֲשׂוֹת שום דבר;

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

>>לְהַכנִיס לְתוֹךtbl2ערכים (9,'הירה') עַלסְתִירָה(תְעוּדַת זֶהוּת) לַעֲשׂוֹת שום דבר;

על פי התמונה לעיל, תראה שלאחר ביצוע השאילתה INSERT 0 0 לא מראה שום נתונים.

סיכום

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