sql查询子表数据

2012-03-28   来源:物理试题

什么是视图 视图的作用
篇一:sql查询子表数据

  视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。以下是由小编整理关于什么是视图的内容,希望大家喜欢!

  视图的含义

  从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

  视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。

  视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。

  视图:查看图形或文档的方式。

  视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。

  当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

  视图的种类区别

  Oracle数据库视图的种类和区别

  关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可以通过工具或数据字典来查看视图的相关信息。这是大家常用的视图,如:create view 视图。

  内嵌视图:在from语句中的可以把表改成一个子查询,如:select a、id ,b、id from emp a,(select id from dept) b where a、id=b、id内嵌视图不属于任何用户,也不是对象,内嵌视图是子查询的一种,可以与数据表、视图一样作为查询语句的数据源存在,但在形式上有较大的区别,内嵌视图不必使用create view命令进行创建,因此,在数据字典中也无法获得相应信息。内嵌视图的特点在于无须创建真正的数据库对象,而只是封装查询,因此会节约数据库资源,同时不会增加维护成本。但是内嵌视图不具有可复用性,因此当预期将在多处调用到同一查询定义时,还是应该使用关系视图。

  对象视图:对象类型在数据库编程中有许多好处,但有时,应用程序已经开发完成。为了迎合对象类型而重建数据表是不现实的。对象视图正是解决这一问题的优秀策略。

  对象视图创建之后,同样可以在数据字典中获得其相应信息。利用Oracle内置视图user_views可以获得对象视图相关信息。Oracle中的对象数据实际仍然以关系数据的形式存储。但是,对象的特性,例如继承、封装等,都为开发人员提供了更加灵活的处理形式。同样,可以构造复杂的对象类型来封装复杂的多表查询。

  物化视图:常用于数据库的容灾,不是传统意义上虚拟视图,是实体化视图,和表一样可以存储数据、查询数据。主备数据库数据同步通过物化视图实现,主备数据库通过data link连接,在主备数据库物化视图进行数据复制。当主数据库垮掉时,备数据库接管,实现容灾。

  视图的作用

  简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

  安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:

  使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。

  逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。

  视图的优点

  1、 视点集中

  视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。

  2、 简化操作

  视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。

  3、 定制数据

  视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。

  4、 合并分割数据

  在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。

  5、 安全性

  视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。


看过“视图的作用”的人还看了:

