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

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

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

מהן שאילתות משנה של SQL?

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

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

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

instagram viewer

קָשׁוּר: כל מה שאתה צריך לדעת על הצהרת SQL GROUP BY

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

ההקפדה של שאילתת משנה היא כדלקמן:

בחר column_name מהטבלה שבה condition= 
(SELECT conditional_column FROM table) ככינוי;

לדוגמה, נניח שיש לך את הטבלה הבאה:

תְעוּדַת זֶהוּת שם פרטי שם שני עמלת_סוכנות
1 ג'ון פְּתִילָה 5000
2 רוברט גרהם 4000
3 סטיבן היקס 8000
4 בוב מארלי 1000
5 מרי אלן 9000

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

קָשׁוּר: כיצד ליצור טבלה ב-SQL

כך נראית השאילתה:

בחר * מ-agent_details
כאשר Agency_Fee > (בחר ממוצע (Agency_Fee) מתוך agent_details);

הפקודה לפני ה > סימן הוא השאילתה החיצונית, ואילו הכל אחרי ה- > סימן הוא השאילתה הפנימית.

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

כיצד להשתמש בשאילתות משנה ב-SQL?

ישנן מספר דרכים שונות שבהן תוכל להשתמש בשאילתות משנה ב-SQL.

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

אחד המבנים הבסיסיים ביותר של שאילתת משנה ב-SQL נמצא בסעיף Where. זו הדרך הפשוטה ביותר להגדיר מה אתה מחפש. הצהרת select מחזירה ערכים לפי תנאי שאילתת המשנה ומשתמשת בו כפרמטר עבור השאילתה הראשית.

מבנה שאילתה:

בחר * מתוך table_name
כאשר column_name = (בחר column_name מתוך table_name);

בואו נסביר את זה עם דוגמה.

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

כך תוכל להגדיר את שאילתת המשנה:

בחר *, מקסימום (עמלת סוכנות)
מ-agent_details
כאשר Agency_fee < (בחר מקסימום (Agency_fee) מתוך agent_details);

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

לאחר חישוב חלק זה, מחושב החלק השני של השאילתה, אשר מוצא את העמלה השנייה בגובהה מהטבלה (מאז < נעשה שימוש בסימן). התוצאה הסופית היא 8000, שהיא העמלה השנייה בגובהה בטבלה.

שאילתות משנה בתוך סעיף מאת

וריאציה נוספת בתוך שאילתות משנה היא העברת התנאי ב- מ סָעִיף. בתור מושג דומה, השאילתה הפנימית מעובדת תחילה, והשאילתה החיצונית מעובדת לאחר מכן. השאילתה הפנימית תסנן את הנתונים ותציג תוצאות שבהן ID = 3.

הנה השאילתה לעיון:

בחר א.* מתוך (
בחר עמלת סוכנות מתוך agent_details
כאשר ID= 3) בתור a;

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

שימוש בשאילתות משנה עם Insert Into Statement

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

מבנה שאילתה:

הכנס לתוך table_name 
בחר * מתוך table_name
כאשר column_name = תנאים;
בחר * מתוך table_name;

הנה דוגמה לאופן שבו אתה יכול להשתמש במשפט insert into עם שאילתת המשנה:

הכנס לתוך agent_details
בחר * מ-agent_details
where agency_fee in (1000, 5000);
בחר * מ-agent_details;

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

שימוש בשאילתות משנה עם הצהרת עדכון

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

כך תכתוב את שאילתת המשנה כדי לעדכן את המידע בטבלה במקרה אחד:

עדכן table_name 
set column_name = new_value
כאשר column_name =
(בחר column_name מתוך table_name שבו = );

הנה דוגמה המדגימה את השימוש בהצהרת העדכון:

עדכון agent_details 
עמלת סוכנות_SET = 35000
WHERE agency_fee =
(SELECT agency_fee FROM agent_details WHERE First_name='John');
בחר * מ-agent_details;

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

אתה יכול לעבור א בחר * הצהרה לבדיקת התוצאות הסופיות; תבחין שעמלת הסוכנות עבור John Wick מעודכנת ל-35000, מכיוון שיש רק מופע התואם לתנאים שהוגדרו בשאילתה.

שימוש בשאילתות משנה עם הצהרת מחיקה

בדיוק כמו הצהרת העדכון, שבה אתה מעדכן את שורות הנתונים בתוך טבלה קיימת, ה לִמְחוֹק הצהרה מוחקת שורה(ים) של נתונים על סמך תנאי.

מבנה הצהרת המחיקה הוא:

מחק מ- table_name כאשר שם משתנה/עמודה = 
(בחר column_name מתוך table_name שבו = תנאי);

הנה דוגמה:

מחק מ-agent_details 
שבו First_name IN
(בחר First_name מתוך agent_details שבו agency_fee = 9000);
בחר * מ-agent_details;

שימוש בשאילתות משנה בתוך SQL

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

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

גיליון הרמות של פקודות SQL חיוניות למתחילים

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

קרא הבא

לַחֲלוֹקצִיוּץאימייל
נושאים קשורים
  • תִכנוּת
  • תִכנוּת
  • SQL
  • כלי תכנות
על הסופר
גורב סיאל (35 מאמרים שפורסמו)

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

עוד מאת גורב סיאל

הירשם לניוזלטר שלנו

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

לחץ כאן כדי להירשם