---
tags: database
---
# 11/22
1
查詢沒學過「機器人初階」 課程同學的學號、姓名
```
SELECT s_no,s_name
FROM dbo.students
WHERE s_no NOT IN(
SELECT s_no
FROM dbo.results
LEFT JOIN dbo.classes ON classes.c_no=results.c_no
WHERE c_name='機器人初階'
)
```
2
查詢“C0006”課程分數小於 80,並按分數降冪排列的學號
```
SELECT s_no
FROM dbo.results
WHERE c_no='C0006' AND r_result<80
ORDER BY r_result DESC
```
3
查詢住在「汐止鎮」的學生學號、姓名及住址;
```
SELECT s_no,s_name,s_address
FROM dbo.students
WHERE s_address LIKE '%汐止鎮%'
```
4
查詢各科成績最高分、最低分及平均分數,顯示:課程編號、課程名稱、最高分、最低
分及平均分數;
```
SELECT r.c_no AS 課程編號,c.c_name AS 課程名稱,MAX(r_result) as 最高分,MIN(r_result) as 最低分,AVG(r_result) as 平均分數
FROM dbo.results as r
LEFT JOIN dbo.classes as c ON r.c_no=c.c_no
GROUP BY r.c_no,c.c_name
ORDER BY r.c_no
```
5
查詢每門課程被選修的學生數;
```
SELECT c.c_name AS 課程名稱,COUNT(r.s_no) AS 學生數
FROM dbo.classes as c
LEFT JOIN dbo.results as r ON r.c_no=c.c_no
GROUP BY r.c_no,c.c_name
ORDER BY r.c_no
```
6
查詢住在台北市學生的平均成績,課程編號、平均成績
```
SELECT r.c_no AS 課程編號,AVG(r.r_result) AS 平均成績
FROM dbo.results as r
LEFT JOIN dbo.students as s ON s.s_no=r.s_no
WHERE s.s_address LIKE '%台北市%'
GROUP BY r.c_no
```
7
請查詢住在「台北縣」的同學,並將其修改成「新北市」;
```
UPDATE dbo.students
SET s_address=REPLACE(s_address,'台北縣','新北市')
SELECT s.s_no,s.s_address
FROM dbo.students AS s
WHERE s_address LIKE '%新北市%'
```
8
刪除“S080400001”同學的“C0001”課程的成績
```
DELETE FROM dbo.results
WHERE s_no='S080400001' AND c_no='C0001'
SELECT *
FROM dbo.results
WHERE s_no='S080400001' AND c_no='C0001'
```