在VFP中如何巧用Select-SQL查询

下 :
要 求 根 据 提 供 的两 个 基 本 数 据 库 表 按 实 际 管 理 需 要 进 行 查
询 并 显 示 相 应 的查 询 结 果 。 1 简单 查 询 、统 计 并 显示 . 如图 l 所示 。
择班 要级
( )窗 体 界 面 1
如 图 3所 示 。

计豆 矶厦崩3
5 5
lt Q e —S L查 询 完 成 任 务 的 情 况 下 ,应 当尽 可 能 将 它 作 为 查 询 c
的首 选 设 计 方 式 。 在 进 行 查 询 设计 之 前 ,首 先 需 要 对 数 据 系统 进 行 一 个 完 整 的分 析 ,弄 清 楚各 种 数 据 是 怎 样 从 原 始 数 据 转 变 成 为 需 要 的结 果 数 据 的 ,然 后 根据 实 际需 求 利 用 查 询 完成 相 关 的程 序 设 计 。

在V P 如何巧用SIt Q 查询 F中 ecS L e-
用 V P编 写 完 整 的应 用 程 序 时 ,查 询 系统 往 往 是 程 F
序 设 计 时 不可 缺少 的重 要 部 分 。 在 V P中经 常使 用其 内置 S — F e
全 校各班 数如下 厂 级人 表:—一
班级
某 项 完整 信 息 ,那 么 利 用 模 糊查 询 就 可 以 根据 提 供 的部 分 信 息 完 成查 询 。
( ) 学 校 班 级 情 况 表 :cas ( 级 、专 业 、班 主 任 、课 2 ls 班
室)
请Байду номын сангаас
选 的 下 面 以按 学 生 “ 名 ” 模 糊 查 询 为 例 ,程 序 主 要 设 计 如 姓
或 :slc c u tf 级 1 s 校 班 级 个 数 f m c s ee t o n 班 a 全 r l s o a 注 : 利 用 同 样 方 法 可 以 查 询 全 校 不 同 专 业 的 班 级 个 数 或 不 同年 级 的班 级 个 数 。
2 查 询 、 计 并 按 一定 的顺 序 显 示 . 统
( )代 码 设 计 1 对 象 :F r o m1 ( 窗体 ) ,过 程 :A t a ( 象 激 活 时 ) c vt 对 i e s l 级 ,cu t( 级 ) a e e班 on 班 s班 级 人 数 f m s d n ru y班 r t e t o p b o u g
级 od rb 班 级 it; u srtmp re y no c ro e
基 本 数 据库 表 : ( )学 生 基 本 情 况 表 :s d n 班 级 、 学号 、姓 名 ) ( 1 t e t( u 大
概 30 0 0条记 录 ) 图 2 排 序显 示的 结 果
30 0 0人 中想 了 解 某 个 人 的 基 本 情 况 ,但 又 不 是 很 清 楚 此 人 的
下 面 以 本 人 在 实 际 VF P教 学 中 . 引 导 学 生 设 计 的 “ 生 学
学 籍 管 理 ” 应 用 程 序 为 例 ,着 重 介 绍 在 V P数 据 库 管 理 中 如 F
0 会 计 电算化 I T 0 会 计 电篁化 2 T
5 4 5 4
何 灵 活 运 用 Slc S L查 询 。 e t Q e—
02 25l 6 10 杜伟玲 0 227I 6 10 黄坚 0228f 6 10 黄明海 02 29l 6 10 黄雁容 0 220l 6 11 黄燕飞 0 221I 6 11 黄颖姿 022 2I 6 11 黄卓杰 02 23l 5 11 贾磊 02 24l 6 11 邝嘉恩
图 3 模 糊 查 询 的 结果 ( )查 询 代 码 2 对 象 :T x1 ( 本 框 ),过 程 :Itrcie h n e ( 改 控 et 文 nea t c a g 更 v
件 的值 时 发 生 ) ( & 根 据 文 本 框 中 输 入 的信 息 , 表格 中 信 息 实 时 变 化 且 & 显 示 符 合 查 询 条件 的相 关记 录 ) sl t ee c f m su e t wh r 姓 名 r o t d n ee le ”%”+ i k
Thif r Grd1r c r o r ey =1 so m. i . o ds u c tpe e Th so m . i .e o d o r e ifr Grd1r c r s u c =” t mp’ e ’ Th soi . id1r fe h ifrBGf .e r s
0计簋机 应用2 6 0 计算机应用 2 6 0计算机应用 2 5 0计算机 应用2 6 0计筻机 应用2 6 0计簋机应用 2 B 0计算机应用 2 6 0计算机应 用2 6
0 汽 车维 修 1 6
班级人数
5 0
LLn J ,
・1
lc—S L查 询 ,不 仅 因为 Slc S L查 询 的运 行 效 率 非 常 之 et Q eet Q 快 ,而 且 它 与 S LSre Q evr的 标 准 语 法 很 相 近 。所 以在 能 用 S — e
清空I遗出I I t
图 1 简 单 查 询结 果 slc o n dsic 班 级 1 s全 校 班 级 个 数 f m td n ee t u tfi n t c t a r s et o u
计 茸机应用4 0 计篁机 应用2 计 算机应用5 6 0计算机 应用2 8 0 计算机应用 2 8 0 计篁机应用 2 6 0计算机 应用2 6
0汽 车维 修 2 6 0制 玲 6 0综台1 8 0 综 合2 6 O 电气技 术 T 0 电子 1 T 班 0 电 子2 T 班 0 电 子商 务 1 T O 电子商 务2 7
0广 告 T
5 3 5 3 4 8 4 8 4 9 4 7 5 0 5 4 5 5
合集下载

在VFP中利用SQL语言中的SELECT语句快速统计学生成绩

在VFP中利用SQL语言中的SELECT语句快速统计学生成绩

6 j 桶子蓝 1 誉琪韵 l 2 制越趣帜 3 } 蒋轩 张渊堑 4 桶家欣 2 9 王檬