SQL server 实训小结3篇
篇二:sql查询子表数据

  SQL Server是一种数据库管理系统,它是为了分布式客户机/服务器所设计的,是一种高性能的数据库管理系统。本文是小编为大家整理的SQL server 实训小结,仅供参考。

  SQL server 实训小结篇一:

  为期一周的实训已经结束,从这一周中,有了很多的感悟。从学到和掌握到的东西来说,在书本上学到的东西非常不牢固,然而实训真的让我受益匪浅!实训第一天到教室时,看到老师给我们讲试训的内容与要求,然后告诉我们一些要完成的任务与作业,然后根据试训的内容与要求授课,让我们从实践中去体会所学的知识。

  说实话,对于SQL Server 数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?有一种“何去何从”的感觉!但随着老师的教课和讲解,以及和同学的讨论,再结合自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。 在这次的google订餐系统的设计过程中,我们根据该google订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二是角色的管理,分为管理员,订餐用户和餐馆;第三就是用编程语言建立管理菜单。所以 试训的内容是从数据库和数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与删除表的操作。我们以SQL Server数据库为基础,建立一个google订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。讲了数据库的操作,增删改查。使我们掌握了insert into,deleted from,update set,以及select*from语句的的相关知识和运用。其中还学到了分页查询以及多表查询。

  从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。

  这次实训,不仅让我们学到了许多有关数据库的知识,老师也给我们讲了很多社会现状和就业情况,让我们不同的角度了解这个专业的就业趋势。让我们在今后的学习中更有动力的充实自己,曾加自己的知识面和锻炼自己各方面能力。

  SQL server 实训小结篇二:

  为期五天的实习,很快就过去了,让我重新了解了丰富多彩的编程生活,感受到了学习的快乐,也感觉到了许许多多的专业问题,亲身体验了窗体与工程制成之后的喜悦之情。

  在实训期间,我学到了许多东西,遇到了一些困难,也看到了自己本身存在着许多问题。

  这次实训给我带来了危机感和压迫力,让人警醒,更加清楚自己的水平和重量,心里总有种被大石头压着的无力感,但是又凭着一种坚持,奋力的抗争着。所以也得出个结论,那就是——我得好好好好的努力啊。

  这已经是我们的第四次实训了,在我进入大学的这两年多里,或多或少的学到了一些专业的东西。

  我知道自己很爱玩,于是为了能够提高锻炼自己,我把本次为期一周的VB、SQL制作实训看作是一个通向社会,通向我的工作岗位的“理论与实践相结合的桥梁”。在本周的实训和学习,我一直知道此次实训的目的,也知道我自己的目的,同时也清楚目前自己的不足——缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作,所以我是认真的对待这次实训的。

  在这次实训中,我也有许多收获。首先,我体会到了作为一个VB设计师,不会将VB与SQL结合的痛苦和尴尬;然后,我发现了很多以前都不曾注意到的细节;其次,在实训中,我对作为一名编程者应该学习的内容做了一个更深层次的理解;最后,我还从这次实训中看到了自己很他人的差距,危机意识增强,为了不使这个差距拉大,甚至赶上前面的同学,我会努力的。

  本次实训,给我最深刻、最刻骨铭心的感觉就是累,不仅每天白天要一整天对着一台机器,而且到了晚上还要对着这台机器来一个法式的“秉烛夜谈”,可惜的是没有浪漫的事前发生,我也只是对牛谈情而已,不似李白的“举杯邀明月,对影成三人”啊,我就和一部会说话的机器唧唧歪歪。我时常想,以后的日子里,如果我成为了一名编程师也会是这样吗?好像很无聊的样子啊。好动的我一定坐不住吧。可是,我也知道,为了衣食父母,为了生存,为了未来,现在我还没有任何的资格想这个问题,时间不对,而现在最最应该想的是——我要怎样成为一个顶级的编程师。当我终于有能力的时候,才是考虑无不无聊的问题,我还是明白这一点点。

  经过多番的努力和辛酸,我成功地完成了这次过程艰辛的实训,而且我从中体会到了一种叫做‘成功的喜悦’的感觉,那种小有成就的兴奋是只有置身其中的人才能体会的,就好比我啊,虽然知道笑到最后的才是老大,但是偶尔阿Q一下来调节生活乐趣也是的一项很必要的事情吧。 总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中走出来,面对现实,为我将来走上社会打下了扎实的基础,铺了一条五光十色的大马路。而且,我也体会到了前人总结出的许多的实践经验,而且一直都知道技术永远是工资的基础,社会是不会要一个一无是处的人的,所以,为了生活庸俗一点,努力一点,多累一点,好好学习技术,将来才有吃大餐的钱呀。

  因此,我知道,作为在校电商专业的大专生,我能做的就是好好的吸取知识,努力的提高自己的技术水平和自身的综合素质,提高自己的表达能力、写作能力和合作能力。如此,出了社会,自己有了能力,到时候才会是 “吃嘛嘛香”,并且很牛逼的是自己选公司,而不是悲惨的等待公司来选。我相信在不久的未来,会有属于我自己的一片天空,而且这片天空会很蓝很蓝,没有黑黑的乌云,只有灿烂的阳光!

  在编程的过程中遇到问题,可以说得是困难重重,这毕竟是第一次编程这么多,这么认真,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说代码不熟悉,还好通过老师的细心指导才能达到最终效果„„通过这次程设计与制作实训,一定把以前所学过的知识重新温故。

  这个星期是我们SQL Server 数据库管理课的实训,经过一个星期的实训,让我领会到了许多平时课堂上所没有接受的课外知识,很让人受益匪浅,懂得如何去运用,而进行的一次分析设计综合的训练。而本次实训的目的是让我们掌握数据库系统的原理、技术。将理论与实际相结合,应用现有的数据库管理系统软件,规范、科学地完成一个设计与实现。

  这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。我们实训的另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单SELECT语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。

  使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。存储过程、触发器也是我们实训的内容之一, 在操作中有建立存储过程,执行存储过程,及查看和修改存储过程,这些都是非常基础的东西,但对用户却是非常重要的呢,只有熟悉了T_SQL语言,才能更好的掌握更多的东西。我们还学习了,SQL管理、数据的导入、导出、备份和还原。有SQL Server 安全访问控制;登录账户的管理;数据库角色的管理;用户权限管理。维护数据库的安全是确保数据库正常运行的重要工作。数据的备份是对SQL Server数据事务日志进行拷贝,数据库备份记录了在进行备份操作的数据库中所有数据的状态。而数据的备份还分为数据库完整备份、差异备份、事务日志备份、文件及文件组备份。做数据备份就是为了以后的数据库恢复用。在实训内容上我们还做了仓库管理数据库,其中的要求包含了许多数据库的对象,综合了我们所学的许多知识,让我们更努力的把所学到的东西运用上去。

  实训课是在学习与探索中度过的,短暂的一星期实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如仓库管理数据库的初步设置、数据备份与还原的步骤,如何建立视图、触发器等一系列的问题,正是在老师和同学的共同努力之下,我们才一步步把问题解决了,最终完成了不可能完成的任务。

  短短的5天VB程序设计又结束了。在这5天的实训中,给我们更大的感觉是设计的任务繁重。程序设计的严密性,让我们清楚的了解了VB这一课程。只有亲身经历过,才知道其中的滋味。VB设计实训,对我们各方面的要求更是提高了一大步。

  “要想为事业多添一把火,自己就得多添一捆材”。 通过此次实训,我深深体会到了积累知识的重要性。有些题目书本上没有提及,所以我就没有去研究过,做的时候突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但还是浪费了许多时间,这一点是我必须在以后的学习中加以改进的。另外一点,也是在每次实训中必不可少的部分,就是不懂的同学间可以互相帮助,有些东西感觉自己做的是时候明明没什么错误,偏偏最后运行时候就是有错误,让其同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点。这在以后的工作或生活中也很关键的。

  5天的实训结束了,收获颇丰,总的来说我对这次实训还是比较满意的,它使我学到了很多东西,虽说有点头疼,但是真的很感谢学校能够给学生这样实训的机会,让我们明白了,只有多做,才能熟能生巧,才能游刃有余。我深刻理解了什么是程序设计,它不仅仅是一份职业,更是一份细心+一份耐心+一份责任心=人生价值的诠释。同时我也认识到要做一个合格的设计工作者并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人,所以我们要更多更快得从一个学生向工作者转变。 总而言之,这次实训让我对程序设计工作有了比较清晰的认识,并在实际操作过程中找出自身存在的不足,对今后的会计学习有了一个更为明确的方向和目标。

  只有经历过,才知道其中的滋味”,对我而言,可以说通过这几天的实训课,真真切切的让我了解了什么是VB, 通过实训,我对本课程的认识进一步加强。

  SQL server 实训小结篇三:

  一、实训目的

  1.熟练掌握SQL Server数据库的设计及其对象的基本操作。

  2.熟练掌握数据查询、视图、存储过程和触发器的使用方法。

  3.熟练掌握vb应用程序中界面设计的方法。

  4.通过实训,使学生了解数据库系统在实际应用中的开发方法及设计过程,为今后从事管理信息系统的研究、开发、应用提供必要的知识,更好地完成各种计算机应用和开发任务。

  二、课程设计报告内容

  1.实训内容

  学生信息管理工作是学校管理工作的重要组成部分,现在相当一部分学校的学生管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生信息管理系统已经成为学生管理部门的迫切需要。程设计的题目是高校学生信息管理系统,本项目实现的功能主要包括以下内容:

  (1)完成数据的录入和修改,并提交数据库保存。其中的数据包括:专业信息、班级信息、学生信息、选修课程信息和成绩信息等,系统能够自动避免重复信息。

  (2)实现信息查询,主要包括学生信息查询、选修课程信息查询和成绩信息查询等。

  (3)实现数据的删除功能:对数据进行删除操作。系统能够通过用户给出的条件查询所要删除的数据,并提示用户确认是否删除。若确定,则把相关信息从数据库中删除。

  (4)报表功能。包括指定学生的选课情况和指定课程的选修情况。 高校学生信息管理系统采用C/S体系结构,按照客户端设计和数据库设计两部分进行。客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器等,采用Visual Basic 6.0作为开发工具;服务器端则采用SQL Server 2000作为数据库管理系统,负责后台的数据处理。

  2.系统功能模块设计

  学生信息管理客户端主要对学生信息、课程信息、学生成绩信息进行管理,该系统分4个模功能块,如图所示。

  3.实训设备或软、硬件

  硬件:PⅣ及以上性能的PC机

  软件: Windows XP操作系统;VB6.0;SQL Server 2000数据库系统

  三、结论

  1.数据库设计

  数据库的设计主要是在服务器端建立数据库和数据表,并实现数据处理功能。根据系统需求分析和功能设计,可以将数据规划为学生实体、课程实体、选课实体三个实体。在了解了数据库结构设计概念以后,开始创建数据库和数据表。首先,用查询分析器创建student数据库,创建过程中需要注意修改操作系统文件名到新创建的文件夹。然后创建专业信息表spe_Info、班级信息表class_Info、课程信息表course_Info、学生信息表stu_Info、成绩信息表score五个表。在数据库及数据表创建完成后,对SQL Sever服务器端数据进行处理。首先创建stucourse_View视图。在数据表的创建过程中应注意,因为学号、专业编号、班级编号等是一一对应的,所以学号在数据表中应设置为主键,设置主键的语句为:stu_No char(6) NOT NULL PRIMARY KEY 。由于系统对专业信息表等五个表的操作主要有:添加、修改、删除,所以,针对stu_Info、course_Info和score_Info三个表定义相应的储存过程,以便在Visual Basic中根据需要调用对应的储存过程。由于系统对student数据库中数据进行添加、修改、删除操作时,应保证数据的完整性,所以需对触发器进行定义以保证数据库数据的完整性。对stu_Info表定义的UPDATE触发器trg_stu_update的设计功能是:当修改stu_Info表中某个学生的学号的同时修改score_Info表中该学号对应记录相应的值。在完成了数据库及数据表的创建后,为保证系统功能的实现,需对数据库用户权限进行设置,在用户栏中设置用户及登录密码,维护数据库的安全是确保数据库正常运行的重要工作。最后完成数据库的设计后,要对数据库进行备份。数据库的备份时对SQL Sever数据事务日志进行拷贝。做数据备份就是为了方便的数据库恢复用。建数据库是为了与所设计的程序相连接,连接数据库需用到ADO访问数据库。如要连接SQL Sever服务器中的student数据库,用如下代码对

  Connection的DefaultDatabase

  属性值进行设置:Cnn.

  DefaultDatabase=”student”。

  2.系统功能实现

  “学生信息管理系统”系统功能的实现,主要是在VB中对系统模块进行设计,并连接数据库以达到系统功能的实现。由于程序是利用ADO完成对数据库的访问和操作的,所以在对模块的设计前需要添加ADO库。本系统还需要用到ToolBar控件和MSFlexGrid控件,前者用于连接数据库,后者用于以表格形式显示数据库表的内容。本系统主要用于学生信息管理,主要任务是用计算机对学生各种信息进行日常管理,如:查询、修改、增加、删除。首先是公共模块中定义全局变量及子程序。在模块中Public MyConnection As New ADODB.Connection 语句用于建立与数据库的连接。而Public SQLUsername As String 用于存放SQL的登录账号。对ChangeFormPos(frmMain As MDIForm, frm As Form)子程序定义用于确定调用窗体在主窗体中的显示位置。对登录窗口的设计要用到了ComboBox控件,使在登录时用户可以直接从列表中选择。在设计登录窗体时,需要确保数据库是否连接。在对主窗体MDIformMain的设计中需要添加MDI窗体,在设计过程中对控件的名称及属性的设置要细心,我开始就是由于将登录控件的属性值打成了cmbOK而使系统无法运行。在设计专业管理窗口时,第一次用到了MSFlexGrid控件,该控件的作用是以表格形式显示二维字符数组中每个单元的数据。常

  用于处理复杂的二维数据表的问题。如校历表、学生宿舍表、学生班级成绩表等。这是实训过程中所学到的新的知识。通过txtSpeNo.Text = frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row, 1) txtSpeName.Text = frmSpe.MSFlexGrid1.TextMatrix(frmSpe. MSFlexGrid1.Row, 2) txtSpeNo.Enabled = False语句达到单击MSFlexGrid控件中某记录行时,将该记录的字段值显示在对应的控件中。学生信息管理模块主要是实现学生信息的增加、修改、删除、查询和生成报表等功能,它的子窗体包括添加、修改学生信息窗体、学生信息查询窗体、学生选课报表。在设计学生选课报表时,用到了DataReport报表,这也是以前没有用到的知识。使用DataReport报表可以使显示的信息更加明了并可以方便打印。在报表设计完成后,将以下程序添加到frmStu窗口的工具栏“报表”按钮程序段中,DataEnvironment1.Commands(1).Parameters(1).Value = _

  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) StuDataReport.Show,当按下“报表”按钮时,则显示当前MSFlexGrid.TextMatrix(MSFlexGrid1.Row,1)的值所指定学号的学生的所有选课信息。

  四、结束语

  两周的实训终于结束了,这次实训的内容是应用SQL Server数据库设计VB程序设计来设计“学生信息管理系统”。虽然时间只有短短的两周,但使我获益匪浅,感慨良多。使我感受最深的有如下几点:第一,实训是个人所学知识的应用,是综合能力的检验。要想学好数据库,除了平时的理论功底外,还需要一定的时间动手能力,操作能力,要学会灵活应用所学的知识。第二,通过这次实训,我深深地体会到积累知识的重要性,平时学习的不努力,在实训时必定会遇到很多的麻烦。

  此次实训让我有了扩宽知识面及提升技术能力的机会,我真正领会到实践与理论相结合的重要性。本次实训的目的是让我们掌握数据库系统的原理、及将理论与实践相结合熟练熟练掌握SQL Server数据库的设计及其对象的基本操作。

  虽然在实训过程中遇到了许多难点和问题,但在老师和同学们的帮助下,最终解决了这些问题并熟练的掌握了SQL Server数据库的设计及其对象的基本操作以及VB应用程序中界面设计的方法。通过实训,使我了解了据库系统在实际应用中的开发方法及设计过程,为今后从事管理信息系统的研究、开发、应用提供必要的知识,更好地完成各种计算机应用和开发任务。

 

