1. מציאת ערכים משתי טבלאות:
ראשית, נאתר עמודת IDהמשותפת לשתי הטבלאות.
נריץ שאילתה על אחת הטבלאות שתייצר עבורנו, לרוב בעזרת ,SELECT DISTINCTטבלה ובה שורות ובהן ה –
,IDבהתאם לתנאי הנדרש, ומהטבלה השנייה, נציג את השורות בעלות אותו ה– IDשבטבלה שייצרנו:
;'%1. (A=)SELECT DISTINCT artistid FROM work WHERE description LIKE '%impressionist
;)2. SELECT LastName, FirstName FROM ListofArtists WHERE artistid IN (A
7 3
2. 1.
(7) 6 5
Last First
(6) 8 7
Last First
(8) Last First 9 6
01 8
11
A
21
הוראות מקוננות.
כאשר יש צורך בהפעלת בחירה מרובה על אותה הטבלה, לדוגמה, באם רצוננו למצוא לא רק את הערך המינימאלי
בעמודה מסוימת, אלא גם את כל השורה בה מופיע ערך זה, נוכל לעשות זאת באופן הבא:
;SELECT name, age FROM table1 WHERE (SELECT MIN(age) FROM table 1) = age
סידור שורות.
סידור השורות בסדר יורד / עולה לפי שדה מסוים,
יופיע בדרך כלל לאחר WHERE
}ORDER BY col1 {ASC, DESC}, col2 {ASC,DESC
עולה יורד
Default
2. חיתוך בין טבלאות .
לא קיימת פעולת חיתוך פרופר, אך נוכל לבצעה באמצעות WHERE EXISTSבאופן הבא:
1SELECT * FROM table
2WHERE EXISTS (SELECT * FROM table
1WHERE table1.col1=table2.col
)2AND table1.col2=table2.col
לקיחת נתונים משתי טבלאות:
SELECT lastname, firstname FROM listofartists WHERE artistid IN
;)'%(SELECT DISTINCT artistid FROM work WHERE description LIKE '%impressionist
חיתוך:
SELECT lastname, firstname FROM listofartists
WHERE EXISTS (SELECT * FROM work
;)'%WHERE listofartisits.artistid=work.artistid AND work.description LIKE '%impressionist
ספירת שורות בטבלה :
SELECT COUNT (*) FROM (query / table) AS new_column_name
נתונים מיותר משתי טבלאות :
כאשר אנו עובדים עם טבלאות מרובות אשר ביניהן קיימים קשרים כאלו ואחרים, על מנת לשלוף נתון בהסתמך
על השתייכותו, ואופיו עבור מספר טבלאות, אנו נצטרך למצוא את המפתחות המקשרים בין הטבלאות ולהציב
תנאים שיאלצו את הערך המוחזר להיות זה שאנו מחפשים.
ניתן לדמות זאת לחיפוש מסלול במפה באופן הבא:
1 Table 2 Table 3 Table
WID A B CID D CIDCID K T PID S
PID J X Z W
נתון מעמודה Xב – 3 Tableהוא שמעניין אותנו, ואנו רוצים לדעת מהו ה – WIDשלו.
כמו שמתואר בתרשים, אין גישה ישירה לנתון זה, אך ניתן לבצע "מעבר" בין הטבלאות דרך המפתחות המשותפים
ובלבד שאלו אכן מייצגים את אותו האובייקט.
)WHERE (Table3.PID = Table2.PID
)AND (Table2.CID=Table1.CID
3. איחוד שורות מטבלאות שונות .
על הטבלאות להיות מאותו טיפוס נתונים. במקרה הצורך ניתן להוסיף עמודת TAGעל מנת לדעת מאיזו טבלה
)(query) UNION (query הגיעה כל שורה.
הגבלת כמות התוצאות של שאילתה :
מספר השורות עליהן יש לדלג
# (query) LIMIT # OFFSET
מספר השורות להצגה החל מערך 1+ offset
אם לא צוין ,offsetההגבלה על מספר השורות תתחיל מהשורה הראשונה.
. ALIAS
נניח ונרצה לבחור ערך מקסימאלי / מינימאלי, לסכום או לבצע מניפולציה על עמודה, שעל מנת לייצרה נדרשנו
בשימוש ב )*( ,COUNTנוכל להגדיר ALIASבאופן הבא:
(A=) SELECT COUNT(*) AS Alias FROM table GROUP BY column
ואז , להתייחס ל – Aliasהזה, כאילו כבר היה קיים כך:
2SELECT {MAX,MIN} (Alias) FROM (A) AS Alias
ניתן לפנות לטבלה שנוצרה כך: Alias2.column