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

合集下载

VFPselect详解、示例

VFPselect详解、示例

VFPselect详解、示例从一个或多个表中检索数据。

语法SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]][Alias.] Select_Item [ASolumn_Name][, [Alias.] Select_Item [AS Column_Name] ...]FROM [FORCE] [DatabaseName!]Table [[AS] Local_Alias][[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER JOINDatabaseName!]Table] Local_Alias][ONoinCondition …][[INTOtination] && into <tabel|cursor|ARRAY><名称> 可选项| [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| *查询结果中包含所有行 ( 包括重复值 )。

在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-SQL查询

在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 注 : 利 用 同 样 方 法 可 以 查 询 全 校 不 同 专 业 的 班 级 个 数 或 不 同年 级 的班 级 个 数 。

vfp中select统计多个字段的个数 -回复

vfp中select统计多个字段的个数 -回复

vfp中select统计多个字段的个数-回复VFP(Visual FoxPro)是一种基于面向对象的编程语言,被广泛应用于数据库管理和应用程序开发。

在VFP中,select语句被用于从数据库中检索数据。

本文将介绍如何使用select语句在VFP中统计多个字段的个数。

首先,让我们了解一下VFP中select语句的基本用法。

select语句用于从数据库表中选择数据,并可以对数据进行条件过滤和排序。

它的一般语法如下:SELECT [字段列表] FROM [表名] [WHERE 条件] [ORDER BY 排序]其中,字段列表指定了要选择的字段,可以是一个或多个字段;表名指定了要从中选择数据的表;条件用于过滤数据;排序用于对数据进行排序。

现在我们开始解决问题,即如何使用select语句在VFP中统计多个字段的个数。

假设我们有一个名为"Customers"的表,其中包含了以下字段:ID、FirstName、LastName和Country。

我们的目标是统计每个国家的顾客人数。

首先,我们需要使用select语句选择表中的数据,并按照Country字段进行分组。

代码如下:SELECT Country, COUNT(*) as CustomerCount ;FROM Customers ;GROUP BY Country ;INTO CURSOR CustomerCounts在上面的代码中,我们使用COUNT(*)函数对每个分组的数据进行计数,并使用as关键字给结果字段起一个别名"CustomerCount"。

INTO CURSOR关键字将结果存储到一个名为CustomerCounts的游标中。

接下来,我们可以使用SELECT语句从CustomerCounts游标中选择数据,以便查看每个国家的顾客人数。

代码如下:SELECT Country, CustomerCount ;FROM CustomerCounts ;ORDER BY CustomerCount DESCENDING在上面的代码中,我们选择了Country和CustomerCount两个字段,并使用ORDER BY关键字对CustomerCount字段进行降序排序,以便将人数最多的国家排在前面。

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”。

VFP中select命令格式详解(经典)

VFP中select命令格式详解(经典)

select 命令格式详解(记住基本、灵活使用)SELECT (1)FROM (2)WHERE (3)ORDER BY (4) TOP (5) GROUP BY (6) HA VING (7)INTO|TO (8)【注释】:(1)中格式主要有:①* &&所有字段②字段列表 &&字段之间用逗号分隔③字段名 DISTINCT &&取消重复字段④COUNT(*),SUM(××), A VG(××), MAX(××),MIN(××)&&带函数查询, ×× 表示数字字段名⑤AS 别名 &&用别名输出列标题(字段名)(2)中格式主要有: 表名或表名列表(3(4DESC 默认为升序。

(5)中格式主要为: <数值表达式> [PERCENT ] &&显示前多少(或百分比)结果,一般伴随order by 短语使用。

(6)中格式为:字段名 &&分组的依据。

(7)中格式为:过滤条件 &&该短语必须在使用GROUP BY 短语的前提下。

(8)中格式主要有:①INTO ARRAY <数组名> &&将查询结果存放到数组中;②INTO CURSOR <文件名> &&将查询结果存放到临时表中;③ INTO DBF|TABLE <文件名> &&将查询结果存放到永久表中;④TO FILE<文件名>[ADDITIVE] &&将查询结果保存到文本文件中。

如果带“ADDITIVE ”关键字,查询结果以追加方式添加到<文件名>指定的文件,否则,以新建或覆盖方式添加到<文件名>指定的文件;⑤TO SCREEN &&将查询结果保在屏幕上显示;⑥TO PRINTER &&将查询结果送打印机打印。

vfp中select语句用法

vfp中select语句用法

Visual FoxPro中的SQL Select查询基本的SQL Select (2)From 子句 (2)Select 子句 (2)SQL 和用户自定义函数 (2)Select 子句中的关键字和其它子句 (3)Select 子句中的通配符 (3)字段别名(AS) (3)用DISTINCT 消去重复的记录 (4)用WHERE 子句说明选择记录的条件 (4)选择条件 (4)连接条件 (4)SQL 和宏 (4)SQL 和字母大小写 (5)SQL 和索引 (5)用Order By 子句对结果排序 (5)列函数 (6)SQL 的列函数 (6)列函数中的DISTINCT (6)列函数的嵌套 (7)用GROUP BY 求分组小计 (9)GROUP BY 和DISTINCT 之间的选择 (9)HAVING 子句的使用 (10)用TOP 子句选择一定数量或一定百分比的记录 (13)查询结果的输出定向 (14)复杂查询 (15)子查询 (15)带子查询的IN 谓词和量词 (15)ANY|SOME (16)ALL (16)EXISTS (17)自身连接 (17)合并 (18)示例一.快速排名次 (19)示例二.选择重复的记录 (20)外连接 (21)什么是外连接? (21)用右外连接(Right Outer Join)选择记录 (21)用左外连接(Left Outer Join)选择记录 (22)用完全外连接(Full Outer Join)选择记录 (23)用内连接加外连接选择记录 (24)用内连接(Inner Join)选择记录 (25)用嵌套的连接(Nested Join)选择记录 (25)Visual FoxPro 5.0 中的新的FROM/JOIN 语法 (26)为了更加清晰 (27)用SQL Select 生成视图 (28)注意事项 (29)基本的SQL SelectFrom 子句在FROM 子句中指定要查询的表,若指定的表未打开,FoxPro 将自动打开指定的表,但在查询完成后,FoxPro并不自动关闭它所打开的表,若要在查询完成后关闭表,则必须以手动方式关闭它们。

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

SQL数据查询
3.统计查询
• 对数据表中数值型数据的查询结果进行统计 • 统计功能用VFP提供的库函数实现
函数名称
功能
返回值
统计一列中值Biblioteka 个数 Count(*)记录总数 Count(字段)字段不为空 的个数 计算一列值的总和 计算一列值的平均值 求某字段的最大值 求某字段的最小值
COUNT([DISTINCT] *|字段名) SUM(字段名) AVG(字段名) MAX(字段名) MIN(字段名)
第四章
结构化查询语言SQL
兴隆职教中心
詹亚萍
SQL
一、SQL的基本概况
1、SQL(structure Query Language)结构化查询语言,
是关系数据库的标准语言,所有关系数据库管理系统都支 持。 2、SQL功能: 数据的查询 :是SQL的核心,SELECT 命令
数据的定义
数据的操作 数据的控制
SQL数据查询
二、SQL数据查询
1、简单查询(单表查询)
格式: SELECT [ALL | DISCINCT ] [*] | <字段名> [AS <列标题>]…; FROM <表名> 功能:从指定的表或视图中查询记录数据 说明:
DISTINCT:指定输入结果时无重复记录
ALL:代表全部记录,ALL也是默认值 * :表示显示表中全部字段的信息 AS 列标题:可为某字段指定显示的别名 FROM <表名>:指定要查询的数据的表
SELECT * FROM 学籍 WHERE 年龄 IN (17,18,19)
SQL数据查询
⑥空值: IS NULL 、IS NOT NULL 功能:用来判断某字段值是否为空值 例:查询成绩表中,数学缺考学生的信息(数学成绩为空) SELECT * FROM 成绩 WHERE 数学 IS NULL
SQL数据查询
④格式匹配 LIKE 功能:用来进行字符串的匹配,字符串可以使用通配符%和_ %代表多个字符;_代表一个字符。 例:查询学籍表中姓名是“王”姓的所有记录 SELECT * FROM 学籍 WHERE 姓名 LIKE ”王%” ⑤ 包含:IN( ) 、NOT IN( ) 功能:判断是否是IN( )中的一个。 例:查询学籍表中年龄为17,18,19的学生记录
SQL数据查询
(1)查询指定列 例1 :查询学籍表中全部记录的学号和姓名
SELECT 学号,姓名 FROM 学籍
(2)查询全部列 例2.查询学籍表中的全部记录。 SELECT
* FROM 学籍
(3)查询指定列标题 例3:查询 “成绩”表中全部记录的姓名和数学+语文+英语 的列标题指定 为总分 SELECT 姓名,数学+语文+英语 AS 总分 FROM 成绩
SQL数据查询
(4)消除取值重复的行 例 4:查询图书借阅表中所借书的书名 SELECT DISTINCT 书名 FROM 图书借阅
SQL数据查询
练习
1.查询学生表中所有院系
SELECT 院系 FROM 学生 该结果中有重复值,要去掉从重复值,则命令为 SELECT DISTINCT 院系 FROM 学生 2. 查询全体学生
SELECT * FROM 学生
SQL数据查询
2、条件查询 用WHERE 子句来指定查询条件
格式: SELECT [ALL | DISCINCT ] [*] | <字段名> [AS <列标题>]…; FROM <表名>; WHERE <条件> 功能:从指定的表或视图中查询满足条件的记录 说明: where<条件>:指定查询的条件(与for条件相同)
SQL数据查询
(2) WHERE 条件中的运算符: ①关系运算符:=、<>、>、>=、<、<= ②逻辑运算符:NOT、AND、OR ③指定区间:BETWEEN …AND.. 例:查询并显示“学籍”表中“入学成绩”介于400至450之间的全 部记录。 SELECT * FROM 学籍 WHERE 入学成绩 BETWEEN 400 AND 500 等价于 SELECT * FROM 学籍 WHERE 入学成绩>=400 AND 入学成绩<=500
计数 求总和 求平均值 求最大值 求最小值
SQL数据查询
• • • • 例1查询课程表中记录总数并赋予列标题课程总数 SELECT COUNT(*)AS 课程总数 FROM 课程 例2 查询选修了课程学生人数列标题为选课人数 SELECT COUNT(DISTINCT 学号)AS 选课人数 FROM 课程 例3.查询成绩表中的学生证号为“024061808”成 绩的总和学生证号。 SELECT 学生证号, SUM(成绩)FROM 成绩表 WHERE 学生证号=”2024061808” 例4.查询成绩表中的学生证号为“2024061808” 成绩的平均值和学生证号。 SELECT 学生证号,AVG(成绩) FROM 成绩表 WHERE 学生证号= “2024061808”
SQL数据查询
(1) 查询满足条件的记录 例1 :查询学籍表中所有“男”学生的记录
SELECT *FROM 学籍 where 性别=“男”
例2:查询并显示“学籍”表中“入学成绩”大于400,并且是“男”学生 的记录。 SELECT * FROM 学籍 where 性别=“男” AND 入学成绩>400

• • • •
SQL数据查询
例5求出成绩表中的所有学生的最高期末成绩。 SELECT MAX(期末成绩) FROM 成绩表 例6求出成绩表中的所有学生的最低期末成绩。 SELECT MIN(期末成绩) FROM 成绩表
SQL数据查询
复习: 1.查询“部门”表的所有字段及所有记录。 SELECT * FROM 部门 2.查询”教师”表中所有记录的教师编号,部门编号,姓名和性别字段值 Select 教师编号,部门编号,姓名,性别 From 教师 3.查询“教师”表中所有教师的姓名和出生年份 SELECT 姓名,出生年份FROM 教师 4.查询“教师”表中所有职称为讲师的姓名,性别和所属部门编号
SELECT 姓名,性别,部门编号FROM 教师 WHERE 职称=“讲师”
5.查询“教师”表中所有工资在2000元和4000元之间的教师姓名和工资 SELECT 姓名,工资 FORM 教师 where 工资 BETWEEN 2000 AND 4000
相关文档
最新文档