|
9.1 SELECT-SQL语句 SQL —— 结构化查询语言,关系数据库语言的标准 VFP的SQL命令使用 Rushmore技术来优化性能,并且一个SQL命令可代替多个VFP命令。 VFP支持的SQL命令 CREATE CURSOR-SQL CREATE TABLE-SQL ALTER TABLE-SQL DELETE-SQL INSERT-SQL UPDATE-SQL SELECT-SQL SELECT-SQL命令的语法格式(见P175) SELECT-SQL命令 SELECT Js.ximing, COUNT(Js.gh), SUM(Js.jbgz), ; AVG(Js.jbgz); && “字段”选项卡 FROM jxgl!js; && 数据源 WHERE js.ximing <> "外语系"; AND a.ximing <> “中文系”; && “筛选”选项卡 GROUP BY js.ximing; && “分组”选项卡 ORDER BY 4 DESC && “排序依据”选项卡 SELECT-SQL应用-(示例1) 1.基于单个表的查询示例 显示JS表中所有教师的工号和姓名(从一个表中选取两个字段) SELECT js.gh, js.xm ; FROM jxgl!js 显示XS表中学号以“95”开头的学生情况。 SELECT * FROM jxsj!xs WHERE like("95*",xh) Sele * from xs where substr(xh,1,2)=‘95’ SELECT语句—示例(2) 从高到低显示CJ表中代号为“01”课程的学生的学号和成绩 SELECT cj.xh,cj,cj FROM jxsj!cj ; WHERE cj.kcdh=“01” ; ORDER BY cj.cj DESC 基于多个表的查询示例 显示XS和ZY两个表中三个字段xh,xm, zydh的内容,并根据zydh字段联接两个表。 SELECT xs.xh, xs.xm, zy.zymc ; FROM jxsj!x s, jxsj!zy; WHERE xs.zydh = zy.zydh SELECT语句——示例(4) 显示CJ表中有不及格成绩的学生的xh和xm,多门不及格者显示一次,且显示开始的5条记录。 SELECT DISTINCT cj.xh,xs.xm ; FROM jxsj!cj,jxsj!xs; WHERE cj.cj < 60 AND cj.xh = xs.xh SELECT语句——示例(5) 含有计算字段的查询 分组显示CJ表中的课程代号及最高分 SELECT cj.kcdh, MAX(cj.cj) as “最高分” FROM jxsj!cj ; GROUP BY kcdh SELECT语句——示例(6) 查询每门课程的课程代号和名称以及最高分,并把查询结果保存到kc_maxcj.dbf表文件中(把两个表中的字段内容保存到第三个表中)。 sele cj.kcdh,kc.kcm,max(cj.cj) as“最高分”; FROM jxsj!cj, jxsj!kc ; WHERE cj.kcdh=kc.kcdh ; 查询和视图的重点 |