浮} l 女 霉 复
8 1 5 8 o O 8 2 O 8 D5 8 O 7 95 7 70
9 6 . 0 9 50 蚴0 9 4 o 9 6 口 g l 0 9 40

中图分 类号 : T P 3 1
1 引言
对 考 试成 绩 进 行统 计 分 析 ,一 方 面可 以 检验 教 师 的教 学效 果 ,另 一 方 面也 可 以用 来 衡 量 学 生 的学 习状 况 。
函数 A V G ( c o l u m n )
描述 返 回某列 的平均 值
技术 与应用
V F P中利用 S QL语 言 中的 在 L E C T语句快速统计学生成绩

摘 要: S E L E C T语句 是结 构 化查 询语 言 S Q L中的数据 查 询命 令, 具 有 非常 丰 富的成 分 和强 大 的查 询 功能 ,本 文介 绍 了 S E L E C T语 句 的基本格 式 。 并 举例 说 明 了 S E L E C T语句 在对 学生成 绩 进行 统计分 析所起 的作用 。
9 50 9 7O 9 6 . 驰5 g 2 5 9 45 9 3 , 5
3 . 3 统计平均分
当 需 要 统 计 某

科 目的平 均 分 时 ,
我 们 就 要 用 到 函 数 a v g f ) , 学校 统计 平 均 分 时, 一 般 统计 的都 是 实考 平均 分 , 所 以 要 加 一个 条 件 : 科目 成绩 必须 大 于 0 。 [ 例3 】 统 计 七 年 级全校语文平均 分 具体 程序 为 :

VFP中select - sql命令及示例

VFP中select - sql命令及示例

select - sql命令功能从一个或多个表中检索数据。

语法SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]][Alias.]Select_Item [AS Column_Name][, [Alias.]Select_Item [AS Column_Name] ...]FROM [FORCE][DatabaseName!]Table [[AS]Local_Alias][[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN DatabaseName!]Table [[AS]Local_Alias][ON JoinCondition…][[INTO Destination]| [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT]| TO SCREEN]][PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOWAIT][WHERE JoinCondition [AND JoinCondition ...][AND | OR FilterCondition [AND | OR FilterCondition ...]]][GROUP BY GroupColumn [,GroupColumn ...]][HAVING FilterCondition][UNION [ALL]SELECT命令][ORDER BY Order_Item [ASC | DESC] [,Order_Item [ASC | DESC] ...]] 参数SELECT在 SELECT 子句中指定在查询结果中包含的字段、常量和表达式。

