← דף הבית
📖 חומר לימודי
🏠 דף הבית 🎯 תרגול מקיף 📚 חומר לימוד ✏️ תרגולים 🧠 קוויז
📖 חומר לימודי מסודר

חומר לימודי — קורס SQL

הסברים מעמיקים על מסדי נתונים, מבנה Northwind ויסודות SQL

חלק 1
🗄️ מהו מסד נתונים?
כדי להבין מהו מסד נתונים, הכי קל לדמיין אותו כספרייה דיגיטלית ענקית ומתוחכמת. בעוד שקובץ אקסל הוא כמו דף נייר בודד, מסד נתונים הוא המבנה שמחזיק אלפי "מחברות", דואג שיהיו מסודרות, ומאפשר למצוא מידע בשבריר שנייה.
🏛️ מה זה מסד נתונים ומה הוא עושה?
הגדרה
מסד נתונים הוא אוסף מאורגן של מידע המאוחסן בצורה אלקטרונית. המערכת שמנהלת את המידע נקראת DBMS (Database Management System) — כמו MySQL, SQL Server או Oracle.
5 תפקידים עיקריים
1
אחסון כמויות אדירות — בניגוד לאקסל שמתחיל "להיתקל" במיליון שורות, מסד נתונים מנהל מיליארדי שורות בקלות.
2
שליפה מהירה — באמצעות SQL ניתן למצוא נתון ספציפי מתוך מיליונים תוך אלפיות השנייה.
3
אבטחה והרשאות — קביעת בדיוק מי יכול לראות, לערוך ולמחוק מידע.
4
Data Integrity — מניעת כפילויות וסתירות (למשל, שני לקוחות עם אותו ת.ז.).
5
עבודה במקביל — מאות משתמשים קוראים וכותבים בו-זמנית מבלי ש"הקובץ יינעל".
🏗️ ההיררכיה של מסד הנתונים
מהרמה הגבוהה לנמוכה
☁️
שרת (Server/Instance) — המחשב או הענן עליו רצה התוכנה.
🗄️
מסד נתונים (Database) — "המחסן" הראשי. למשל: "מערכת מכירות".
📁
סכמה (Schema) — חלוקה לוגית בתוך המחסן (כמו מחלקות בסופרמרקט: לקוחות, כספים...).
📋
טבלאות (Tables) — היחידות הבסיסיות שבהן המידע נשמר בפועל.
🔍
אובייקטים נוספים — Views (שאילתות שמורות), Procedures (תהליכי עבודה).
📋 מבנה הטבלה — הלב של מסד הנתונים
הסבר
הטבלה בנויה כרשת (Grid) — אבל בניגוד לאקסל, היא קשיחה: לכל עמודה יש תפקיד וסוג נתונים מוגדר מראש.
מרכיבתיאורדוגמה
עמודה (Column/Field) מגדירה את סוג הנתון. לכל עמודה יש שם וטיפוס (מספר, טקסט, תאריך) עמודת "שם לקוח" או "מחיר מוצר"
שורה (Row/Record) מייצגת מופע בודד של ישות. כל שורה היא "אובייקט" אחד מלא כל פרטי לקוח ספציפי
🔑 Primary Key עמודה שחייבת להיות ייחודית לכל שורה — "תעודת הזהות" של הרשומה CustomerID
🔗 Foreign Key עמודה שמקשרת למפתח ראשי בטבלה אחרת — יוצרת קשרים בין טבלאות CustomerID בטבלת Orders
דוגמה ויזואלית — טבלת Products
🔑 ProductID (PK) ProductName 🔗 CategoryID (FK) ListPrice
101Laptop13,500
102Mouse2150
103Keyboard2250
💡
הסבר על הדוגמה:
Primary Key: ProductID מבטיח שלא יהיו שני מוצרים עם אותו מספר
Foreign Key: CategoryID מקשר לטבלת Categories — שם כתוב שקטגוריה 1 = "מחשבים", 2 = "ציוד היקפי"
טיפוסים: ListPrice תמיד מספר, ProductName תמיד טקסט
🎯
לסיכום: מסד נתונים הוא המנוע שמאחורי כל אפליקציה ואתר שאתם מכירים. הוא אוחסן מידע בטבלאות מקושרות, ומאפשר לשלוף תובנות עסקיות מורכבות במהירות.
חלק 2
🏪 מבנה מסד הנתונים Northwind
Northwind הוא מסד נתונים קלאסי שמדמה חברת מסחר. הוא כולל 8 טבלאות מרכזיות המקושרות זו לזו. זהו מסד הנתונים שנשתמש בו לאורך כל הקורס.
🗂️ 8 הטבלאות של Northwind
📊 מבנה הטבלאות — Northwind
🏢 Customers
🔑 CustomerID
CompanyName
ContactTitle
Address
City
Region
PostalCode
📦 Orders
🔑 OrderID
🔗 CustomerID
🔗 EmployeeID
OrderDate
RequiredDate
ShippedDate
🔗 ShipVia
Freight
ShipCity
ShipCountry
📋 Order Details
🔑 OrderID
🔗 ProductID
UnitPrice
Quantity
Discount
🛒 Products
🔑 ProductID
ProductName
🔗 SupplierID
🔗 CategoryID
UnitPrice
UnitsInStock
Discontinued
👤 Employees
🔑 EmployeeID
LastName
FirstName
Title
BirthDate
Address
City
🏭 Suppliers
🔑 SupplierID
CompanyName
ContactTitle
Address
City
PostalCode
🏷️ Categories
🔑 CategoryID
CategoryName
Description
Picture
🚚 Shippers
🔑 ShipperID
🔗 CompanyName
Phone
🔗 הקשרים בין הטבלאות
מ-טבלהקשר דרךאל-טבלהמשמעות
OrdersCustomerIDCustomersכל הזמנה שייכת ללקוח
OrdersEmployeeIDEmployeesכל הזמנה טופלה ע"י עובד
OrdersShipViaShippersכל הזמנה נשלחה ע"י חברת שילוח
Order DetailsOrderIDOrdersפרטי כל הזמנה
Order DetailsProductIDProductsאיזה מוצר הוזמן
ProductsSupplierIDSuppliersמי מספק את המוצר
ProductsCategoryIDCategoriesלאיזו קטגוריה שייך המוצר
💡
טיפ: טבלת Orders היא הלב של Northwind — היא מקושרת ל-4 טבלאות אחרות. רוב שאילתות ה-JOIN שנכתוב יעברו דרכה.
🎯 שאילתה ראשונה על Northwind
SELECT בסיסי
לאחר שמחברים ל-Northwind, אפשר לשלוף נתונים:

