黑马程序员技术交流社区

标题: 一对多关系的数据库建立及三种查询方法 [打印本页]

作者: 胡盼盼    时间: 2013-9-6 00:08
标题: 一对多关系的数据库建立及三种查询方法
学院与班级是一对多的关系,或着说班级与学院是多对一的关系,因一个学院有若干个班级
若一个学校有数学与计算机科学院物理学院英语学院等;
数学与计算机科学院有数教一班、数教二班、软件一班、软件二班等;
物理学院有物理一班、物理二班等,
英语学院有英语一班、英语二班、英语三班等。现在将现实生活中遇到的模型转换为数据模型并保存。
步骤:
1第一步 建一个school数据库
第二步:建一张学院表,包含两列,学院编号,学院名字,学院编号为主键并自动增长。
如图
第三步:建一张班级表,包含三列,班级编号(主键,自动增长),班级名称,院系编号(外键,与学院表关联)
如图
第四步:填写数据
学院表,只需填写名称,编号自动填写。
班级表,需填写名称,学院编号,班级编号自动增长。注:班级与学院编号要对应
如图
根据学院名称查询班级,三种方法
1 SELECT id AS 班级编号,Name AS 班级名 FROM Grades WHERE CollegeID IN
(SELECT ID FROM College where NAME='物理学院')
2 SELECT c.ID AS 学院编号,c.Name AS 学院名,g.ID AS 班级编号,g.Name AS 班级名 FROM Grades g,College c
WHERE g.CollegeID=c.ID AND c.Name='物理学院'
3 SELECT c.ID AS 学院编号,c.Name AS 学院名,g.ID AS 班级编号,g.Name AS 班级名 FROM Grades g
LEFT JOIN College c ON g.CollegeID=c.ID WHERE c.Name='物理学院'

作者: 许庭洲    时间: 2013-9-6 07:35
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2