溫瑞烘老師的教學歷程檔案(Teaching ePortfolio) - 102-2-四技資管二甲乙資料庫管理系統 - 第十三週兩個資料表的關聯
 

資訊管理系
副教授
温瑞烘


歷程檔案 Portfolio


關於我 About Me

第十三週兩個資料表的關聯

 

兩個資料表

 

一、學生基本資料表 stmd 輸入班級代碼 164D11-164D41(四技資管一甲 四技資管四甲) 每班至少二名。

depart_class

student_no

student_name

address

164D11

1014D001

張資一

台北市

 

 

 

 

 

二、班級代碼表 class

輸入班級代碼 164D11-164D41(四技資管一甲 四技資管四甲)

class_no

class_name

164D11

四技資管一甲

164D21

四技資管二甲

164D31

四技資管三甲

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_classclass.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;

 
left join

SELECT depart_class,student_no,student_name,address,class_name FROM stmd left join class on stmd.depart_class=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人者

 

 

 

全部共 0則留言
登入帳號密碼代表遵守學術網路規範
 


文章分類 Labels

 


最新文章 Top10

中華科技大學數位化學習歷程 - 意見反應