ALL查询结果中包含所有行 ( 包括重复值 )。

ALL 是默认设置。

DISTINCT在查询结果中剔除重复的行。

注意每一个 SELECT 子句只能使用一次 DISTINCT。

实验二 写出VFP数据库中相关SQL查询语句

实验二 写出VFP数据库中相关SQL查询语句

实验一Access 数据库操作班级:学号:姓名:【实验目的】:1. 掌握Visual FoxPro数据库中的SQL查询语句书写规则;2. 用select数据查询、create定义表、视图及用alter修改数据。

【实验环境】:硬件:计算机软件:windows XP操作系统和Visual FoxPro 6.0数据库管理系统。

【实验要求】:1、根据题目要求完成相关命令操作;2、在“操作依据”处写出SQL查询的命令结构和功能;3、将完整的SQL命令写到“SQL操作命令”中的相应位置。

4、本实验完成后,请发送到邮箱:wenqinhui@中作为本学期的第二次作业。

【操作依据】:1、单表查询Select <查询内容> from <表> where <查询条件> order by <排序字段> Asc|desc group by <分组字段> having <分组条件>2、连接查询(多表)(1) Select <查询内容> from <表1,表2……> where <连接条件> and <查询条件> order by <排序字段> Asc|desc group by <分组字段> having <分组条件>(2) Select <查询内容> from <表1 join 表2 join 表3……>;on 表1.XX=表2.XX;on 表2.YY=表3.YY;where <查询条件> order by <排序字段> Asc|desc group by <分组字段>;having <分组条件>3、插入记录(1)向指定表中插入记录的命令格式:Insert into <表>(字段名1,字段名2,……) values(字段值1,字段值2,……)(2)从指定数据组中插入记录值的命令格式:Insert into <表> from array <数据组名>4、更新数据Update <表> set <字段>=修改后的字段值 where <更新条件>5、用命令创建数据库和表建立数据库:Create database <数据库名>建立表:Create table|dbf <表名>(字段及类型)Check <有效性规则> [Error <提示信息>]Default <默认值>Primary key <主索引>Foreign key <普通索引> TAG <外表主索引字段> references <外部表名> 【SQL语句命令】:1、用SQL命令向“客户”表中插入一条记录。

在VFP中如何巧用Select_SQL查询

在VFP中如何巧用Select_SQL查询
基本数据库表: (1) 学生基本情况表: student (班级、 学号、 姓 名 ) (大 概 3000 条记录) (2) 学 校 班 级 情 况 表 : class (班 级 、 专 业 、 班 主 任 、 课 室) 要求根据提供的两个基本数据库表按实际管理需要进行查 询并显示相应的查询结果。 1. 简单查询、 统计并显示 如图 1 所示。
当然利用 Selቤተ መጻሕፍቲ ባይዱct–SQL 查询还可以完成更复杂的查询设计, 同时还能把查询的结果以不同的文件格式保存或直接输出到打 印机。
(作者: 杜丽平)
图 4 精确查询结果
(2) 查询代码设计 1) 对象: Form1 (窗体), 过程: Active (对象激活时) (&& 在组合框中添加各班级名称信息) bo1.style=0 bo1.rowsourcetype=3 bo1.rowsource=" sele dist 班 级 from student order by 班级 into; cursor Combo1" 2) 对 象 :Combo1(组 合 框 ),过 程 :InteractiveChange(更 改 控 件的值时发生) (&& 根 据 组 合 框 中 选 择 的 对 象 在 指 定 表 格 中 显 示 查 找 到 的记录) sele * from student where 班 级 ==bo1.displayvalue into cursor aa1 Thisform.grid1.recordsourcetype=1 Thisform.grid1.recordsource=" aa1" With ThisForm.Grid1 .ColumnCount = 3 .Column1.Width = 100 .Column2.Width = 50 .Column3.Width = 80

