PracticU

דוגמא מעשית ל-Insert

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › דוגמא מעשית ל-Insert
מילון מושגים:
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.

דוגמא מעשית ל-Insert
ההרצאה מדגימה איך מכניסים עובד חדש לטבלת Employees בדאטאבייס Northwind, החל מבדיקת המבנה של הטבלה ועד לפקודת INSERT תקינה.
השלבים העיקריים
1. בדיקת הנתונים הקיימים: SELECT * FROM Employees מציג את העמודות ואת תשעת העובדים בחברה.
2. בדיקת המבנה: מסתכלים בעיצוב הטבלה, או בטבלת המערכת sys.columns, ובודקים לכל עמודה את סוג הנתונים, האם מותר ערך ריק (NULL), האם יש ערך ברירת מחדל והאם העמודה היא Identity.
3. עמודות חובה: FirstName ו-LastName אינן מאפשרות ערך ריק, ולכן חייבים לספק להן ערך. EmployeeID הוא Identity, ולכן הדאטאבייס מייצר אותו.
4. INSERT מינימלי: INSERT INTO Employees (FirstName, LastName) VALUES (...) מכניס עובד בלי לציין את שאר העמודות.
5. ערכי ברירת מחדל: אם הוגדרה ברירת מחדל לשם הפרטי ולשם המשפחה, אפשר לכתוב VALUES (DEFAULT, DEFAULT), והערכים ייכנסו מהטבלה.
שימו לב
- עמודת Identity מנוהלת על ידי הדאטאבייס, ולכן לא נכתבת בפקודה הרגילה.
- כשחסר ערך לעמודה חובה, הדאטאבייס מחזיר הודעת שגיאה ברורה.
בסיום מכניסים עובד חדש לטבלה לפי המבנה שלה, גם כשחלק מהנתונים חסר.
השיעור הבא בקורס: Identity

פרקי ההרצאה: דוגמא מעשית ל-Insert

  1. 00:00

    תרחיש: עובד חדש שצריך להכניס למערכת

  2. 01:12

    נתונים שנדרשים לרישום העובד

  3. 01:48

    בחינת מבנה טבלת Employees

  4. 03:01

    מאפייני עמודה: סוג, NULL וברירת מחדל

  5. 05:41

    מטא-דאטה של עמודות מתוך sys.columns

  6. 07:54

    עמודות חובה ועמודות אופציונליות בטבלה

  7. 08:48

    חלון Column Properties בטבלה

  8. 09:59

    שדות חובה לשאילתת INSERT מינימלית

תמלול ההרצאה: דוגמא מעשית ל-Insert

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

  1. 00:19

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

  2. 00:44

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

  3. 01:04

    אנחנו נתמקד בדוגמה ב-insert new pro, הכנסה של שורה חדשה לתוך הטבלה. כן, אנחנו נמצאים בחברת Northwind, ברוכים הבאים לכולם. כרגע התקבל עובד חדש בחברה, מקבלים טלפון ממחלקת HR מעוניינים להכניס עבורו רישומה חדשה בתוך הטבלה, מעוניינים להקליד את פרטיו במערכת.

  4. 01:25

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

  5. 01:43

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

  6. 01:56

    בואו נסתכל על המידע הרשום בה. סלקט כוכבית from employees על מנת להתרשם קודם כל מתוך הטבלה מה יש בה, מהו המידע שהיא אוגרת בתוכו וכיצד הוא נראה פר עמודות, לוחץ אלף חמש, פותחים את ה-results ואנחנו מגלים שבגין כל עובד ועובד סך הכל יש לנו תשעה עובדים בחברה, אנחנו שומרים את מכלול

  7. 02:20

    הנתונים כפי שהוא מופיע כרגע לפנינו. כמובן אין לי כאן תיאור של המידע אותו אני רוצה, המטא-דאטה עבור first name, last name, טייטל וכו', אלא יש לי דאטה בעצמו.

  8. 02:35

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

  9. 03:01

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

  10. 03:14

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

  11. 03:24

    איזה ערכים אני מעוניין לקבל? האם ערכים מספריים? מכרוזיים? תאריכים? מהו ה-Max Length?

  12. 03:31

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

  13. 03:45

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

  14. 04:08

    חדשה בתוך הטבלה ואנחנו צריכים לספק יש לנו ערך דיפולטי העובד החדש הגיע אבל טרם סיפק לנו את כתובתו Address, City, Region, Postal Code, טרם יש לנו.

  15. 04:22

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

  16. 04:37

    אנחנו נבדוק זאת באמצעות שני המאפיינים הללו. האם העמודות הללו מוגדרות כ-NAL או NOT-NAL? האם יש בגינם, אף על פי שהם מוגדרות כנות-מן, האם יש בגינם default value, כלומר יש ערך defaultי שגם בהינתן והעובד טרם הצהיר על עיר מגוריו ועל ה-region שבו הוא גר, אנחנו עדיין, יש לנו ערך defaultי שבו

  17. 04:56

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

  18. 05:11

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

  19. 05:39

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

  20. 05:52

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

  21. 06:05

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

  22. 06:33

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

  23. 06:47

    את Object ID אנחנו יכולים לשלוח לפונקציה שנקראת Object Name, ומשמעותה, הווה לי Object ID, אני אביא לך Object Name, אני אביא לך את השם.

  24. 06:57

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

  25. 07:18

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

  26. 07:35

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

  27. 07:50

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

  28. 08:24

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

  29. 08:47

    עומדים על הטבלה, אני לוחץ על עמודה כאן מתנדב, שמול של העמודה נסמן אותה, ונפתח לי הפאנל הזה של column properties הנותן לי מידע עבור כל עמודה ועמודה בטבלה שאותה בחרתי, כרגע בגין העמודה הנבחרת last name.

  30. 09:05

    אנחנו יכולים לראות את כל מה שראינו בסיס column, האם זה Allows Now? מהו ה-Value? מהו ה-Length? האם יש Default Value, M-Default Value? אז בואו ניתן, כרגע לא.

  31. 09:15

    נוותר על ה-Default Value. נחזור לזה בהמשך. קוליז'ן, מהו הקוליז'ן של אותה עמודה? כלומר, איזה פונטים אני צריך להכניס כאן והאם זה Case Sensitive או Case In-Sensitive?

  32. 09:27

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

  33. 09:46

    מהו הדאטה טייפ, האם זה null או not null, מהו ה-default value ומהו ה-identity. אני מסתכל כאן על הטבלה ואנחנו מזהים, כפי שראינו, שישנם רק שלוש עמודות שהן מנדטוריות שאנחנו חייבים לספק אותן.

  34. 10:01

    אלו הן Employee ID, Last Name ו-First Name. אולם בעוד ש-Employee ID הוא Identity, דהיינו הוא מנוהל על ידי המערכת הזאת ואני לא צריך לתת את ה-FirstName ואת ה-LastName בכל שאילתת אינסרט שאותה אנחנו נצטרך לספק בתוך הטבלה, אנחנו נהיה חייבים לתת לה ערך ולכן כך תראה שאילתת האינסרט המינימלית שלנו.

  35. 10:24

    שאילתת האינסרט לטבלת employees חייבת להכיל FirstName ו-LastName כיוון שהם מצוינים כ-None-Null ואין להם default value שעדיין לא ציינו את זה.

  36. 10:35

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

  37. 10:41

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

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: פקודת Delete

ההרצאה הבאה: Identity

הרצאות קשורות מקורסים אחרים

  • דוגמא לקורות חיים של QA

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI