---
tags: database
---
# 12/13
### 1
在「學生資料表」中查詢姓名開頭姓「李」或「林」的學生基本資料。
```
SELECT *
FROM students AS s
WHERE s.s_name LIKE '李%' OR s.s_name LIKE '林%'
```
### 2
查詢各課程成績相同的學生的學號、課程編號、學生成績
```
SELECT r.s_no,r.c_no,r.r_result
FROM results AS r,students AS s,results AS a
WHERE r.s_no=s.s_no AND a.s_no<>r.s_no AND r.c_no=a.c_no AND r.r_result=a.r_result
ORDER BY r.r_result
```
### 3
統計列印各科成績、各分數段人數,顯示:課程編號、課程名稱、[100-86]、[85-70]、
[69-60]、[ <60];
```
SELECT c.c_no,c.c_name,
COUNT(IIF(r.r_result<=100 and r.r_result>=86,1,null)) AS [100-86],
COUNT(IIF(r.r_result<=85 and r.r_result>=70,1,null)) AS [85-70],
COUNT(IIF(r.r_result<=69 and r.r_result>=60,1,null)) AS [69-60],
COUNT(IIF(r.r_result<60,1,null)) AS [ <60]
FROM results AS r,classes AS c
WHERE r.c_no=c.c_no
GROUP BY c.c_no,c.c_name
```
### 4
請計算每位學生所得到的學分數,顯示學號、姓名及學分數等三個欄位。
```
SELECT a.s_no,s.s_name,SUM (a.c_points) as 學分數
FROM students AS s,(
SELECT r.c_no,r.s_no,c.c_points
FROM results as r,classes as c
WHERE r.r_result>=60 AND c.c_no=r.c_no
) as a
Where a.s_no=s.s_no
GROUP BY a.s_no,s.s_name
```
### 5
請問數學課男生和女生的平均成績各多少,顯示姓別、平均成績等二個欄位。
```
SELECT s.s_sex,AVG(r.r_result) AS 平均成績
FROM students AS s,results AS r
WHERE s.s_no=r.s_no AND r.c_no='C0001'
GROUP BY s.s_sex
```
### 6
請將此資料庫備份到到 D 槽「Backup」目錄,並寫出完整備份的指令。
```
BACKUP DATABASE [s1311034027] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\s1311034027.bak', DISK = N'D:\backup\12.13' WITH NOFORMAT, NOINIT, NAME = N's1311034027-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
```