vfp中select语句用法

vfp中select语句用法
若在SELECT子句中加入了Fox Pro函数,则意味着该语句不具备可移植性。
SQL
FoxPro支持在Select子句中使用用户定义函数。但是由于在其它系统中不支持用户定义函数。因此在开发 可能移植的系统时不要使用用户自定义函数。
Select
Select子句中的通配符
*(星号)只能使用在字段串列参数中。 代表来源数据库中所有的字段。 如果select是在二个以上的数据库中进行 查询的,则要在号码前加上数据库别名。
另一种情况是文字数据中正好包含有星号、百分号、下划线(例如:软件部__业务组),此时可使用关键
字ESCAPE告诉SQL哪一个字符是常数字符而非通配符。例如:
select company from customer
where company like"%\_%" escape"\"
此时escape所指定字符(即\)后的那一个字段(此处为下划线_)将被视为常数字符而非通配符。
当SQL遇到DISTINCT关键字时,即建立一个中间表。然后以SELECT子句中的所有字段建立一个唯一索引,
然后将索引用于中间表,并把索引中的记录放入查询结果中。这样就消去了重复记录,但是当SELECT子句中
的字段很多时,这一过程会很慢。
用WHERE子句说明选择记录的条件
通常查询并不希望取出所有记录,而只是希望查出满足一定条件的记录,要做到这一点可以使用 句。WHERE子句把满足条件的记录作为查询结果。
*是SQL中的三个通配符之一(其它两个是和_ ,将在以后讨论),*只能出现在Select子句中,通配符
前可以用别名修饰,在此情况下表示要查询指定工作区中的全部字段•同时还可以给出其它字段名•如:
Select销售表•*,客户表•客户代码,客户表.客户名称;FROM销售表,客户表;

看实例学VFP:用SELECT语句创建查询

看实例学VFP:用SELECT语句创建查询

看实例学VFP:⽤SELECT语句创建查询看实例学VFP:⽤SELECT语句创建查询时间:2009-02-07 本站⽼马vfp中可以使⽤sql语句操作表,并且在使⽤sql语句操作表时不需要打开数据库。

本例介绍的是select查询语句(数据检索),关于select语句的格式请参考:select SQL 命令或sql语⾔教程。

在看实例学VFP:对表中记录进⾏定位与查找操作⼀⽂中,我们是使⽤locate语句作记录定位并同时使⽤了eof()函数,如果该函数返回真值,说明数据表中不存在所查询的记录并给出提⽰信息。

本例⽤sql语句对这⼀部分进⾏了改写。

与上例的区别⼤致的如下:1.本例依然使⽤表格控件作为数据显⽰控件,表单init时把“⽹站信息表”设为表格控件的数据源。

单击“查找”按钮后,将查询结果输出为⼀个临时表(Cursor)(当然也可以把查询结果输出为table,请读者⾃⾏尝试)。

2.本例没有使⽤locate定位,⽽是在命令按钮的click事件代码中对查询输出的临时表的记录数进⾏判断,如果该表的记录数>0,说明数据库中存在所查询的记录,则将该临时表设为表格控件的数据源并刷新表格;反之,则说明数据库中不存在所查询的记录,则⾸先给出提⽰信息,然后使⽤mand2.click()调⽤“恢复”按钮的click事件代码(即在vfp中也可以在⼀个对象的⽅法程序中调⽤另⼀个对象的⽅法程序,能够达到简化代码的⽬的)重置表格控件的数据源并刷新显⽰。