看了SQL server 实训小结还看了:

数据库基础知识试题及答案
篇三:sql查询子表数据

  数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。以下是由小编整理关于数据库基础知识试题及答案的内容,希望大家喜欢!

  数据库基础知识试题及答案

  (1)下列关于数据库的叙述中,正确的是

  A、数据库减少了数据冗余

  B、数据库避免了数据冗余

  C、数据库中的数据一致性是指数据类型一致

  D、数据库系统比文件系统能够管理更多数据

  【答案】A

  【解析】数据库的主要特点是①实现数据共享。②减少数据的冗余度。③数据的独立性。④数据实现集中控制。⑤数据一致性和可维护性,以确保数据的安全性和可靠性。⑥故障恢复。

  (2)在窗体中要显示一名教师基本信息和该教师所承担的全部课程情况,窗体设计时在主窗体中显示教师基本信息,在子窗体中显示承担的课程情况,则主窗体和子窗体数据源之间的关系是

  A、一对一关系

  B、一对多关系

  C、多对一关系

  D、多对多关系

  【答案】B

  【解析】窗体中的窗体称为子窗体,包含子窗体的窗体称为主窗体,主窗体和子窗体常用来表示一对多的关系。根据题意,主窗体和子窗体数据源之问的关系就是教师实体集和课程实体集之问的关系。一名教师可以承担多门课程,但是一门课程只能由一个教师承担。所以是一对多的关系,因此选择B选项。

  (3)Access数据表中的“记录”,在关系数据模型中对应的概念是

  A、字段

  B、元组

  C、属性

  D、域

  【答案】B

  【解析】Access数据表表中的每一横行称为一条记录,在关系数据模型中对应的概念是元组。

  (4)下列不能建立索引的数据类型是

  A、文本型

  B、备注型

  C、数字型

  D、日期时间型

  【答案】B

  【解析】索引是表中字段非常重要的属性,能根据键值加速在表中查找和排序的速度,并且能设定表中记录的唯一性。在ACCESS中,备注字段类型是不能被索引的。

  (5)从多个关系中抽取出所需要的属性组成新关系,应使用的操作是

  A、查询运算

  B、连接运算

  C、投影运算

  D、选择运算

  【答案】B

  【解析】关系运算包括投影、选择和联接。选择运算是从关系中找出满足给定条件的那些元组,这种运算是从水平方向抽取元组;投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解;连接运算是将两个关系拼接成一个新的关系,生成的新关系中包含满足条件的元组。选择运算和投影运算都是针对于一个关系进行操作,而连接运算是针对多个运算进行操作。

  (6)在关系数据模型中,域是指

  A、字段

  B、记录

  C、属性

  D、属性的取值范围

  【答案】D

  【解析】在关系模型中,属性的取值范围称为域,因此本题应选择D选项。

  (7)关系数据库管理系统中所谓的关系指的是

  A、各元组之间彼此有一定的关系

  B、各字段之间彼此有一定的关系

  C、数据库之间彼此有一定的关系

  D、符合满足一定条件的二维表格

  【答案】D

  【解析】在关系性数据库管理系统中,系统以各种各样二维表格的形式记录管理信息,所以关系就是符合满足一定条件的二维表格。

  (8)下列选项中,不是Access数据库对象的是

  A、查询

  B、表

  C、窗体

  D、记录

  【答案】D

  【解析】Access数据库由数据库对象和组两部分组成,其中数据库对象分为七种,包括:表、查询、窗体、报表、数据访问页、宏和模块。记录不属于数据库对象。

  (9)下列与Access表相关的叙述中,错误的是

  A、设计表的主要工作是设计表的字段和属性

  B、Access数据库中的表是由字段和记录构成

  C、Access不允许在同一个表中有相同的数据

  D、Access中的数据表既相对独立又相互联系

  【答案】C

  【解析】Access数据库中的表是由字段和记录构成,设计表的主要工作是设计表的字段和属性,Access中的数据表既相对独立又相互联系。若Access没有设置主键,则可以在同一个表中输入相同的数据。因此选项c错误。

  (10)用Access数据库管理技术处理的数据不仅能存储为数据库文件,还可以以多种文件格式导出数据,但不支持导出的文件格式是

  A、Word文件

  B、Excel文件

  C、PDF文件

  D、PNG文件

  【答案】D

  【解析】用Access数据库管理技术处理的数据可以以多种文件格式导出,包括EXCEL、WORD、PDF、XPS、XML、HT-ML等格式,但不包括PNG文件格式。因此选项D正确。

