הסבר על CURD - פקודות לניהול טבלאות נתונים

תגיות:

היי כולם,

אני עוסק בתחום ה-BI ועובד הרבה עם SQL ביום יום, לכן חשבתי לתרום לקהילה ולהסביר על CURD.

אז מה זה CURD ב-SQL?
Create (Insert)
Update
Read (Select)
Delete

אלה בעצם חלק מפקודות ממשפחת ה-DML - פוקודות אשר משמשות אותנו לניהול טבלאות.
להרחבה קראו פה

נניח שהקמנו אתר בשם FaceBack שהוא חיקוי די מוצלח של Facebook, ויצרנו עבורו טבלה אחת בשם users.
הטבלה מורכבת מ-3 עמודות / שדות המתארות באופן כללי מאד את המשתמשים -

  1. שדה username - מסוג VARCHAR (סוג varchar הוא בעצם כמו string/str מפייתון)
  2. שדה password - מסוג VARCHAR
  3. שדה age - מסוג INTEGER

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

שם משתמש = Bob
סיסמה = sS123456@3
גיל = 28

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

איך נעשה זאת ב-SQL?
נריץ את שורת הקוד הבאה:

INSERT INTO users VALUES (‘Bob’, ‘sS123456@3’, 28);

שורת קוד זו תכניס את הערכים לטבלת user לפי סדר העמודות בטבלה. כלומר, הערך הראשון (Bob) יכנס לעמודת username, הערך השני (sS123456@3) יכנס לעמודת password והערך האחרון (28) יכנס לעמודת age.

  • חשוב לזכור ב-SQL ערך מסוג VARCHAR ילווה בצ’וקו אחד ( ’ ) מכל צד, לא ניתן עם צ’וקיים ( " ).

ניתן לבצע זאת גם בדרך הבאה -

INSERT INTO users (age, password, username) VALUES (28, ‘sS123456@3’, ‘Bob’);

בשורת קוד הזו הערך הראשון יכנס לעמודת age, הערך השני יכנס לעמודת password והערך האחרון לעמודת username

  • מומלץ להשתמש בדרך השניה - היא הרבה יותר ברורה לקריאה ומונעת טעויות של הכנסת נתונים לטבלה.

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

המשתמש Bob הזין -
סיסמה חדשה = Ss12345@2

איך נעדכן את הסיסמה החדשה בטבלת users?

UPDATE users SET password = ‘Ss12345@2’ WHERE username = ‘Bob’;

שימו לב!
אם לא נשתמש ב-WHERE בפוקדת UPDATE כלומר, נריץ את שורת הקוד הבאה:

UPDATE users SET password = ‘Ss12345@2’;

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

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

פקודת Delete:
פקודה זו מוחקת שורה בטבלה.
המשתמש הלבבי שלנו Bob החליט שהוא מעוניין למחוק את המשתמש שלו מהאתר שלנו FaceBack.
הוא פנה לצוות התמיכה שלנו באתר, וביקש למחוק את כל המידע עליו.

איך נבצע זאת ב-SQL?

DELETE FROM users WHERE username = ‘Bob’;

  • גם בשורת קוד זו כמו בפקודת UPDATE, אם לא נשתמש ב-WHERE נמחק את כל המשתמשים מטבלת users.
  • פקודת DELETE מוחקת שורות, ולא ערכים! אם נרצה לשנות / למחוק ערך נעשה זאת באמצעות פקודת UPDATE.
    דוגמה למחיקת ערך בעזרת UPDATE:
    לצורך הדוגמה נמחק את הגיל של המשתמש שלנו Bob.

UPDATE users SET age = NULL WHERE username = ‘Bob’;

  • ערך NULL דומה מאד לערך None בפייתון, כלומר ערך ריק.

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


תודות ל - @eyalmerav שהעלאה את הפוסט ל-GitHub - הלינק נמצא פה

27 לייקים

היה ברור מאוד תודה!:slight_smile:

לייק 1

שמור לך מקום בגן עדן!!

לייק 1

מדהים קצר וקולע!
תודה

לייק 1

מחברת יופיטר של פוסט זה:

תנו כוכבים אל תהיו קמצנים!! :slight_smile:

3 לייקים

איזה תותח!!! המון המון המון תודה!!! :heart_eyes:

לייק 1

תותח!
לא יודע אם אתה עוסק בהוראה אבל לגמרי יש לך את זה.
ההסבר גם ברור וגם כתוב בצורה שכיף לקרוא.

לייק 1

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

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

7 לייקים

תודה רבה!! אני מקווה להתחיל בקרוב את השבוע ואעזר בפוסט שלך ללא ספק :slight_smile:

2 לייקים

קח ישר את המחברת…
:slight_smile:

FaceBck עלה לאוויר!

6 לייקים

נראה מצוין! :slight_smile:

2 לייקים