午夜精品久久久久久久99老熟妇,天堂中文www官网,未满十八18勿进黄网站,太粗太深了太紧太爽了,天天爽夜夜爽夜夜爽

考試報名
考試報名
考試內(nèi)容
考試大綱
在線客服
返回頂部

備考刷題,請到

CDA認(rèn)證小程序

Given student table S(SNo, SName, Sex, Age), course table C(CNo, CName, Teacher), enrollment table SC(SNo, CNo, Grade). A student can enroll in multiple courses, a course can have multiple students. Some students have no enrollment, some courses have no students. To find all students' id and enrolled course id, the correct SQL statement is _____
A. SELECT SNO,CNO FROM GRADE;
B. SELECT S.SNO,CNO FROM S INNER JOIN SC ON S.SNO=SC.SNO;
C. SELECT S.SNO,CNO FROM S OUTER JOIN SC ON S.SNO=SC.SNO;
D. SELECT S.SNO,CNO FROM S LEFT JOIN SC ON S.SNO=SC.SNO;
上一題
下一題
收藏
點贊
評論
題目解析
題目評論(0)

To get all students' id and courses, the student table S should be the main table left joined with enrollment SC to include all students.

正確答案是 D: SELECT S.SNO,CNO FROM S LEFT JOIN SC ON S.SNO=SC.SNO。

### 分析:

1. **INNER JOIN (選項 B)**:
- `INNER JOIN` 只會返回在兩個表中都有匹配記錄的行。如果某些學(xué)生沒有選課記錄,或者某些課程沒有學(xué)生,這些記錄將不會包含在結(jié)果中。因此,這種連接方式不適合題目要求,因為它不能顯示所有學(xué)生的ID。

2. **OUTER JOIN (選項 C)**:
- SQL標(biāo)準(zhǔn)中并沒有直接的 `OUTER JOIN` 語法,通常使用 `LEFT JOIN`、`RIGHT JOIN` 或 `FULL OUTER JOIN` 來表示不同的外連接類型。由于 SQL 標(biāo)準(zhǔn)中沒有 `OUTER JOIN` 這種明確的語法,所以選項 C 是不正確的。

3. **LEFT JOIN (選項 D)**:
- `LEFT JOIN` 會返回左表(學(xué)生表)中的所有記錄,即使右表(選課表)中沒有匹配的記錄。這意味著即使某些學(xué)生沒有選課記錄,他們的ID也會顯示在結(jié)果中,并且相應(yīng)的課程ID會是NULL。這正好符合題目要求:顯示所有學(xué)生的ID和選課的ID。

4. **錯誤的表名 (選項 A)**:
- 選項 A 提到的 `GRADE` 表在題目中并不存在。正確的表名應(yīng)該是 `SC`,因此選項 A 是錯誤的。

### 結(jié)論:

選項 D 是正確的,因為 `LEFT JOIN` 確保所有學(xué)生的ID都會顯示在結(jié)果中,即使他們沒有選課記錄。