看过“数据库基础知识试题及答案“的人还看了:

sql的多表查询
篇四:sql查询子表数据

一、多表联合查询

通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。

两个表连接有四种连接方式:

* 相等连接

* 不等连接(看作单表查询)

* 外连接

* 自连接(自关联)

1.相等连接

通过两个表具有相同意义的列,可以建立相等连接条件。使用相等连接进行两个表的查询时,只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中

显示雇员名称和所在部门的编号和名称。

执行以下查询:

SELECT a.ename, b.id, b.dname

FROM employee a,dept b

WHERE a.id=b.id

说明:相等连接语句的格式要求是,在FROM从句中依次列出两个表的名称,在表的每个列前需要添加表名,用“.”分隔,表示列属于不同的表。在WHERE条件中要指明进行相等连接的列。

以上训练中,不在两个表中同时出现的列,前面的表名前缀可以省略。所以以上例子可以简化为如下的表示:

SELECT ename, b.id, dname

FROM employee a,dept b

WHERE a.id=b.id

2.外连接

在以上的例子中,相等连接有一个问题:如果某个雇员的部门还没有填写,即保留为空,那么该雇员在查询中就不会出现;或者某个部门还没有雇员,该部门在查询中也不会出现。 为了解决这个问题可以用外连,即除了显示满足相等连接条件的记录外,还显示那些不满足连接条件的行,不满足连接条件的行将显示在最后。外连操作符为(+),它可以出现在相等连接条件的左侧或右侧。出现在左侧或右侧的含义不同,这里用如下的例子予以说明。

