3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
SQL 正規化 SELECT 範例   資料來源: http://www.mysql.tw/2015/05/select.html     學號 學生姓名 學生電話 課程代號 課程名稱 年級 老師姓名/電話 老師代號 科系代號 科系名稱 成績 101001 張大頭 0910111222 0922111000 A001 資料庫 三年級 王老師 0933111333 001 001 資管系 80 A002 網路概論 林老師 0955111222 002 003 資工系 50 101002 劉三哥 0912333222 0922111333 A003 程式設計 三年級 孫老師 0912000333 003 001 資管系 85 A002 網路概論 林老師 0955111222 002 003 資工系 76 我們正規化後,資料結構如下~ studnt 學生資料表 (studno, studname, deptid) teacher 老師資料表 (teano, teaname, deptid) department 科系資料表 (deptid, deptname) telephone 電話資料表 (ownerno, tel) coursemain 課程資料表 (courseid, coursename, coursecredit, courseflag, deptid) courseopen 開課資料表 (yearsemester, courseid, teano, coursetime, roomid) course 學生選課單 (yearsemester, courseid, studno, score)   規化後,請寫出以下SQL Command: (1)列出學生張大頭的所有選修的課程代號。 SELECT c.courseid FROM course c, student s WHERE c.studno=s.studno AND s.studname=’張大頭’; (2)列出學生張大頭的所有選修的課程名稱。 SELECT m.coursename FROM course c, student s, coursemain m WHERE c.courseid=m.courseid AND c.studno=s.studno AND s.studname=’張大頭’; (3)列出學生張大頭的所有選修的課程名稱,以及成績。 SELECT m.coursename, c.score FROM course c, student s, coursemain m WHERE c.courseid=m.courseid AND c.studno=s.studno AND s.studname=’張大頭’; (4)列出學生張大頭的所有電話。 SELECT t.tel FROM telephone t, student s WHERE t.ownerno=s.studno AND s.studname=’張大頭’; (5)列出林老師所有開課的總學生人數。 SELECT COUNT(*) FROM course c, courseopen co, teacher t WHERE c.courseid=co.courseid AND co.teano=t.teano AND t.teaname=’林老師’; (6)列出選修程式設計的學生名單。 SELECT s.studno, s.studname FROM student s, course c, coursemain cm WHERE s.studno=c.studno AND c.courseid=cm.courseid AND cm.coursename=’程式設計’; (7)列出每位學生的平均分數。 SELECT studno, AVG(score) FROM course GROUP BY studno; (8)列出所有課程成績未達60的學生姓名。 SELECT s.studname FROM course c, student s WHERE c.studno=s.studno AND c.score<60; (9)列出資工系的所有開課課程名稱。 SELECT cm.coursename FROM coursemain cm, courseopen co, department d WHERE cm.courseid=co.courseid AND cm.deptid=d.deptid AND d.deptname=’資工系’; (10)列出電話、所有人姓名。  (SELECT studname as name, tel FROM telephone t,student s where t.ownerno=s.studno) UNION  (SELECT teaname as name, tel FROM telephone t,teacher tea where t.ownerno=tea.teano); (11)列出沒有開課的老師編號、姓名。 SELECT teano,teaname FROM teacher WHERE teano NOT IN (SELECT teano FROM courseopen); (12)列出每個學生的修課學分總數。 SELECT c.studno,sum(coursecredit) FROM course c,coursemain cm WHERE c.courseid=cm.courseid GROUP BY c.studno;      

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