11/17 STU資料庫概論

11/17 資料庫概論上課內容

老師出的題目:ER Model轉成Database

ER Model:

由此可知我們將要畫成資料表有以下:

系所(department)、學生(student)、課程(course)、老師(teacher)、選課(take)

以下所有示範使用MySQL以及phpMyAdmin,在有些地方Access跟MySQL有語法上的不同!如果圖片看不清楚可以點及圖片直接看原始圖檔!

系所(department)資料表如下:

學生(student)資料表如下:

課程(course)資料表:

老師(teacher)資料表如下:

選課(take)資料表如下:

接下來資料庫完成後就是要依老師的題目抓取資料,題目有:
1.顯示出有學生選擇的科系(沒有學生的系不會顯示)
2.顯示出住在小琉球資工系學生
3.顯示出陳大天所選課程課程學分數授課老師名字課程成績

1.我們將要輸入的SQL查詢為以下
SELECT DISTINCT dname
FROM student, department, take
WHERE student.did = department.did And
student.sid = take.sid;
解説:
選擇(SELECT ) dname資料 ,不重複(DISTINCT )
從(FROM)資料表 student, department, take
條件是(WHERE) student的did = department的did 且(And) 
student的sid = take的sid;

下方為完整的翻譯:
選擇 系所 名稱 ,不重複
從資料表 學生, 系所, 選課
條件是 學生的系所代碼 = 系所的系所代碼 且
學生的學號 = 選課的學號;

查詢後的結果為

2.我們將要輸入的SQL查詢為以下
SELECT *
FROM student, department
WHERE student.addr Like ‘%小琉球%’ And
department.did = student.did And
department.dname=’資工系’;
解説:
選擇全部資料 
從資料表 學生, 系所
條件是 學生的地址像 %小琉球%‘ 且 
系所的系所代碼= 學生的系所代碼且 
系所的系所名稱= ‘資工系’;
※重點※
資料庫中 ” SELECT * ” 意思為顯示所有相符的資料
在Access中任意字串要使用 ” * ” 此題在Access中要寫成這樣 ‘*小琉球*’
而在MySQL中是使用 ” % “

結果為:

3.我們將要輸入的SQL查詢為以下
SELECT course.cname, course.creadit, teacher.tname, take.fraction
FROM student, department, course, teacher, take
WHERE student.sname=’陳大天’ And
student.sid=take.sid And
student.did=department.did And
take.cid=course.cid And
take.cid=teacher.cid;
解釋:
選擇課程名稱, 課程學分, 授課老師名字, 課程成績
從資料表 學生, 系所, 課程, 老師, 選課
條件為 學生的名字是’陳大天’ 且
學生的學號=選課的學號 且
學生的系所代碼=系所的系所代碼 且 
選課的課程代碼=課程的課程代碼 且
選課的課程代碼=老師的課程代碼;

結果為:

發表迴響