使用外连显示不满足相等条件的记录。

显示雇员名称和所在部门的编号和名称。

执行以下查询:

左连接方法一(推荐使用,简洁):

SELECT ename, b.id, dname

FROM employee a,dept b

WHERE a.id(+)=b.id

左连接方法二:

SELECT ename, b.id, dname

FROM dept b

LEFT JOIN employee a ON a.id=b.id

注意:不管dept是否存在,employee都会显示

3、自连接(一般用在树形权限结构中)

自连接就是一个表,同本身进行连接。对于自连接可以想像存在两个相同的表(表和表的副本),可以通过不同的别名区别两个相同的表。

SELECT worker.ename||' 的经理是 '||manager.ename AS 雇员经理

sql数据库多表查询的子查询

FROM employee worker, employee manager

WHERE worker.mgr = manager.empno;

------------

执行结果为:

1.SMITH 的经理是 FORD

2.ALLEN 的经理是 BLAKE

3.WARD 的经理是 BLAKE

注:在操作多表联合查询时,若出现以下情况,将形成笛卡尔积

– 联接条件被省略

– 联接条件无效

– 第一个表中的所有行被联接到第二个表中的所有行上

为了避免笛卡尔积,请始终包括有效的联接条件

何为笛卡尔积?

笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。

二、统计查询

