1. דף הבית
  2. קורסים אונליין
  3. קורס MySQL אונליין
  4. עבודה עם נתונים: יצירה, קריאה, עדכון, מחיקה

עבודה עם נתונים: יצירה, קריאה, עדכון, מחיקה

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

ניהול נתונים בסיסי ב-MySQL

אחד ההיבטים הבסיסיים ביותר בעבודה עם מסד נתונים הוא ניהול נתונים. ארבע הפעולות הבסיסיות לאינטראקציה עם נתונים במסדי נתונים יחסי הן: יצירה (Create), קריאה (Read), עדכון (Update) ומחיקה (Delete). פעולות אלו מכונות בראשי תיבות CRUD.

יצירת נתונים נעשית באמצעות יצירת טבלאות חדשות (שאילתת SQL מסוג CREATE) ובאמצעות הוספה של רשומות לטבלאות קיימות (שאילתת SQL מסוג INSERT).

קריאת נתונים, המוכרת יותר בשם אחזור נתונים, נעשית באמצעות שאילתת SQL מסוג SELECT.

עדכון נתונים נעשה באמצעות שאילתת SQL מסוג UPDATE.

מחיקת נתונים נעשית באמצעות שאילתת SQL מסוג DELETE.

נסקור להלן את אופן השימוש בשאילתות אלו.

הוספת נתונים - שאילתת CREATE ושאילתת INSERT

יצירת טבלאות חדשות נעשית באמצעות שאילתת SQL מסוג CREATE. הוספת רשומות חדשות לטבלאות קיימות, נעשה באמצעות שאילתת SQL מסוג INSERT.

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

תחביר שאילתת CREATE:

CREATE TABLE table_name (
    column1 datatype [constraints],
    column2 datatype [constraints],
    ...
);

אנו יוצרים טבלה בשם table_name. הטבלה כוללת את השדות column1, column2 וכן הלאה. לכל שדה אנו קובעים את הטיפוס datatype שלו, ויכולים לקבוע הגבלות constraints שונות.

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

תחביר שאילתת INSERT:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

הכנסת הרשומות נעשית לטבלה table_name. הפרמטרים column1, column2, ... מייצגים את השדות אליהם אנו מכניסים את הנתונים. הפרמטרים value1, value2, ... מייצגים את הערכים אותם אנו מכניסים לכל שדה ושדה בהתאמה. הערך value1 מוכנס לשדה column1, הערך value2 מוכנס לשדה column2 וכן הלאה.

דוגמה:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    age INT CHECK (age >= 18)
);

INSERT INTO users (name, email, age)
VALUES ('Samuel Davidson', 'samueld@example.com', 28);

בדוגמה זו, אנו יוצרים תחילה את הטבלה users שמייצגת טבלת משתמשים באתר, באמצעות שאילתת CREATE. הטבלה כוללת 4 שדות: שדה id (מזהה יחודי לכל משתמש) שהוא שדה מפתח ראשי (PRIMARY KEY) עם ערך הגדלה אוטומטי בכל הוספה (AUTO_INCREMENT) , שדה name (שם המשתמש) שהוא מטיפוס מחרוזת עד 100 תווים, שדה email (כתובת הדואר האלקטרוני של המשתמש) שהוא שדה יחודי בכל שורה (UNIQUE) מטיפוס מחרוזת עד 100 תווים ושדה age מטיפוס מספר עם בדיקה של ערך גדול או שווה ל-18. לאחר יצירת הטבלה, אנו מוסיפים שורה לטבלה שמייצגת משתמש חדש, וזאת באמצעות שאילתת INSERT. נשים לב שקבענו את הערכים לשדות name, email, age ואילו השדה id נקבע אוטומטית: הוא יקבל את הערך של שדה ה-id הגדול ביותר בטבלה ועוד 1.

 

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

דוגמה:

INSERT INTO users (name, email, age) 
VALUES 
    ('Bob Smith', 'bob@example.com', 35),
    ('Charlie Brown', 'charlie@example.com', 22),
    ('Diana Ross', 'diana@example.com', 30);

בדוגמה זו, הוספנו לטבלת המשתמשים 3 משתמשים חדשים. לכל משתמש קבענו את הערכים name, email, age הרלוונטיים אליו. ערכי ה-id נקבעים כמובן אוטומטית בסדר עולה.

