היי כולם,
אני עוסק בתחום ה-BI ועובד הרבה עם SQL ביום יום, לכן חשבתי לתרום לקהילה ולהסביר על CURD.
אז מה זה CURD ב-SQL?
Create (Insert)
Update
Read (Select)
Delete
אלה בעצם חלק מפקודות ממשפחת ה-DML - פוקודות אשר משמשות אותנו לניהול טבלאות.
להרחבה קראו פה
נניח שהקמנו אתר בשם FaceBack שהוא חיקוי די מוצלח של Facebook, ויצרנו עבורו טבלה אחת בשם users.
הטבלה מורכבת מ-3 עמודות / שדות המתארות באופן כללי מאד את המשתמשים -
- שדה username - מסוג VARCHAR (סוג varchar הוא בעצם כמו string/str מפייתון)
- שדה password - מסוג VARCHAR
- שדה 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 - הלינק נמצא פה