通常需要对数据进行统计,汇总出数据库的统计信息。

比如,我们可能想了解公司的总人数和总工资额,或各个部门的人数和工资额,这个功能可以由统计查询完成。

Oracle 提供了一些函数来完成统计工作,这些函数称为组函数,组函数不同于前面介绍和

使用的函数(单行函数)。组函数可以对分组的数据进行求和、求平均值等运算。 组函数只能应用于SELECT子句、HAVING子句或ORDER BY子句中。组函数也可以称为统计函数。

组函数:

AVG:求平均值

COUNT:求计数值,返回非空行数,*表示返回所有行

MAX:求最大值

MIN:求最小值

SUM:求和

STDDEV:求标准偏差,是根据差的平方根得到的

VARIANCE:求统计方差

组函数中SUM和AVG只应用于数值型的列,MAX、MIN和COUNT可以应用于字符、数值和日期类型的列。组函数忽略列的空值。

使用GROUP BY从句可以对数据进行分组。所谓分组,就是按照列的相同内容,将记录划分成组,对组可以应用组函数。

如果不使用分组,将对整个表或满足条件的记录应用组函数。

在组函数中可使用DISTINCT或ALL关键字。ALL表示对所有非NULL值(可重复)进行运算(COUNT除外)。DISTINCT表示对每一个非NULL值,如果存在重复值,则组函数只运算一次。如果不指明上述关键字,默认为ALL。