USE Northwind;
SELECT * FROM customers LIMIT 5;

אם רואים 5 שורות של לקוחות — מסד הנתונים עובד מצוין! 🎉
חלק 3
🔑 מפתחות וקשרים
המפתחות הם הבסיס לקשרים בין טבלאות — הם מה שהופך אוסף טבלאות נפרדות למסד נתונים אמיתי.
🔑 Primary Key — מפתח ראשי
הגדרה וכללים
עמודה (או שילוב עמודות) שמזהה כל שורה באופן ייחודי לחלוטין.

3 כללים:
1. לא יכולים להיות שני ערכים זהים
2. לא יכול להיות NULL
3. לא משתנה לאורך זמן

דוגמה: CustomerID בטבלת customers — לכל לקוח מספר ייחודי שלו.
💡
Primary Key הוא "תעודת הזהות" של כל שורה בטבלה. בדיוק כמו שאי אפשר לשתי תעודות זהות לקיים את אותו מספר.
🔗 Foreign Key — מפתח זר
הגדרה
עמודה בטבלה אחת שמפנה ל-Primary Key בטבלה אחרת. יוצרת את הקשר בין הטבלאות.

דוגמה: CustomerID בטבלת orders מפנה ל-CustomerID בטבלת customers.

זה אומר: "לכל הזמנה יש לקוח מוגדר שניתן למצוא בטבלת הלקוחות."
⚠️
Referential Integrity: לא ניתן ליצור הזמנה עם CustomerID שלא קיים בטבלת הלקוחות. מסד הנתונים שומר על תקינות הקשרים.
📊 סוגי קשרים
סוג קשרהסברדוגמה ב-Northwind
1:N (One-to-Many) שורה אחת בטבלה א' מקושרת לרבות בטבלה ב' לקוח אחד → הרבה הזמנות
N:N (Many-to-Many) דורש טבלת ביניים — רבות לרבות הזמנה ↔ מוצרים (דרך Order Details)
1:1 (One-to-One) שורה אחת בטבלה א' = שורה אחת בטבלה ב' פחות נפוץ — למשל פרטי התקשרות נפרדים
🔄 איך זה קשור ל-JOIN?
הקשר הישיר
פקודת JOIN משתמשת בדיוק בקשרי המפתחות הראשיים והזרים כדי לחבר טבלאות:

