PracticU

לולאות While - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › לולאות While - חלק 1
מילון מושגים:
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
בוליאני - סוג נתונים שיכול לקבל אחד משני ערכים בלבד: אמת (true) או שקר (false).
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
אופרטור - סימן בקוד שמבצע פעולה על ערכים, כמו חיבור, השוואה או פעולה לוגית.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.

לולאות While - חלק 1
השיעור מציג את לולאת WHILE ב-T-SQL: חזרה על קטע קוד כל עוד תנאי בוליאני מתקיים. בשיעור שתי דוגמאות, מהפשוטה למורכבת יותר.
השלבים העיקריים
1. מבנה הלולאה: הקוד בין BEGIN ל-END מתבצע שוב ושוב, כל עוד התנאי אחרי WHILE מחזיר true.
2. דוגמה ראשונה: משתנה מונה מאותחל ל-0, ומודפסים כל המספרים עד 10. בסוף כל איטרציה המונה מוקדם ב-1, אחרת הלולאה לא תסתיים.
3. דוגמה שנייה: מדפיסים את כל המספרים הדו-ספרתיים, מ-10 עד 99, שאינם מתחלקים לא ב-3 ולא ב-7. הבדיקה נעשית בעזרת אופרטור המודולו (%) ותנאי IF.
4. צבירה במקום הדפסה: במקום להדפיס בכל איטרציה, המספרים נצברים למחרוזת אחת שמוצגת בסוף.
5. שרשור ומספרים: כשמחברים משתנה מספרי למחרוזת עם +, מתקבל חיבור אריתמטי או שגיאת המרה. יש להמיר את המספר ל-VARCHAR לפני השרשור.
6. סכום: משתנה נוסף צובר את המספרים עם +=. סכום המספרים שעונים על התנאי בדוגמה הוא 2,722.
שימו לב
משתנה חייב להיות מוגדר ומאותחל לפני שימוש, אחרת לא ניתן להתייחס אליו.
בסיום תוכלו לכתוב לולאת WHILE עם מונה, תנאי ומצב יציאה.
השיעור הבא בקורס: לולאות While - חלק 2

פרקי ההרצאה: לולאות While - חלק 1

  1. 00:00

    מבוא ללולאת WHILE

  2. 00:58

    לולאה פשוטה שמדפיסה מספרים מ-0 עד 10

  3. 01:52

    קידום המונה למניעת לולאה אינסופית

  4. 02:46

    תרגיל: מספרים דו-ספרתיים שאינם מתחלקים ב-3 וב-7

  5. 04:02

    תנאי IF עם אופרטור MOD

  6. 05:14

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

  7. 06:51

    משתנה שלא אותחל: שגיאה ב-T-SQL

