- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
问题: 统计cj表中每个学生的选课门数和平均分。要求输出学号、选课门数和平均分。 在分组基础上对查询结果进行记录的筛选,使用“分组依据”选项卡上的“满足条件”按钮。 建立联接条件时注意点: (1)在建立联接条件时,联接条件两边字段有左右之分。如果两个表是一对多的关系,一般“一”表字段在左,“多”表字段在右。 (2)联接不必基于完全匹配的字段,可基于“like”“==”“”“”条件设置不同的联接关系。 (3)联接条件和筛选条件类似,二者都先比较值,然后选出满足条件的记录。不同之处在于筛选是将字段值和筛选值进行比较,而联接条件是将一个表中的字段值和另一个表中的字段值进行比较。 4.3 SELECT-SQL语句 4.3.1 概述 SQL(Structured Query Language,结构化查询语言)是美国国家标准局ANSI确定的关系型数据库语言的标准。VFP支持SQL。 利用查询设计器和视图设计器所做的许多设计工作,最终实质上都是生成一个SELECT-SQL命令。 查询设计器生成的SELECT-SQL命令保存在.qpr文件中,可以用“查询”菜单的“查看SQL命令”项来查看。 查询内容:SELECT子句 (1) 如果多个项具有相同的名称,则应在这些项名前加上表的别名和一个句点,以防止出现重复的列。 (2) 输出项可以是字段、常量、表达式和用户自定义的函数。 如果查询结果中包含源表中的所有字段,可使用“*”符号。 (3) 可以使用AS子句指定查询结果中的各个项的标题。 查询结果去向:INTO子句——指定在何处保存查询结果。 查询结果去向是可选项,缺省结果是查询浏览窗口。 条件查询:WHERE子句—— 指定筛选条件。 (1)筛选条件可以包含子查询,但嵌套不能太深。 (2)当多表查询时,也可以用WHERE子句实现多表之间的连接。 分组查询:GROUP BY子句——对查询结果进行分组。 (1)分组字段可以是字段名或表达式,也可以是该列在查询结果中的列位置(最左边的列编号为1) (2)用于分组的字段不一定是输出项。 (3)HAVING子句指定包括在查询结果中的组必须满足的筛选条件。 查询结果的排序:ORDER BY子句——根据列的数据对查询结果进行排序。 (1)每个排序项必须对应查询结果中的一列。 (2)排序项可以是输出列的列名或别名,也可以是查询结果中的列位置(最左边的列编号为1) (3)ASC 指定以升序排列,是ORDER BY的默认选项。 DESC指定以降序排列。 杂项 [ALL/DISTINCT]:设置是否允许重复纪录。 [TOP nExpr[PERCENT]]:设置结果的记录范围。 4.3.3 SELECT-SQL应用举例 单表查询 例:查询xs表中所有学生的学号、姓名 Select xs.xh,xs.xm from sjk!xs 例:查询所有学号以“01”开头的学生的基本情况 Select * from sjk!xs where like(“01*”,xh) 例:查询成绩有不及格的学生的学号(有多门不及格的学生只显示一次) Select distinct cj.xh from sjk!cj where cj.cj60 例:从高到低显示cj表中“01”号课程的学生的成绩 Select cj.xh,cj.cj from sjk!cj; where cj.kcdh=“01”; order by cj desc(或 order by 2 desc) 2.多表查询 例: 查询成绩不及格的学生名单 SELECT DISTINCT xs.xm ; FROM sjk!xs INNER JOIN sjk!cj; ON xs.xh=cj.xh; WHERE cj.cj60 用WHERE子句实现多表之间的联接,查询可改写为: SELECT DISTINCT xs.xm ; FROM sjk!xs,sjk!cj; WHERE xs.xh=cj.xh AND cj.cj60 例:查询成绩不及格的学生的姓名、课程名称和相应的成绩 Select xs.xm,kc.kcm,cj.cj; from sjk!xs inner join sjk!cj inner join sjk!kc; on cj.kcdh=kc.kcdh; on xs.xh=cj.xh; where cj.cj60 三表及三个以上的表联接时,要注意表联接的顺序 用WHERE子句实现多表之间的联接 Select xs.xm,kc.kcm,cj.cj; from sjk!xs ,sjk!cj, sjk!kc; where xs.xh=cj.xh; and cj.kcdh=kc.kcdh; and cj.cj6
文档评论(0)