JOIN orders ON customers.CustomerID = orders.CustomerID

כל JOIN שנכתוב מחבר טבלאות דרך העמודות שמגדירות את הקשר ביניהן.
🎯
הכלל: לפני כל JOIN, שאל את עצמך — דרך איזו עמודה הטבלאות מקושרות? התשובה היא בדרך כלל המפתח הראשי/זר.
חלק 4
📊 SQL לעומת Excel
שני כלים מצוינים — אבל לשימושים שונים. הבנת ההבדל תעזור לך לדעת מתי להשתמש בכל אחד.
⚡ השוואה מלאה
קריטריוןExcelSQL
כמות נתונים עד ~1M שורות מיליארדי שורות
מהירות איטי עם קבצים גדולים מהיר מאוד בכל גודל
שיתוף ונגישות קבצים שמסתובבים, גרסאות שונות מסד מרכזי אחד לכולם
אבטחת נתונים כל אחד יכול לערוך הרשאות מדויקות לכל משתמש
שגיאות אנוש קל להזין ערך שגוי מבנה קשיח מונע טעויות
עבודה במקביל קובץ נועל — רק אחד בכל פעם מאות משתמשים במקביל
גמישות ויזואלית גרפים וצבעים בקלות דורש כלי BI נפרד
נגישות למשתמש רגיל ממשק גרפי אינטואיטיבי דורש לימוד שפה
שליפה מדויקת טוען את כל הקובץ לזיכרון שולף רק מה שצריך
🎯 מתי להשתמש בכל אחד?
השתמש ב-Excel כשרוצים
✅ ניתוח חד-פעמי של קבצים קטנים (עד כמה מאות אלפי שורות)
✅ ויזואליזציה מהירה — גרפים, Pivot Tables
✅ עבודה עם נתונים שכבר יוצאו מהמסד
✅ שיתוף קל עם מנהלים שלא מכירים SQL
השתמש ב-SQL כשרוצים
✅ עבודה עם מיליוני שורות ומעלה
✅ שאילתות מורכבות שמחברות מספר טבלאות
✅ דוחות שמתרענן ים אוטומטית
✅ שמירת "האמת האחת" — נתונים נכונים ומרכזיים
✅ אוטומציה וביצוע תהליכים חוזרים
💡
בפועל: אנליסטים משתמשים ב-SQL לשלוף נתונים ממסד הנתונים — ואז מביאים אותם ל-Excel, Power BI, או Python לצורך ניתוח וויזואליזציה. השניים משלימים זה את זה!
📈 מסקנה — למה ללמוד SQL?
3 סיבות מרכזיות
1
שפה אוניברסלית — SQL עובדת עם MySQL, SQL Server, Oracle, PostgreSQL ועוד. לומדים פעם אחת — עובדים בכל מקום.
2
ביקוש בשוק — SQL היא אחת המיומנויות הנדרשות ביותר בכל תפקיד Data, BI, Analytics ו-Product.
3
עצמאות אנליטית — במקום לחכות ל-IT שיכין לך דוח, אתה שולף את הנתונים שאתה צריך בדיוק כשאתה צריך.