arrow

פרק 2 - שליפה ותמרון נתונים

תת שאילתות

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

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

(מטבלת CLIENTS), שביצעו משיכה של יותר מ- 150.00$.


SELECT DISTINCT C_NAME, C_PHONE
FROM CLIENTS
WHERE EMP_NUM IN
(
SELECT C_NUM
FROM SALES
WHERE S_AMOUNT > 150.00
);
		

התוצאות שנקבל:

C_NAME			C_PHONE
--------------------------------
Jason Lim		456-7890
Stephen Petersen	167-3333
--------------------------------
		

כפי שניתן לראות, תת שאילתא שנמצאת בפסוקית WHERE תחזיר רשימה המכילה "101" ו- "103". לאחר מכן, שאילתא ברמה הגבוהה יותר תחזיר את שני הלקוחות. במקרה הספציפי הזה האופרטור DISTINCT לא היה נחוץ, מכיוון שאין לנו כל כך הרבה מכירות בטבלת המכירות (SALES) שלנו. אולם, במרבית תת שאילתות, יהיה מאוד שימושי, להשתמש באופרטור הזה, כדי לא לקבל לקוח חוזר על עצמו מספר עמים במכירות שונות. כמובן, יתכן וזה בדיוק מה שאתם תצטרכו.

arrow צרופים
תוכן עניינים
הוספת נתונים arrow


פרק 1 -> פרק 2 -> פרק 3 -> פרק 4 -> פרק 5 ->