本例运⾏界⾯如下图:本例⽤到了“数据1”数据库中的“⽹站信息表”,关于该数据库的情况已经在看实例学VFP:⽰例数据库⼀⽂中给出,下⾯是制作步骤:⼀、新建表单form1,并将其caption属性设置为“⽤SELECT语句创建查询”,width属性值设为290,height属性值设为165,AutoCenter属性值设为.t.,并将其保存为“⽤SELECT语句创建查询.scx”。

VF中常用SQL命令使用方法

VF中常用SQL命令使用方法SQL(结构化查询语言)是关系型数据库管理系统中最常用的查询语言。

在VF中,使用SQL命令可以对数据库进行增删改查等操作。

以下是VF中常用的SQL命令使用方法:1.创建表格(CREATETABLE):用于创建数据库中的表格。

语法如下:```sqlCREATE TABLE table_namecolumn1 data_type,column2 data_type,...```例如:```sqlCREATE TABLE customersid INT PRIMARY KEY,name VARCHAR(50),age INT,email VARCHAR(100)```2.插入数据(INSERTINTO):用于向表格中插入新的数据。

语法如下:```sqlINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);```例如:```sqlINSERT INTO customers (id, name, age, email)```3.更新数据(UPDATE):用于更新表格中的数据。

语法如下:```sqlUPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;```例如:```sqlUPDATE customersSET age = 26WHERE id = 1;```4.删除数据(DELETEFROM):用于从表格中删除数据。

语法如下:```sqlDELETE FROM table_name WHERE condition;```例如:```sqlDELETE FROM customers WHERE id = 1;```5.查询数据(SELECT):用于从表格中查询数据。