求雇员表中不同职务的个数

SELECT COUNT(DISTINCT job) FROM employeesql数据库多表查询的子查询

按职务统计工资总和

SELECT job,SUM(sal) FROM employee GROUP BY job

按部门和职务分组统计工资总和

SELECT deptno, job, sum(sal) FROM employee

GROUP BY deptno, job;

统计各部门的最高工资,排除最高工资小于3000的部门。

SELECT deptno, max(sal) FROM employee

GROUP BY deptno HAVING max(sal)>=3000;

按职务统计工资总和并排序

SELECT job 职务, SUM(sal) 工资总和

FROM employee

GROUP BY job

ORDER BY SUM(sal);

求各部门平均工资的最高值

SELECT max(avg(sal)) FROM employee GROUP BY deptno

子查询

我们可能会提出这样的问题,在雇员中谁的工资最高,或者谁的工资比SCOTT高。通过把一个查询的结果作为另一个查询的一部分,可以实现这样的查询功能。

具体的讲:要查询工资高于SCOTT的雇员的名字和工资,必须通过两个步骤来完成, 第一步查询雇员SCOTT的工资,

第二步查询工资高于SCOTT的雇员。

第一个查询可以作为第二个查询的一部分出现在第二个查询的条件中,这就是子查询。出现在其他查询中的查询称为子查询,包含其他查询的查询称为主查询。

