קורס אינטראקטיבי
קורס SQL
למד SQL מאפס, באנגלית, עם Postgres אמיתי שפועל בדפדפן שלך.
01 · מודול 1 - בחירה בסיסית
היסודות: קריאת נתונים מטבלה וסינונם.
02 · מודול 2 - SELECT חזק יותר
הגבל, בטל שכפול, שנה שם וספור: הכלים שבהם אתה משתמש מדי יום.
- 2.1הגבלה עם LIMITהחזרת רק את N השורות הראשונות, למשל כדי לבנות לוחות הישגים.~6 min
- 2.2ערכים ייחודיים עם DISTINCTהסרת כפילויות מהתוצאה של SELECT.~6 min
- 2.3שינוי שם עם ASמתן שמות קריאים יותר לטורים ולביטויים בתוצאה.~6 min
- 2.4ספירה וסיכום: COUNT, AVG, MAXפונקציות מצטברות: קבלת מספר בודד משורות רבות.~8 min
03 · מודול 3 - הצטרפו וקבוצתו לפי
שילוב של טבלאות מרובות והפקת דוחות לפי קבוצה: הלב של כל שאילתה אמיתית.
- 3.1צירוף שני שולחנות: INNER JOINשילוב שורות מטבלאות שונות בעקבות מערכות היחסים ביניהן.~12 min
- 3.2שמירה על הכל בצד שמאל: LEFT JOINכולל שורות שאין להן התאמה בטבלה האחרת.~10 min
- 3.3קיבוץ עם GROUP BYחישוב אגרגט לכל קבוצה, למשל לכל מחלקה.~10 min
- 3.4קבוצות סינון: HAVINGשמירה רק על הקבוצות שמקיימות תנאי במצטבר.~8 min
04 · מודול 4 - SQL מעשי
הכלים שעושים את ההבדל בעבודה אמיתית: רשימות, טווחים, NULLs והיגיון מותנה.
- 4.1רשימות וטווחים: IN ו-BETWEENמסננים קומפקטיים עבור "אחד כזה" ו"בין A ל-B".~8 min
- 4.2טיפול ב-NULL: IS NULL ו-COALESCEזיהוי והתמודדות עם ערכים חסרים ללא הפתעות.~10 min
- 4.3היגיון מותנה: CASE WHENהפיכת ערכים לקטגוריות ישירות ב-SELECT.~10 min
- 4.4שאילתה בתוך אחר: שאילתות משנהשימוש בתוצאה של SELECT בתוך SELECT אחר.~12 min
05 · מודול 5 - חיבורים מתקדמים
ריבוי שולחנות JOIN, חיבורים עצמיים, OUTER, CROSS ופעולות סט: שילוב נתונים כמו מקצוען.
- 5.1מצטרפים בשלושה שולחנות או יותרמעבר בשרשרת של קשרים: הזמנות → לקוחות → מוצרים, בשאילתה אחת.~12 min
- 5.2Self-JOIN: שולחן עם עצמוהיררכיות ויחסים פנימיים: קריאת טבלה בעלת שני תפקידים (ילד והורה).~10 min
- 5.3חיבור חיצוני: מציאת ה"פערים"שימוש ב-LEFT/RIGHT/FULL OUTER JOIN כדי למצוא שורות ללא התאמה.~10 min
- 5.4UNION, INTERSECT, EXCEPT (ו-CROSS JOIN)שילוב תוצאות כקבוצות: איחוד, צומת, הבדל ותוצר קרטזי.~12 min
06 · מודול 6 - פונקציות מובנות
הפוך ותעשה מניפולציה של נתונים עם פונקציות מקוריות של PostgreSQL: מחרוזות, תאריכים, מספרים, המרות סוגים.
- 6.1פונקציות מחרוזותLOWER, UPPER, LENGTH, שרשור, SUBSTRING, TRIM, REPLACE, LIKE ו-ILIKE.~12 min
- 6.2פונקציות תאריך וחותמת זמןEXTRACT, DATE_TRUNC, מרווחים והפרשי תאריכים.~12 min
- 6.3פונקציות מספריותROUND, CEIL, FLOOR, ABS, MOD ומספר שלם לעומת חלוקה עשרונית.~10 min
- 6.4המרות CAST וסוגהמרה בין סוגים עם `::type` ו-`CAST(... AS ...)`.~10 min
07 · מודול 7 - ניתוח מתקדם
שאילתות מרובות שלבים (CTE), דירוגים וסיכומים רצים (פונקציות חלון), היררכיות בלתי מוגבלות (WITH RECURSIVE).
- 7.1CTE: שאילתות מרובות שלבים עם WITHפיצול שאילתה מורכבת לשלבים בעלי שם לקריאה ושימוש חוזר.~12 min
- 7.2פונקציות חלון: דירוגים וחישובים לקבוצהROW_NUMBER, RANK, DENSE_RANK עם OVER(PARTITION BY …) לדירוג בקבוצה.~14 min
- 7.3LAG, LEAD וסיכומים שוטפיםהשוואת כל שורה לקודמת/הבאה וחישוב סכומים מצטברים.~12 min
- 7.4CTEs רקורסיביים: היררכיות עומק שרירותיותWITH RECURSIVE למעבר היררכיות כמו קטגוריות.~14 min
08 · מודול 8 - כתיבה ושינוי נתונים
INSERT, UPDATE, DELETE, CREATE TABLE עם אילוצים, טרנזקציות: סגירת לולאה עם כתיבה.
- 8.1הוספת נתונים: INSERTINSERT INSERT, RETURNING, פסקת RETURNING בודדת ומרובת שורות, בחירה מפורשת של עמודות.~10 min
- 8.2עדכון ומחיקה: עדכן ומחקשינויים סלקטיביים עם WHERE, ולמה WHERE נשכח הוא אסון.~10 min
- 8.3יצירת טבלאות ואילוצים: DDLצור טבלה עם מפתח PRIMARY, NOT NULL, UNIQUE, FOREIGN KEY, CHECK ו-Default.~12 min
- 8.4עסקאות: הכל או כלוםהתחל, התחייב, חזור: הפיכת קבוצת פעולות לאטומית.~10 min
09 · מודול 9 - מבני נתונים ו-DDL
יצירה ושינוי של טבלאות, אילוצים מתקדמים, סוגים מורכבים ותצוגות.
- 9.1סוגי נתונים מתקדמים ומספרי ENUMסוגים מספריים, TEXT לעומת VARCHAR, BOOLEAN, UUID וסוגי ENUM מותאמים אישית.~10 min
- 9.2אילוצים מרובים וברמת הטבלהשילוב של אילוצי UNIQUE ו-PRIMARY KEY, CHECK ומפתחות זרים מתקדמים (ON DELETE CASCADE).~12 min
- 9.3שינוי המבנה: ALTER TABLEהוספה, שינוי והסרה של עמודות או אילוצים מטבלאות קיימות.~10 min
- 9.4צפיות והפשטת נתוניםיצירת תצוגות כדי לפשט שאילתות מורכבות ותצוגות מפורטות לביצועים.~12 min
10 · אופטימיזציה ואינדקסים
האומנות של ביצוע שאילתות מהיר: אינדקסים, תוכניות ביצוע ואופטימיזציה של מסדי נתונים.
- 10.1אינדקסים ועצי Bצור אינדקסים כדי להאיץ באופן דרמטי שאילתות חיפוש בטבלאות גדולות.~15 min
- 10.2הסבירו ונתחולמד לקרוא את תוכניות הביצוע של מסד הנתונים לאבחון צווארי בקבוק.~15 min
- 10.3אינדקסים מורכבים וחלקייםהשתמש באינדקסים על מספר עמודות בו-זמנית או רק על נתח מסוים של הנתונים.~12 min
- 10.4בעיית N+1בעיית הביצועים הידועה לשמצה של ORM ושיטות SQL המקוריות להתגבר עליה בשאילתה אחת.~12 min
11 · עסקאות ומקיפות
נהל בצורה בטוחה שינויים בנתונים במקביל: עסקאות ACID, מנעולים ורמות בידוד.
- 11.1עסקאות ACID (BEGIN/COMMIT)שמור על נתונים עקביים עם BEGIN, COMMIT ו-ROLLBACK, קיבוץ שאילתות לבלוק אחד בלתי נראה לאחרים.~15 min
- 11.2תנאי המירוץתרחישי קצה: מה קורה כאשר שני עובדי מסד נתונים מקבילים פועלים על אותה עגלת משתמשים.~10 min
- 11.3נעילה ובחר לעדכוןנעל שורות באופן פעיל במהלך קריאה, ומאלץ שרשורים אחרים המשתנים להמתין לתורם.~15 min
- 11.4רמות בידודדחוף לגבולות על ידי הטמעת Serializable, או ירד ל-Read Committed לביצועים לא בטוחים אך מהירים.~12 min
12 · פונקציות וטריגרים
הפוך את ההיגיון העסקי לאוטומטי בתוך מסד הנתונים: כתוב פונקציות לשימוש חוזר והגיב לאירועים עם טריגרים.
- 12.1UDFs ו-SQL בסיסיצור פונקציות בהגדרת משתמש משלך כדי לכלול חישובים מורכבים ועשה בהם שימוש חוזר כמו פקודות מאקרו בכל שאילתה.~15 min
- 12.2לוגיקה מתקדמת עם PL/pgSQLתן לפונקציות שלך כוחות-על: משתנים, ענפי if-else ולולאות בסגנון פרוצדורלי טהור בתוך מסד הנתונים.~15 min
- 12.3מבוא לטריגריםהגדר פונקציות מיוחדות שיכולות לבדוק באופן מיידי את הרשומה יוצאת (ישן) או נכנסת (חדשה).~15 min
- 12.4טריגרים וביקורת מעשייםהפוך את הבטיחות לאוטומטי: עדכן אוטומטית את תאריך "עדכן_ב" ואחסן בארכיון שורות שנמחקו באופן קסום לצורך תאימות.~12 min
13 · פונקציות חלון
ניתוח נתונים מתקדם ללא כיווץ שורות: גלה OVER(), PARTITION BY ופונקציות אנליטיות.
- 13.1מבוא וסעיף OVERהפעל חישובים מצטברים (כמו SUM או AVG) תוך שמירה על השורות הבודדות המקוריות.~15 min
- 13.2קיבוץ עם PARTITION BYצור קבוצות לוגיות (חלונות) בתוך הנתונים שעליהם להחיל פונקציות, מבלי להשתמש ב-GROUP BY.~15 min
- 13.3דירוגים: ROW_NUMBER, RANK ו-DENSE_RANKהקצה מספרי שורות ודירוגים עוקבים לתוצאות, טיפול נכון בקשרים.~15 min
- 13.4משמרות: LAG ו-LEADגש לערכים מהשורה הקודמת או הבאה ישירות מהשורה הנוכחית כדי לחשב דלתות ווריאציות.~12 min
14 · CTEs ושאילתות היררכיות (WITH)
פשט שאילתות ענק עם ביטויי טבלה נפוצים וניווט בעצי נתונים ללא גבולות עם CTEs רקורסיביים.
- 14.1מבוא ל-CTEs (WITH)החלף שאילתות משנה מקוננות בלתי קריאות בפורמט פרוצדורלי נקי על ידי הכרזת "טבלאות וירטואליות" זמניות.~12 min
- 14.2CTE מרובים ומשורשריםאילף את המורכבות על ידי פירוק העיבוד למספר שלבים עוקבים בתוך הצהרת WITH אחת.~15 min
- 14.3CTEs רקורסיביים: נתונים בצורת עץנווט ללא מגבלות בהיררכיות מנהלים וקטגוריות הורה-ילד על ידי קריאה ל-CTE מעצמה.~18 min
15 · PostgreSQL JSON ו-NoSQL
נצל כוח יחסי מעורב עם תמיכה גמישה במסמכים באמצעות JSON ו-JSONB ללא שימוש במסדי נתונים חיצוניים.