考试系统的基础维护--基本表的连接操作

php中文网
发布: 2016-06-07 15:58:03
原创
1441人浏览过

这次有幸帮师姐进行考试系统的基础维护,说直接点就是对考试人员的管理,增删改查,最主要的还是查询学生,用来和老师所给的信息进行核对,最后再确定考试的人员,在查询的过程中就遇到了这样的一种情况: 在对English考试的人员进行核对的时候,为了方便查

这次有幸帮师姐进行考试系统的基础维护,说直接点就是对考试人员的管理,增删改查,最主要的还是查询学生,用来和老师所给的信息进行核对,最后再确定考试的人员,在查询的过程中就遇到了这样的一种情况:

在对English考试的人员进行核对的时候,为了方便查询,而建立的一个相关的视图,该视图所涉及到的表有:TB_Student(学生基本信息),TB_ExecutiveClass(涉及到所在的班级),TB_DepartmentName(所属专业),TB_CollegeName(所属学院),TB_English主要就是把学生基本信息以及所属的学院专业以及英语考试的相关信息来建立一个整体的信息表。对于信息的检查第一部分就是看看视图中的信息有没有和老师所给的英语信息表一一对应。

胡乱忙碌的半天,最后按照师姐的想法,先对表进行了右外连接,以学生英语分级信息为主,来进行了查询:

相关语句如下:

SELECT DISTINCT
dbo.TB_Student.StudentName, dbo.TB_Student.StudentCode, dbo.TB_Student.Sex, dbo.TB_ExecutiveClass.ExecutiveClassName, dbo.TB_Department.DepartmentName,
dbo.TB_College.CollegeName, dbo.TB_Grade.GradeName, dbo.TB_english.englisfenji, dbo.TB_english.englishclass
FROM dbo.TBR_DepCollegeLink INNER JOIN
dbo.TB_Department ON dbo.TBR_DepCollegeLink.DepartmentID = dbo.TB_Department.DepartmentID INNER JOIN
dbo.TB_College ON dbo.TBR_DepCollegeLink.CollegeID = dbo.TB_College.CollegeID INNER JOIN
dbo.TBR_ExecutiveClassDepLink ON dbo.TB_Department.DepartmentID = dbo.TBR_ExecutiveClassDepLink.DepartmentID INNER JOIN
dbo.TBR_StuExecutiveClassLink INNER JOIN
dbo.TB_ExecutiveClass ON dbo.TBR_StuExecutiveClassLink.ExecutiveClassID = dbo.TB_ExecutiveClass.ExecutiveClassID INNER JOIN
dbo.TB_Student ON dbo.TBR_StuExecutiveClassLink.StudentID = dbo.TB_Student.StudentID ON
dbo.TBR_ExecutiveClassDepLink.ExecutiveClassID = dbo.TB_ExecutiveClass.ExecutiveClassID INNER JOIN
dbo.TBR_ExecutiveClassGradeLink ON dbo.TB_ExecutiveClass.ExecutiveClassID = dbo.TBR_ExecutiveClassGradeLink.ExecutiveClassID INNER JOIN
dbo.TB_Grade ON dbo.TBR_ExecutiveClassGradeLink.GradeID = dbo.TB_Grade.GradeID RIGHT OUTER JOIN
dbo.TB_english ON dbo.TB_Student.StudentCode = dbo.TB_english.studentCode

所出现的效果如下:

\

为什么会出现这种状况呢?其原因当然很简单,由于T_English表中的数据是自己按照老师所给的Excel表格直接导入进去的,所以如果采用又外连接会出现其等同量的数据,可是由于某种原因,当初添加基本信息的时候忘记了此学生,又或者转专业只删除了而忘记把其添加进去了等等,从而导致基础学生表为空,所以才出现的如图的现象。

通过基本表的连接操作进行了简单的查询,然后再一对照,发现真的是这五条数据捣的鬼。哎!这次真的是帮了自己的大忙了

其实右外连接只是基本表中的一种连接类型,除此之外,数据表的连接类型分成:

1)内连接:是等值连接

2)外连接:看以什么信息为主,是表格A还是表格B,如果以表A信息为依据,那就使用左外连接,相反则使用右外连接。全外连接则是两个表都不加限制。

3)自然连接:连接发生在一张表内

冠龙科技手机企业网站管理系统2016
冠龙科技手机企业网站管理系统2016

冠龙科技手机企业网站管理系统是基于ASP+ACCESS技术开发的电子商务平台,属于全自动化、全智能的在线方式管理、维护、更新的网站管理系统。此系统直接上传到你的网站空间就可以使用了。完全后台操作。后台路径:/admin后台用户及密码均为 admin更新日志:1、增加在线客服系统支持网页在线客服及QQ\旺旺等2、修改产品展示的排序错误3、增加了后台修改前台图片的功能4、网站LOGO及版权信息后台自定

冠龙科技手机企业网站管理系统2016 0
查看详情 冠龙科技手机企业网站管理系统2016

下边通过举例来详细说明:

表TB_student和表TB_English

\\

对于自然连接,一般使用在有公共属性的情况中,如果两个关系没有公共属性,那么自然连接则就转换成笛卡儿积来进行操作。

迪卡儿积:

SELECT     dbo.TB_English.studentCode, dbo.TB_English.englisfenji, dbo.TB_Student.StudentCodes, dbo.TB_Student.StudentName
FROM         dbo.TB_English CROSS JOIN
                      dbo.TB_Student
登录后复制

显示效果:

\

内连接:

SELECT     dbo.TB_English.studentCode, dbo.TB_English.englisfenji, dbo.TB_Student.StudentCodes, dbo.TB_Student.StudentName
FROM         dbo.TB_English <span style="color:#ff0000;">INNER JOIN</span>
                      dbo.TB_Student ON dbo.TB_English.studentCode = dbo.TB_Student.StudentCodes
登录后复制
\

 

左外连接:

SELECT     dbo.TB_English.studentCode, dbo.TB_English.englisfenji, dbo.TB_Student.StudentCodes, dbo.TB_Student.StudentName
FROM         dbo.TB_English<span style="color:#ff0000;"> LEFT OUTER JOIN</span>
                      dbo.TB_Student ON dbo.TB_English.studentCode = dbo.TB_Student.StudentCodes
登录后复制

\

右外连接:

SELECT     dbo.TB_English.studentCode, dbo.TB_English.englisfenji, dbo.TB_Student.StudentCodes, dbo.TB_Student.StudentName
FROM         dbo.TB_English <span style="color:#ff0000;">RIGHT OUTER JOIN</span>
                      dbo.TB_Student ON dbo.TB_English.studentCode = dbo.TB_Student.StudentCodes
登录后复制

\

全外连接:

SELECT     dbo.TB_English.studentCode, dbo.TB_English.englisfenji, dbo.TB_Student.StudentCodes, dbo.TB_Student.StudentName
FROM         dbo.TB_English <span style="color:#ff0000;">FULL OUTER JOIN</span>
                      dbo.TB_Student ON dbo.TB_English.studentCode = dbo.TB_Student.StudentCodes
登录后复制
\

总结:

这次对于基础信息的操作让自己对于SQL查询等等熟悉了许多,对于实践检验知识的熟练程度,真的是一点都不假啊!虽然只是一些小小的知识点,但是通过这次基础信息维护,让自己更加明白了这些基础性的学习一定要扎实啊!这些知识看似简单,但是如果不了解,真的会使自己的查询效率大大降低啊!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号