子 查询一般出现在SELECT语句的WHERE子句中,Oracle也支持在FROM或HAVING子句中出现子查询。子查询比主查询先执行,结果作为主查 询的条件,在书写上要用圆括号扩起来,并放在比较运算符的右侧。子查询可以嵌套使用,最里层的查询最先执行。子查询可以在SELECT、INSERT、 UPDATE、DELETE等语句中使用。

子查询按照返回数据的类型可以分为单行子查询、多行子查询和多列子查询。

查询比SCOTT工资高的雇员名字和工资

SELECT ename, sal FROM employee

WHERE sal>(SELECT sal FROM employee WHERE empno=7788);

查询雇员表中排在第6~9位置上的雇员

SELECT ename,sal FROM (SELECT rownum as num,ename,sal FROM employee WHERE rownum<=9 )

WHERE num>=6;

说明:子查询出现在FROM从句中,检索出行号小于等于9的雇员,并生成num编号列。在主查询中检索行号大于等于6的雇员。

注意:以下用法不会有查询结果

SELECT ename,sal FROM employeesql数据库多表查询的子查询

WHERE rownum>=6 AND rownum<=9

集合运算

多个查询语句的结果可以做集合运算,结果集的字段类型、数量和顺序应该一样。 Oracle共有4个集合操作

UNION:并集,合并

sql查询子表数据

http://m.myl5520.com/shitiku/54934.html

展开更多 50 %)
分享

热门关注

光现象物理试题的范文汇总七篇

物理试题

高一物理试题精选三篇

物理试题

理科二模物理试题范文五篇

物理试题

九年级物理试题附答案(锦集5篇)

物理试题

初中生物理试题六篇

物理试题

初三上学期物理试题汇编4篇

物理试题

九年级物理试题范文(精选四篇)

物理试题

初三物理试题及答案(合集5篇)

物理试题

初中物理试题【3篇】

物理试题

初中物理试题及答案范文(精选七篇)

物理试题