לדלג לתוכן

מה זה SQL ולמה כל מתכנת צריך להכיר אותה

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

אז מה זו בעצם SQL

SQL היא ראשי תיבות של Structured Query Language, שפת שאילתות מובנית. זו לא שפת תכנות "רגילה" כמו Python או JavaScript שבה כותבים לוגיקה שלב אחר שלב. SQL היא שפה תיאורית - אתם מתארים מה אתם רוצים לקבל, ומנוע מסד הנתונים מחליט איך להשיג את זה בפועל.

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

ארבע הפעולות שהופכות אתכם למסוכנים

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

-- קריאה - להביא נתונים
SELECT name, email FROM customers WHERE city = 'תל אביב';

-- יצירה - להוסיף שורה חדשה
INSERT INTO customers (name, email, city) VALUES ('דנה', 'dana@mail.com', 'חיפה');

-- עדכון - לשנות שורה קיימת
UPDATE customers SET city = 'ירושלים' WHERE id = 42;

-- מחיקה - להסיר שורה
DELETE FROM customers WHERE id = 42;

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

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

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

SELECT orders.id, orders.total
FROM orders
JOIN customers ON orders.customer_id = customers.id
WHERE customers.name = 'דנה';

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

למה זה נכון גם אם אתם לא "מפתחי בק-אנד"

הטעות הנפוצה היא לחשוב שרק מי שכותב שרתים צריך SQL. בפועל:

  • מפתחי פרונט-אנד שמבינים SQL כותבים בקשות API חכמות יותר ומבינים למה תשובה מסוימת איטית.
  • מדעני נתונים ואנליסטים משתמשים ב-SQL כמעט יום-יום כדי לשלוף נתונים לניתוח.
  • אפילו QA שבודקים מערכת נתקלים בצורך לבדוק ישירות מה קרה במסד הנתונים אחרי פעולה מסוימת.

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

מיתוס שכדאי לפוצץ - SQL היא לא רק לשליפה

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

איך באמת לומדים SQL עד שהיא נכנסת לדם

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

ואם אתם נתקעים באמצע שאילתה שלא רוצה לעבוד (וזה יקרה, לכולם), יש קהילה שיכולה לעזור.

הצטרפו לקהילה בדיסקורד