![]() |
溫瑞烘老師的教學歷程檔案(Teaching ePortfolio) - 102-2-四技資管二甲乙資料庫管理系統 - 第十三週兩個資料表的關聯 |
| 第十三週兩個資料表的關聯兩個資料表 一、學生基本資料表 stmd 輸入班級代碼 164D11-164D41(四技資管一甲 至 四技資管四甲), 每班至少二名。
二、班級代碼表 class 輸入班級代碼 164D11-164D41(四技資管一甲 至 四技資管四甲)
DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; USE mydb; CREATE TABLE stmd ( depart_class CHAR(6) COMMENT '班級代碼', student_no CHAR(9) COMMENT '學號', student_name VARCHAR(20) COMMENT '姓名', address VARCHAR(60) COMMENT '地址', primary key(student_no) ) comment '學生基本資料表'; CREATE TABLE class ( class_no CHAR(6) COMMENT '班級代碼', class_name VARCHAR(20) COMMENT '班級名稱', primary key(class_no) ); Insert into stmd values('164D11','10214D001','張10214D001','台北市10214D001'); Insert into stmd values('164D21','10114D001','李10114D001','新北市10114D001'); Insert into stmd values('164D31','10014D001','陳10014D001','台中市10014D001'); Insert into stmd values('164D41','9914D001', '鄭9914D001','新竹市10214D001'); insert into class values("164D11","四技資管一甲"); insert into class values("164D21","四技資管二甲"); insert into class values("164D31","四技資管三甲"); 這兩個資料表有一個欄位相互關聯,即 stmd.depart_class與class.class_no Inner Join : 只選擇兩個資料表有匹配的(只顯示有配對的部份) SELECT depart_class,student_no,student_name,address,class_name FROM stmd,class WHERE stmd.depart_class=class.class_no; 如果欄位名稱沒有重複時,可以省略 Table名稱,例如 SELECT depart_class,class_name,student_no,student_name,address FROM stmd,class WHERE depart_class=class_no; 如果欄位名稱沒有重複時,可以省略 Table名稱,例如 SELECT depart_class,student_no,student_name,address,class_name FROM stmd left join class on depart_class=class_no; 作業(必須含班級名稱) 分別作 inner join 與 left join 1. 查詢所有資料 2. 查詢資管二甲所有資料 3. 查詢資管二年級所有資料按班級學號由小到大 4. 查詢資管三年級乙班所有資料按班級學號由大到小 5. 查詢資管二年級所有男生資料 6. 查詢資管二年級所有男生住台北市的資料 7. 查詢每班級所有學生總數 8. 查詢每班級所有男生總數 9. 查詢班級男生總數大於3人者
|
|
中華科技大學數位化學習歷程 - 意見反應 | ![]() |