אחזור נתונים - שאילתת SELECT

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

נסקור את התחביר הבסיסי של שאילתת SELECT להלן.

תחביר:

SELECT column1, column2, columnn3, ...
FROM table_name
WHERE condition;

האחזור יבוצע מהטבלה table_name. יאוחזרו רק הרשומות המקיימות את התנאי condition, כאשר לכל רשומה כזו יאוחזרו רק השדות column1, column2, column3 שבחרנו לאחזר.

החלק של ה-WHERE ניתן להשמטה. במקרה שהחלק הושמט, יאוחזרו רק השדות שבחרנו לאחזר מכל הרשומות בטבלה.

דוגמה:

SELECT name, email, phone, address FROM users;

בדוגמה זו, אנו מאחזרים את השדות name, email, phone, address מהטבלה users. השמטנו את החלק WHERE, ולכן, יאוחזרו השדות האלו מכל הרשומות בטבלה.

 

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

דוגמה:

SELECT * FROM users WHERE age > 21;

בדוגמה זו, אנו מאחזרים את הרשומות בטבלה שבהן ערך השדה age גדול ממש מ-21. לכל רשומה שאנו מאחזרים, מאוחזרים כל השדות.

 

יש לשים לב, כי שימוש בסימן * בחלק ה-SELECT אולי חוסך לנו כתיבה (של רשימת העמודות אותן אנו מבקשים לאחזר) ומקל במעט על הקריאות, אבל ברוב המקרים הוא אינו מומלץ מסיבות של מהירות. מוטב לקבוע מפורשות אלו שדות אנו מבקשים לאחזר ולא לאחזר את כלל השדות בטבלה, על מנת שביצוע השאילתה יהיה מהיר יותר. יתרה מכך, שאילתה שכולל את רשימת העמודות במפורש היא אולי מעט ארוכה יותר, אבל נוח יותר להבין ממנה באילו שדות אנו משתמשים לאחר מכן בסיום האחזור.

 

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

עדכון נתונים - שאילתת UPDATE

עדכון רשומות שנמצאות בטבלה נעשה באמצעות שאילתת SQL מסוג UPDATE.

תחביר:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

העדכון יבוצע לטבלה table_name. העדכון יבוצע רק עבור הרשומות (השורות בטבלה) המקיימות את התנאי condition. השדה column1 יעודכן בערך value1, השדה column2 יעודכן בערך value2 וכן הלאה.

החלק של ה-WHERE ניתן להשמטה. במקרה שהחלק הושמט, יעודכנו השדות בכל הרשומות בטבלה.

דוגמה:

UPDATE products
SET price = 97, discount_type = 'sale'
WHERE price = 100;

בדוגמה זו, אנו מעדכנים את הרשומות בטבלה products בהן ערך השדה price הוא 100. הערך של השדה price יעודכן ל-97, והערך של השדה discount_type יעודכן ל-sale. נשים לב שהשדה price (שמופיע גם בחלק של ה-SET וגם בחלק של ה-WHERE) הוא מטיפוס מספרי כלשהו ואילו השדה discount_type הוא מטיפוס מחרוזת (ולכן מקיפים את הערך sale בגרשיים).

 

בחלקים SET ו-WHERE ניתן להשתמש בנוסחאות המבוססות על ערכי שדות ברשומה.

דוגמה:

UPDATE products
SET price = price - 3
WHERE price > original_price + 10;

בדוגמה זו, אנו מעדכנים את הרשומות בטבלה products, בהן הערך של השדה price גדול ממש מהערך של השדה original_price ועוד 10. העדכון הוא הפחתה של 3 מערך השדה price.

מחיקת נתונים - שאילתת DELETE

מחיקה של רשומות ממסד הנתונים נעשית באמצעות שאילתת SQL מסוג DELETE.

תחביר:

DELETE FROM table_name WHERE condition;

בטבלה table_name ימחקו כל הרשומות המקיימות את התנאי condition.

החלק של ה-WHERE ניתן להשמטה. במקרה שהחלק הושמט, ימחקו כל הרשומות בטבלה.

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

דוגמה:

DELETE FROM products WHERE price > 5000;

בדוגמה זו, אנו מוחקים מהטבלה products את כל הרשומות בהן ערך השדה price גדול ממש מ-5000.

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