您好,欢迎访问三七文档
查询与视图使用查询设计器建立查询•VisualFoxPro可以使用查询工具(查询向导、查询设计器等)可以创建查询.•查询是指预先定义好的一个SQLSELECT语句•建立的查询以扩展名为.QPR的文件保存在磁盘上这是一个文本文件。建立查询•利用查询设计器建立查询的基本步骤如下:(1)打开查询设计器(2)进行查询设置(3)运行查询(4)保存查询•查询设计器与SQL语言的对照单表查询•1.使用查询设计器创建单表查询,查询所有选修了课程的学生的学号(去掉重复值)。•SQL语句:•selectdistinct学号from选课•利用查询设计器创建,产生的SQL语言为:•SELECTDISTINCT选课.学号;•FROM成绩管理!选课•2.使用查询设计器查询年龄大于20的女生学号,姓名,性别,年龄,并按照学号降序排列•SELECT学生.学号,学生.姓名,学生.年龄,学生.性别;•FROM成绩管理!学生;•WHERE学生.年龄20;•AND学生.性别=女;•ORDERBY学生.学号DESC多表查询•1.使用查询设计器创建多表查询,查询所有成绩大于90的学生姓名和课程名称。•SELECT学生.姓名,选课.成绩;•FROM成绩管理!学生INNERJOIN成绩管理!选课;•INNERJOIN成绩管理!课程;•ON课程.课程号=选课.课程号;•ON学生.学号=选课.学号;•WHERE选课.成绩90•2.查询选修了“C语言”的学生的姓名和成绩•SELECT学生.姓名,选课.成绩;•FROM成绩管理!学生INNERJOIN成绩管理!选课;•INNERJOIN成绩管理!课程;•ON课程.课程号=选课.课程号;•ON学生.学号=选课.学号;•WHERE课程.课程名称=C语言函数的使用•统计每门课的最高分,最低分,平均成绩,选修人数以及课程号和课程名称•SELECT课程.*,COUNT(*),AVG(选课.成绩)as平均成绩,max(选课.成绩),;•min(选课.成绩);•FROM成绩管理!课程INNERJOIN成绩管理!选课;•ON课程.课程号=选课.课程号;•GROUPBY课程.课程号排序1.先按成绩升序,成绩相同再按学号降序检索所有学生的学号、姓名、课程名称、成绩select学生.学号,学生.姓名,课程.课程名称,选课.成绩from学生,选课,where学生.学号=选课.学号and课程.课程号=选课.课程号orderby选课.成绩,学生.学号desc–SELECT学生.学号,学生.姓名,课程.课程名称,选课.成绩;–FROM成绩管理!学生INNERJOIN成绩管理!选课;–INNERJOIN成绩管理!课程;–ON课程.课程号=选课.课程号;–ON学生.学号=选课.学号;–ORDERBY选课.成绩,学生.学号DESC•2.查询年龄最小的两个学生的信息SELECT*TOP2FROM学生ORDERBY年龄•SELECTTOP2*;•FROM成绩管理!学生;•ORDERBY学生.年龄特殊运算符–BETWEEN……AND(在什么范围之内)–查询成绩不及格的学生选课信息。•SELECT*FROM选课WHERE成绩BETWEEN0AND59–LIKE(字符串匹配)–查询课程名中带有‘计算机’字符的课程信息。•SELECT*FROM课程WHERE课程名称LIKE%计算机%“•查询所有王姓同学的信息Isnull查询没有成绩的学生的学号,姓名,选修课程名称连接方式修改•查询所有学生选修的课程和成绩(结果包括学号、课程名称、成绩,用左连接)•SELECT课程.课程名称,选课.学号,选课.成绩;•FROM成绩管理!课程LEFTOUTERJOIN成绩管理!选课;•ON课程.课程号=选课.课程号查询去向•在查询设计器中可以根据需要将查询结果定位到各种情况。查询结果默认的输出去向是以浏览窗口的形式显示在屏幕上。•选择菜单“查询→查询去向”,或在“查询设计器”工具栏中选择“查询去向”按钮•有七种输出格式可供选择:(1)浏览:结果显示在浏览窗口内。(2)临时表:查询结果存储在暂时的只读表文件中。(3)表:将查询结果存储在一个表文件。(4)图形:使用MicrosoftGraph程序将查询结果输出为表单文件,运行表单,查询结果以图形的方式显示出来。(5)屏幕:将查询结果直接在VisualFoxPro屏幕上输出,此时还可以附带输出到打印机。(6)报表:将查询结果输出到报表文件中。(7)标签:将查询结果输出到标签文件中。4.6VisualFoxPro视图4.6.1视图的概念•在关系数据库中,视图也称为窗口,即视图是操作表的窗口,可以把它看作是从表中派生出来的虚表(依赖于表,不独立存在)。•在涉及视图的时候,常把表称为基本表。•视图的数据只能存在于内存中,而不能记录在磁盘上,视图的结果保存在数据库中。•当关闭数据库后视图中的数据将消失,当再次打开数据库时视图从基本表中重新检索数据。•通过视图可以查询表,也可以更新表,但只有在包含视图的数据库打开时,才能使用视图.•使用视图可以从表中提取一组数据,而改变这些记录的值,可把更新结果送回基本表中.•VisualFoxPro支持两种视图建立工具:使用工具(视图向导、视图设计器等)和SQL命令。4.6.2SQL命令定义视图1.定义视图–视图是根据对表的查询定义的,其命令如下:CREATE[SQL]VIEWView_name[(Column_name[,Column_name]…)]ASSelect_statement–例如:CREATEVIEWStudent_courseAS;SELECT学生.院系,学生.学号,学生.姓名,选课.课程号,选课.成绩;FROM学生,选课where学生.学号=选课.学号2.视图的删除–在SQL语言中,不存在修改结构的命令,但是可以删除视图。其命令为:–DROPVIEWView_name–例如:dropviewStudent_course使用视图设计器建立视图•VisualFoxPro提供了视图向导和视图设计器建立视图。1.建立视图–创建视图前应打开相关数据库–可以使用以下方法打开视图设计器建立视图:①用CREATEVIEW命令打开视图设计器建立视图。②选择“文件”菜单下的“新建”命令,或单击“常用”工具栏上的“新建”按钮,打开“新建”对话框,然后选择“视图”项并单击“新建文件”按钮打开视图设计器建立视图。③在“项目管理器”对话框的“数据”选项卡下将建立视图的数据库分支展开,并选择“本地视图”项或“远程视图”,然后单击“新建”按钮打开视图设计器建立视图–视图设计器是建立和修改视图最直接、最方便、最有效的工具。–【例4.55】实例学生成绩管理系统:建立视图Student_course,内容是全部学生的学号、姓名、院系、课程号、成绩信息。–视图设计器有和查询设计器的使用方式几乎完全一样。主要有三点不同:①查询设计器的结果是将查询以.QPR为扩展名的文件形式保存在磁盘中;而视图设计完成后,在磁盘上找不到类似的文件,视图的结果保存在数据库中;②由于视图是可以更新的,所以它有更新属性需要设置,为此在视图设计器中多了一个“更新条件”选项卡。③视图设计器没有“查询去向”的问题。视图更新基本表更新在一个活动周期内(即在一次打开数据库和关闭数据库之间)视图和基本表已经成为两张表,默认对视图的更新不反映在基本表中,对基本表的更新在视图中也得不到反映当关闭数据库后视图中的数据将消失,当再次打开数据库是视图从基本表中重新检索数据。“更新条件”选项卡中选中“发送SQL更新”,2.视图与数据更新3.视图的修改–视图的修改也是在视图设计器中进行。在项目管理器中只要选中要修改的视图,单击“修改”按钮,即可以打开视图设计器。4.视图的使用–视图可以使用USE命令来打开,就像打开一个表一样;–可以为之建立临时索引,可以建立与其他视图或表之间的临时关联,–可以用对表操作的任何命令对其中显示出的数据进行必要的处理等等。本章小结•本章重点学习了关系数据库标准语言SQL.•本章同时介绍SQL工具----查询设计器和视图设计器,利用两种工具可自动生成SQL语句.•查询设计器可将SQL语句保存,•视图设计器可将查询的结果保存在当前数据库中称为视图,•视图是定制的虚拟表,可以像表一样进行各种查询。qfjsj.qfnu.edu.cn
本文标题:查询与视图
链接地址:https://www.777doc.com/doc-3924900 .html