语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```例如:```sqlSELECT * FROM customers WHERE age > 25;```6.排序数据(ORDERBY):用于按照指定列对查询结果进行排序。

vf结构化查询语言之SELECT讲解


SQL数据查询
• 练习:
• 2.在成绩表中要求按“总分”降序排列,并查询前3名学 生的记录,命令是 : • SELECT * TOP 3 FROM 成绩表 ORDER BY 总分 DESC • 3.在学生信息表按班级升序显示学号,姓名,出生日期, 住校否字段。 • SELECT 学号,姓名,出生日期,住校否 FROM 学生信 息表 ORDER BY 班级 ASC • 4.在学生表中按学号升序,班级降序显示学号和入学成绩 • SELECT 学号,入学成绩 FORM 学生表 ORDER BY 学 号 ASC,班级 DESC
SQL数据查询
• • • • • • • • • • 5.输出部分结果 格式: Select * TOP n [PERCENT] FROM…… Where…… Order by…… 功能: 显示满足条件的前几条记录。 说明:TOP短语一般跟在*号的后面。 TOP短语要与ORDER BY短语同时使用才有效。 不带PERCENT参数时,说明显示前n条记录;使 用PERCENT参数时,说明显示查询结果中前百 分之多少的记录。
在ORDER BY 中,排序项可以用输出字段或排列序号表示
SQL数据查询
例2 :查询“学籍”表中“学号”,“姓名”、“性别”、“出生日期”、 “年龄”和“专业”字段内容,按从年龄字段升序输出。
计算年龄可以用表达式: YEAR(DATE())-YEAR(出生日期)
SELECT 学号,姓名,性别,出生日期,; year(date())-year(出生日期)as 年龄,专业 ; FROM 学籍; ORDER BY 5 DESC 或ODER BY 年龄 DESC
SQL数据查询
二、SQL数据查询
1、简单查询(单表查询)

VFP第4章SQL的数据查询功能


查询的分类
1.条件查询:找出满足条件的记录; 2.分组查询:查询结果按列名或列名组合分组; 3.投影查询:查询对象的基本情况; 4.统计查询:在原数据表的基础上,经统计计算 后,输出统计结果; 5.联接查询:利用多表数据得到查询结果。
1.条件查询 利用WHERE<条件>子句在数据表中找出满足条 件的记录。常用的比较运算符。
此查询也可以写成: SELECT 姓名,入校总分; FROM 学生; WHERE 入校总分>(SELECT MAX(入校总分); FROM 学生; WHERE 性别='男'); AND 性别='女'
7.查询结果的排序 使用ORDER BY子句可以对查询结果排序,系统 默认为升序。ORDER BY子句必须出现在其他子句 之后。 例:查询选修了课程C140的学生学号和成绩,并按 成绩降序排列。 SELECT 学号,成绩; FROM 选课; WHERE 课程号="c140"; ORDER BY 成绩 DESC
例:查询选修.DBF中课程号为“c120”、“c140”、 “c150”、“c160”的平均成绩在80分以上的课程的 学生平均分。 SELECT 课程号,AVG(成绩) AS 平均分; FROM 选课 WHERE 课程号; IN('c120','c140','c150','c160'); GROUP BY 课程号 HAVING AVG(成绩)>=80
例:查询选修了“数据库”或“电子商务”课程的 学生学号、姓名、选课名称及成绩。 本例涉及三个表。WHERE子句中有两个联接条件 和一个筛选条件。 SELECT 学生.学号,姓名,课程名,成绩; FROM 学生,课程,选课; WHERE 学生.学号=选课.学号; AND 选课.课程号=课程.课程号; AND (课程名='数据库' OR 课程名='电子商务')

VF辅导:vfp查询(query)

⽣成SQL语句:不论是使⽤向导还是使⽤"查询设计器",其结果都是⽣成⼀条SQL语句.可以通过选择"查询"菜单(或者快捷菜单)中的"查看SQL"菜单项或单击"查询设计器"⼯具栏上的"SQL"按钮,即可看到所⽣成的select-sql语句. ⼀般情况下,⽤查询设计器创建查询的⽬的是通过交互设置,⽣成SQL命令,然后复制下来,粘贴到应⽤程序中或保存到查询⽂件中.如果对select-sql⽐较熟悉,完全可以不使⽤查询. 3.⽣成查询⽂件:查询创建完成后,单击"常⽤"⼯具栏上"保存"按钮或"⽂件"下的"保存"命令,输⼊⽂件名,⽐如Query1,系统⾃动为该⽂件加上扩展名.QPR,即⽣成了查询⽂件Query1.QPR.该⽂件中保存的是SQL语句.运⾏查询:(1).在项⽬管理器打开的情况下,选择查询⽂件,单击"项⽬管理器"上的"运⾏"按钮.(2)在查询⽂件打开的情况下,单击"常⽤"⼯具栏上的"运⾏"按钮或"查询"菜单中的"运⾏查询"命令,即可运⾏查询.(3)在命令窗⼝或应⽤程序中⽤DO命令运⾏查询,例如:do Query1.QPR 例⼀:查询男⼥职⼯⼈数,⼯资总额及平均⼯资,并按平均⼯资降序排序.查询输出必须包括性别,⼈数,⼯资总额和平均⼯资. 分析:本例按性别进⾏分组,即把所有性别相同的记录压缩成⼀个记录.利⽤count(),sum()和avg()函数可以对每⼀组记录进⾏计数,求和及求平均值.另外还有max()是求值函数,min()是求最⼩值函数. 1.新建⼀个查询,选"职⼯档案"表,在"查询设计器"对话框的"字段"选项卡中将下列字段和表达式设置到"选定字段"列表框中, 向"选定字段"列表添加表达式"count(*) as ⼈数"的⽅法:在"函数和表达式"⽂本框中输⼊表达式"count(*) as ⼈数",然后单击右侧的"添加"按钮即可,这⾥,给表达式"count(*)"起了⼀个别名"⼈数". 2.在"排序依据"选项卡中,选择"avg(职⼯档案.⼯资)"作为排序条件,设置为降序排序. 3.在"分组依据"选项卡中,把"可⽤字段"中的"职⼯档案.性别"字段添加到"分组字段"中.这样就完成了本例的查询要求. 4.如果在分组的基础上,还要对查询结果记录进⾏筛选,可以单击在"分组依据"选项卡中的"满⾜条件"按钮,打开"满⾜条件"对话框,例如输⼊"avg(职⼯档案.⼯资)<1000"。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档