תמלול ההרצאה: לולאות While - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «לולאות While - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:22

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

  2. 00:35

    כל עוד התנאי הבוליאני מתקיים ותשובתו היא "תוהו", כל שורות הקוד אשר נמצאות תחת הוייל בעטופות ב-Begin ו-End אלו שורות אשר התבצעו בפועל.

  3. 00:50

    אז בואו, אנחנו בשיעור הקרוב נראה שתי דוגמאות. נתחיל בגדולה מאוד מאוד פשוטה וטריוויאלית ומשם נצמח לגדולה שמורכבת יותר שתוסיף לנו נופך נוסף ללולאת y אז הנושא שלנו y ואנחנו כבר מרצים להגדיר את התוכנית הראשונה שלנו בתוכנית הזאת אנחנו רוצים להגדיר ראשית counter מונה ומונה מטבעו יהיה אינטג'רי מספר שלם המונה עצמו אנחנו רוצים להתחיל אותו

  4. 01:16

    באפס ולרוץ עליו כל עוד הוא קטן שווה לעשר ולהדפיס את כל טווח המספרים בין 0 ל-10 בואו נבצע לו השמה counter שווה ל-0 כל עוד while counter קטן שווה ל-10 זהו יהיה הקנאי הווליאני שלנו כל עוד הcounter קטן מ-10 מה אנחנו נבצע נבצע את כל מה שיהיה רשום בתוך הביגים וה-end שבאים מיד מיד לאחר ה-y מיד בשורה הבאה אנחנו רושמים ביגים וכל קטע

  5. 01:47

    הקוד שאנחנו נרשום אותו כאן ונחתום אותו בסוף ב-N הוא זה שיתבצע כל עוד התנאי הבוליאני הוא טרום. מה אנחנו רוצים לעשות? אנחנו רוצים להדפיס. רוצים להדפיס לטווח המספרים בין 0 ל-10? אז בואו נדפיס את הקאונטר.

  6. 02:00

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

  7. 02:17

    ברגע שאנחנו מקדמים, אז ה-Counter מתכנס למספר 10, מסגור את לולאת ה-While שלנו על ידי פקודת ה-End, אנחנו סוגרים את ה-Begin, וכרגע אנחנו ערוכים ומוכנים להריץ את התוכנית הראשונה שלנו בנושא של Y. F5, אנחנו פותחים כאן את חלון המסג'ס ומגלים את כל המספרים בין 0 ל-10,

  8. 02:40

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

  9. 02:55

    בואו נסגור רגע את התוכנית ב' הקודמת, ועבור כל המספרים הדו-ספרתיים שעליהם אנחנו רצים, דהיינו בין 10 ל-99 כולל, להציג רק את אותם מספרים שאינם מתחלקים לא ב-3 ולא ב-7.

  10. 03:16

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

  11. 03:27

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

  12. 03:40

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

  13. 03:50

    אנחנו מתחילים ב-10, זו המספר הדו-ספרתי הקטן ביותר. רצים ונכנסים לתוכנו להדווייל. וייל קאונטר קטן מ-100. כל עוד הוא קטן מ-100 אנחנו רצים על כל המספרים, ומה בודקים?

  14. 04:05

    בודקים שהם לא מתחלקים ב-3 ולא מתחלקים ב-7, בשביל זה אנחנו נזדקק לשירותיו הטובים של ה-if condition ונרשום את זה כמובן בתוך בגין. בגין if counter מודול הוא 3, כלומר קח את המספר המונה עצמו כפי שהוא ישתנה מעת לעת כיוון שהוא יירוט על כל טווח המספרים הנתון ואם הוא מתחלק ב-3 שאריתו שונה מ-0,

  15. 04:33

    כלומר הוא לא מתחלק ב-3 שכן counter מודול הוא 3 מחזיר לנו את השארית כתוצאה מחלוקה בשלוש. השארית כתוצאה מחלוקה בשלוש יכולה להיות 0, 1 או 2, לא יותר מזה ולא פחות מזה.

  16. 04:50

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

  17. 05:01

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

  18. 05:11

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

  19. 05:24

    פרינט. טרודל קאונטר למשתמש and נסגור את ה-if. לפני שאנחנו סוגרים גם את ה-while אנחנו לא שוכחים לקדם את הלולאה, על מנת המונה של הלולאה, על מנת שיתכנס לנו לתנאי יציאה למספר 100.

  20. 05:42

    לקדם את זה זה SetCounter שווה ל-Counter ועוד אחד, וסוגרים גם את לולאה ה-Begin שלפנינו. סגרנו את ה-if, סגרנו את ה-while, וכל שנותר לנו כרגע זה להריץ את התוכנית, ובמהלך ה-while בתוך התוכנית עצמה יודפסים לי כל המספרים המקיימים את הדרישה שאינם מתחלקים ב-3 ואינם מתחלקים ב-7.

  21. 06:11

    בחצתי F5, נפתח והנה אנחנו מזהים מחל 10, 11, 13 וכו' וכו', כל המספרים להלן שאינם מתחלקים לא ב-3 ולא ב-7 מודפסים ומוצגים כאן למשתמש כפי שנדרשנו.

  22. 06:28

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

  23. 06:39

    ושים לב שאם אני מריץ את זה אנחנו נקבל כאן אומנם command completed successfully אבל אנחנו לא מצליחים כאן בעצם לבצע לא השמה של הערך ולא הדפסה של הקאונטר ולא בדיקה כלומר ברגע שיש לנו משתנה counter משתנה בתוכנית שלא התחלנו אותו, ה-idחול אינו אופציונלי ב-tsql אלא הוא מס ואם לא התחלת אז הערך הוא לא מוגדר ולכן לא ניתן להתייחס למשתנה הזה.

  24. 07:11

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

  25. 07:24

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

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: הגדרת משתנים - Variables

ההרצאה הבאה: לולאות While - חלק 2

הרצאות קשורות מקורסים אחרים

  • לולאות - for - while
  • לולאות - For, While (שפת #C)
  • לולאות - for - while - שפת Swift
  • תרגול לולאות

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI