VFP第五章SQL

合集下载

5章sql填空题

5章sql填空题

21、在SQL语句中空值用______表示。

答案: 1:NULL23、SQL SELECT语句为了将查询结果存放到临时表中应该使用______短语。

答案: 1:Into cursor#Into cursor cursorname24、查询设计器的筛选选项卡用来指定查询的_______。

答案: 1:条件#查询条件25、通过Visual FoxPro的视图,不仅可以查询数据库表,还可以______数据库。

答案: 1:更新40、查询设计器的"筛选"选项卡用来指定查询的______。

答案: 1:查询条件#条件42、假设图书管理数据库中有3个表,图书.dbf、读者.dbf和借阅.dbf。

它们的结构分别如下:图书(总编号C(6),分类号C(8),书名C(16),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))在上述图书管理数据库中,图书的主索引是总编号,读者的主索引是借书证号,借阅的主索引应该是______。

答案: 1:总编号+借书证号#借书证号+总编号43、假设图书管理数据库中有3个表,图书.dbf、读者.dbf和借阅.dbf。

它们的结构分别如下:图书(总编号C(6),分类号C(8),书名C(16),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))如果要查询借阅了两本和两本以上图书的读者姓名和单位,请对下面SQL语句填空。

SELECT 姓名,单位;FROM 图书管理!读者;WHERE 借书证号 IN(SELECT ______;FROM 图书管理!借阅;GROUP BY 借书证号;_____COUNT(*)>=2)答案: 1:借书证号2:HAVING49、下面各题使用如下的"教师"表和"学院"表"教师"表职工号姓名职称年龄工资系号11020001 肖天海副教授 35 2000.00 0111020002 王岩盐教授 40 3000.00 0211020003 刘星魂讲师 25 1500.00 0311020004 张月新讲师 30 1500.00 0411020005 李明玉教授 34 2000.00 0511020006 孙民山教授 47 2100.00 0611020007 钱无名教授 49 2200.00 07"学院"表系号系名01 英语02 会计03 工商管理使用SQL语句将一条新的记录插入学院表INSERT______学院(系号,系名)______("04","计算机")答案: 1:INTO2:VALUES#VALUE#VALU50、下面各题使用如下的"教师"表和"学院"表"教师"表职工号姓名职称年龄工资系号11020001 肖天海副教授 35 2000.00 0111020002 王岩盐教授 40 3000.00 0211020003 刘星魂讲师 25 1500.00 0311020004 张月新讲师 30 1500.00 0411020005 李明玉教授 34 2000.00 0511020006 孙民山教授 47 2100.00 0611020007 钱无名教授 49 2200.00 07"学院"表系号系名01 英语02 会计03 工商管理使用SQL语句完成如下操作(将所有教授的工资提高5%)______ 教师 SET 工资=工资*1.05 ______ 职称="教授"答案: 1:update#updat#upda2:where#wher59、______是指只有满足联接条件的记录才包含在查询结果中。

VFP实验5 SQL语言的应用-参考答案

VFP实验5 SQL语言的应用-参考答案

实验5 SQL语言的应用【实验目的】1.掌握SQL的基本语句的使用2.掌握SELECT命令的基本用法3. 掌握对查询的结果进行处理4.掌握用查询设计器建立查询的方法【实验内容与操作步骤】说明:红色字体为答案设置VFP的默认工作目录为D:\EX7,并完成以下各操作,将操作结果存入D:\EX5文件夹中。

1、使用SQL语句实现下列功能:(creat table 学生成绩(学号C(7),姓名C(8),入学成绩N(5,1))(2)使用ALTER TABLE命令,增加一个字段:性别C(2),并将“学号”的字段长度改为8。

alter table 学生成绩add 性别C(2)alter table 学生成绩alter 学号C(8)(insert into 学生成绩values("0503102","李丽",680,"女")insert into 学生成绩values("0603101","王庆",600,"男")或者是:Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503101”,”张海”,660,”男”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503102”,”李丽”,680,”女”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0603101”,”王庆”,600,”男”)庆”,600,”男”)(4)使用DELETE 删除“王庆”的记录。

dele from 学生成绩where 姓名="王庆"(5)使用UPDATE命令将所有人的“入学成绩”置为0。

update 学生成绩set 入学成绩=02、使用SQL语句中的SELECT命令来实现下列查询:(1)查询“学生.dbf”表中全部记录,输出“学号”、“姓名”、“性别”、“出生日期”和“入学成绩”这5个字段的内容;select 学号,姓名,性别,出生日期,入学成绩from 学生(2)查询“学生.dbf”表中的性别为男的所有内容,并按“学号”的降序排列;select * from 学生where 性别=”男” order by 学号(3)查询“学生.dbf”表中的全部学生中的入学最高分;select max(入学成绩) from 学生(4)查询“学生.dbf”表中的数学专业和英语专业的学生的学号,姓名和专业;select 学号,姓名,专业from 学生where 专业=”数学” or 专业=”英语”(5)查询“学生.dbf”表中的入学成绩在550到650之间的学生的学号,姓名和入学成绩,并按“入学成绩”的降序排序;select 学号,姓名,入学成绩from 学生where 入学成绩>=550 and 入学成绩<=650 order by 入学成绩(6)利用学生表中的数据创建一个查询,其结果包含学号、姓名、性别、出生日期、专业和入学成绩6个字段,查询结果按入学成绩由高分到低分排序,并将查询结果保存到一个“学生情况表.DBF”文件中;select 学号,姓名,性别,出生日期,专业,入学成绩from 学生order by 入学成绩desc into table 学生情况表【思考题】请参考教材6.4.3 嵌套查询、6.4.4 多表联接查询、6.4.5查询结果输出处理做如下练习。

vfp第五章

vfp第五章

建立视图: 方法一:“文件”菜单“新建” 选择“视图”[新建文 常用工具栏[新建] 件] 方法二:命令 格式:CREATE VIEW 功能:打开视图设计器建立视图。 方法三:编辑SQL命令CREATE VIEW …… AS ……
视图设计器:
说明:1)视图保存在数据库中,没有文件扩展名。 2)视图没有查询去向的设置。
例1:根据订货管理数据库中的职工表和仓 库表建立查询文件:职工查询.qpr (1)要求查询职工的职工号、仓库号、城 市和工资。 (2)要求只查询在上海或北京的职工信息。
例2:修改查询文件“职工查询.qpr”: (1)增加查询所有职工的年工资 (2)查询年工资最高的三个职工 (3)将查询结果显示在屏幕上
2、建立连接 方法一:“文件”菜单“新建” 选择“连接”[新建文 常用工具栏[新建] 件] 方法二:命令 格式:CREATE CONNECTION 功能:打开连接设计器。
3、设计远程视图 建立远程视图与建立本地视图方法基本一致,只是在打开视 图设计器前需要先选择“连接”或“数据源”。
注:建立远程视图时,要符合远程数据库的语法。
查询去向默认为:浏览
运行查询: 1)查询设计器打开时: 快捷键:Ctrl+Q 常用工具栏[运行]按钮 “查询”菜单“运行查询” 2)查询设计器关闭时: 命令:DO 查询文件名 说明:文件名必须带扩展名qpr 查看SQL SELECT语句: 查询设计器工具栏[查看SQL窗口]按钮 “查询”菜单“查看SQL” 查询设计器的局限性:只能设计比较简单的查询,嵌套查询 不能利用查询设计器实现,编辑了嵌套查询命令的.qpr文 件也不能运行。
1、数值转换成字符串:STR(N1[,N2[,N3]]) 功能:将N1的值转换成字符串,转换时根据需要自动进行四 舍五入。N2为转换后的总长度,N3为转换时保留的小数位 数。 说明: 1)N2默认值为10,N3默认值为0,当N3为负值时,表示对 整数位进行四舍五入。 2)设L为N1的四舍五入后的总长度,K为N1的整数部分长度。 3)若N2>L,则字符串加前导空格以满足长度N2。 4)若N2<L ①N2>=K,则优选满足整数部分而自动 调整小数位数。 ② N2<K,则返回N2个“*”。 例:N=1234.567 ?STR(N),STR(N,11),STR(N,10,2),STR(N,6,4) ?STR(N,5,-1),STR(N,5),STR(N,3)

vfp5 SQL

vfp5 SQL

TO PRINTER:将查询结果送打印机打印。
分组 GROUP BY子句用来定义或者划分字段的值成为多个 组,它能控制和影响查询的结果。 【例16】列出成绩表中选修3门课以上的学生姓名、 成绩及课程门数。 SELECT 姓名,成绩,CNT(课程号) AS门数; FROM XSQK,CJ; WHERE XSQK.学号=CJ.学号; GROUP BY CJ.学号; HAVING COUNT(CJ.学号)>=3
数据查询命令 SELECT [ALL|DISTINCT] [<表别名1>.]<表达式1> AS <列名1>] [,[<表别名2>.]<表达式2> AS <列名2>]…] FROM [数据库名!]<表名>[逻辑别名] [[INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER] JOIN [,<数据库2>!<表名2>[<逻辑别名2>]ON联接条件…] [INTO DBF|TABLE|CURSOR <表名>] [WHERE <连接条件> [AND <连接条件>…] [AND|OR <条件表达式>[AND|OR <条件表达式>…]]] [GROUP BY<分组表达式>[,<分组表达式>…]] [HAVING <筛选条件>] [UNION[ALL]SELECT <语句>] [ORDER BY <排序项> [ASC|DESC][,<排序项>…]]
【例13】查询信息系和计算机系的读者人数 SELECT CNT(*) FROM DZ ; WHERE 单位=“计算机系” OR 单位=[信息系] 或SELECT CNT(*) FROM DZ ; WHERE 单位 IN (“计算机系” ,[信息系]) 4.对查询结果排序(ORDER BY…[ASC|DESC]) 【例14】按数学成绩升序检索出学生信息 SELECT * FROM XSCJ ORDER BY 数学 【例15】按数学成绩降序检索出学生信息 SELECT * FROM XSCJ ORDER BY 数学 DESC

05Visual FoxPro中SQL语言的应用

05Visual FoxPro中SQL语言的应用

22
5.2.1 单表查询(11)
3. 对查询结果排序
用户可以用ORDER BY子句对查询结果按照一个或多 个属性列的升序(ASC)或降序(DESC)排列, 缺省值为升序。
例5-23:查询所有学生的入学成绩,查询结果按入学成绩的 降序排列。 select 学号,姓名,入学成绩; from 学生表; Order by 入学成绩 desc
4
过程化语言示例
煮饭
买米 淘米 开始煮 等待 饭好
江西财经大学信息管理学院《数据 库应用》课程组
5
非过程化语言示例
饭店吃饭
点菜 上菜
江西财经大学信息管理学院《数据 库应用》课程组 6
5.1 SQL语言概述(3)
SQL语言结构简洁,功能强大,简单易学。 SQL语言是关系数据库管理系统的标准语言。 SQL分成3类: 以记录为
江西财经大学信息管理学院《数据 库应用》课程组 15
5.2.1 单表查询(4)
2. 选择表中的若干元组 选择一个表中的若干元组(或记录)操作,是对 该表实行选择操作。其方法是使用SELECT语 句的WHERE子句中的条件。
江西财经大学信息管理学院《数据 库应用》课程组
16
5.2.1 单表查询(5)
分组汇总 排序
简单格式:
select 字段列表 from 数据来源列表 where 条件
江西财经大学信息管理学院《数据 库应用》课程组 12
5.2.1 单表查询(1)
1. 单表基本查询 单表查询的含义:from子句只有一个数据表。 (1) 查询所有列
例5-1:返回“学生表”中的所有行和所有列。 open database “d:\我的数据库项目\数据库\教学管理数据 库.dbc“ select *; from 教学管理数据库!学生表 例5-2:查询成绩表中的所有记录。 open database “d:\我的数据库项目\数据库\教学管理数据 库.dbc“ select *; from 成绩表

VFP SQL查询ppt课件

VFP SQL查询ppt课件

记录1 记录2 记录3 记录4 记录5 记录6
记录2
where
记录4 记录5
限定 记录6
Group by
分组
记录2
记录2
记录5 记录4
Having 记录5
记录6 限定
【例】求各门课程的平均成绩。
SELECT 课程号,AVG(成绩) FROM xkcjb GROUP BY
结果如图所示。
【例】求平均成绩在80分以上的各课程的课程号与 平均成绩。
英语3班
英语3班
机械制造4班 机械制造4班 机械制造4班 机械制造4班
照片
gen gen gen gen gen gen
gen
gen
gen gen gen gen
简历
memo memo memo memo memo memo
memo
memo
memo memo memo memo
(c) 学号 20050010 20050010 20050020 20043567 20043567 20050025 20050010 20050010 20050005 20050025 20045643 20050035 20045643
SELECT * FROM kcb ORDER BY 学分
结果按学分从低到高显示。
【例】 按学号升序,相同学号再按成绩降序查询出 全部学生成绩情况。
SELECT * FROM xkcjb ORDER BY 学号,成绩 DESC
5)带计算函数的查询
在SELECT语句中,使用SQL语言提供的一些 查询计算函数,可以增强查询功能。基本的查询 计算函数的格式及功能如下表所示。

1987-7-2
何芳

05 VFP课件09版 SQL语言 4学时

05 VFP课件09版 SQL语言 4学时
SQL语言是一种高度非过程化的语言,它没有必要一步步地 告诉计算机“如何”去做,而只需要描述清楚用户要“做 什么”,SQL语言就可以将要求交给系统,自动完成全部工 作。
第 21 页 共 92 页 目 录 上一步 下一步 关 闭
单选题
1.SQL是那几个英文单词的缩写____。
A)Select Query Language
目 录
上一步
下一步
关 闭
SELECT 学生.学号, 学生.姓名, 学生.性别, 学生.出生日期;
FROM 学生选课库!学生;
ORDER BY 学生.学号
第 29 页
共 92 页
目 录
上一步
下一步
关 闭
SELECT 学生.学号, 学生.姓名, 学生.性别, 学生. 出生日期, 学生成绩.数学, 学生成绩.外语, 学
出生日期"和”是否团员”字段,并按"
出生日期"先后顺ቤተ መጻሕፍቲ ባይዱ排序,"出生日期"相
同的情况下,按"学号"升序排序,并使 所有字段可更新。
第 13 页
共 92 页
目 录
上一步
下一步
关 闭
第 14 页
共 92 页
目 录
上一步
下一步
关 闭
SELECT 学生.学号, 学生.姓名, 学生.性别,
学生.出生日期, 学生.是否团员;
AND 入学成绩>=600 ;
AND 性别='男'
多个查询条件可以用AND、OR或者NOT连接
第 42 页
共 92 页
目 录
上一步
下一步
关 闭
第 43 页

二级VFP课件 SQL语言、查询与视图

二级VFP课件  SQL语言、查询与视图
SQL 功能 数据定义 数据操纵 数据查询 动 词 CREAT、ALTER INSERT、DELETE、UPDATE SELECT
第五章 SQL语言、查询与视图

5.1.1 SQL的数据定义 1、定义表


命令格式: CREAT TABLE <表名> (<字段名1> <类型> ( <长度> [,<小数 位数> ] ) [,<字段名2> <类型> (<长度> [,<小数位数>] ) ] 例5.1 用SQL创建学生表




第五章 SQL语言、查询与视图

1、简单查询 (1) 只有FROM子句


查询指定列 • 例8.6 查询学生表中的学生的年龄 • SELCET 姓名,年龄 FROM 学生 查询全部列 列出表中的所有字段,一是在SELECT后列出所有字段名, 一是使用“*”。(注意,有的数据库管理系统不支持“*”) • 例8.7 查询学生表中全体学生的所有信息。 • SELCECT * FROM 学生 •或 • SELECT 学号,姓名,性别,出生日期,简历
第五章 SQL语言、查询与视图
例5.17 查询每个学生的选课成绩 (1) 内部联接 SELECT 学生.*,成绩.* FROM 学生 INNER JOIN 成绩; ON 学生.学号=成绩.学号 (2) 左联接,除满足条件的记录外,左表中不满足条件的记录 也出现在结果中 SELECT 学生.*,成绩.* FROM 学生 LEFT JOIN 成绩; ON 学生.学号=成绩.学号 (3) 右联接,除满足条件的记录外,右表中不满足条件的记录 也出现在结果中 SELECT 学生.*,成绩.* FROM 学生 RIGHT JOIN 成绩; ON 学生.学号=成绩.学号

VFP课件(5-关系数据库标准语言SQL)

VFP课件(5-关系数据库标准语言SQL)

例2:查询课程表(kcb)中的所有记录。
SELECT * FROM kcb
例3:从xsb表中检索高考分数大于630分的学生姓名
SELE xm FROM xsb WHERE gkfs>630 例4:从xsb表中检索高考分数大于630分的学生所在的专业
sele dist zy from xsb where gkfs>630
例19
求在WH1仓库工作的职工最高工资值 解:sele max(工资) from zg where 仓库号=„WH1‟

5.2.7 分组与计算查询

ቤተ መጻሕፍቲ ባይዱ
在SQL SELECT命令中,常用GROUP BY子 句对查询结果进行分组。 GROUP BY短语的格式如下:

GROUP BY <组列>[, <组列…>][HAVING <过滤条件>] 可以按一列或多列分组,还可以用HAVING进一步限 定分组的条件。
SQL语言的特点


③ ④
SQL是一种一体化的语言。它包括了数据定义、数 据查询、数据操纵和数据控制等方面的功能,它可以 完成数据库活动中的全部工作。 SQL是一种高度非过程化的语言。用户不必告诉计 算机怎么去做,只需要告诉计算机做什么即可。 SQL语言非常简洁,易学易用。 SQL可以直接以命令方式交互使用,也可以嵌入到 程序设计语言中以程序方式使用。
查询已经确定供应商号的dgd信息 解:sele * from dgd where 供货商号 is not null

查询空值时使用IS NULL, =NULL是无效的。因为 空值不是一个确定的值,所以不能用“=”进行比 较。
5.2.9别名与自连接查询

计算机VFP程序设计第五章 关系数据库标准语言SQL(一)

计算机VFP程序设计第五章 关系数据库标准语言SQL(一)

第五章关系数据库标准语言SQL一、SQL简介SQL(Structured Query Language)是结构化查询语言的缩写。

例1:SQL是哪几个英文单词的缩写?( )A)Standard Query LanguageB)Structured Query LanguageC)Select Query LanguageD)以上都不是二、数据查询1、简单查询格式:SELECT ——FROMSELECT:给出要在查询结果中显示的字段名、表达式或常量FROM:给出了查询的数据来源于哪个表例1:从student中查询所有学生的姓名、出生日期、入学分数例2:查询所有学生的详细信息备注:* 表示显示表中所有字段练习1:从职工中检索所有的工资值练习2:检索仓库关系中的所有元组例3:查询显示所有学生的姓名,年龄,院系号,入学分数和增加了5%后的入学分数,并将增加了5%的入学分数显示为“新分数”SELECT 姓名,INT((DATE( )-出生日期)/365) 年龄,院系号,入学分数, ;入学分数*1.05 AS 新分数 FROM student备注:AS 的用法2、条件查询格式:SELECT ——FROM——WHEREWHERE:给出查询的条件(1)WHERE条件中常见的关系运算例:查询显示入学分数在500分以上的学生的姓名和入学分数SELECT 姓名,入学分数 FROM student WHERE 入学分数>578 例:查询2系和4系中所有82年以后出生的非党员的学生的姓名,出生日期,入学分数SELECT 姓名,出生日期,入学分数 FROM student WHERE ;(院系号="2" OR 院系号="4") AND 出生日期>={^1982/1/1} and 党员=.F.备注:WHERE 的用法练习:检索工资多于2220元的职工号(2)WHERE条件中特殊运算符的应用(p118)1、NOT ,!= ,<>例:查询所有不是83年出生的学生2、LIKE :字符匹配运算符。

第5-2章Visual FoxPro与SQL概述

第5-2章Visual FoxPro与SQL概述

SELECT 学生信息.性别, count(学生信息.学号);
FROM 学生信息,课程考试; WHERE学生信息.学号=课程考试.学号;
GROUP BY 性别;
HAVING 数学成绩<60
注: count(学生信息.学号)为函数,统计人数。
10、小结 SQL功能很强,上述功能和举例只是一 小部分,主要目的是“抛砖引玉”,使 大家对SQL有初步了解。有兴趣的话可 以深入学习。
9、分组及使用库函数统计查询 可以将查询结果进行分组,然后再对每个 分组进行统计。SQL使用GROUP BY来确 定分组依据;使用HAVING确定分组条件。 需要说明的是, WHERE 和HAVING都是 用来指定查询条件, WHERE作用于表和 视图,而HAVING作用于分组。例如统计 数学考试不及格的男生、女生人数可用以 下命令:
SQL具有集合特性,即所有SQL语句都可用集 合输入、输出,这种集合特性允许允许一条 SQL 语句的输出结果作为另一条语句的输入。 SQL不要求用户指定数据存储方法, SQL使用 查询优化器,它能决定数据存储的最快方法。 SQL支持多种数据库平台,主要的关系数据库 管理系统都支持SQL语言。所以,用SQL语言 编写的程序都是可以移植的。
8、嵌套查询 可以将若干条SELECT语句嵌套使用,即嵌套查 询。 进行嵌套查询时,要注意各SELECT语句层次, 必要时用“()”引起。例如:查询与学号 “041001”同年出生的同学的学号、姓名和出生 年月,命令如下: SELECT 学号,姓名 ,出生年月 FROM 学生信息 WHERE year(出生年月 ) = (SELECT year(出生年月 ) FROM 学生信息 WHERE 学号=„041001‟) 注: year(出生年月 ) 为函数。

数据库应用 VFP 6.0第5章 关系数据库标准语言SQL

数据库应用 VFP 6.0第5章 关系数据库标准语言SQL
功能:更新满足条件的记录的值,若省略WHERE, 更新全部记录的值
例14 将 图书 表中出版社为 电子工业 的图书的 定价增加10%
3、删除与恢复
(1)删除格式: DELETE FROM <表名> [WHERE <条件>] 功能:逻辑删除符合条件的记录,若省略WHERE
将删除全部记录 (2)恢复格式: RECALL[范围] [for<条件> ][WHILE <条件>] 功能:恢复符合条件的记录,若省略for 条件,则
求<表达式>的和
位置在 select...from
例16 从 图书 表中检索出共包含哪些出版 社,并以出版商为列名显示
例17 从 图书 中输出 出版社 书名 单价,其 中单价即为定价
例18 从 图书 表中查询表中图书的种类 最 高单价 最低单价 平均价
5.4.2 条件查询
select ……from……where…… 查询条件:比较运算符、逻辑运算符、
2、SELECT中常用的系统函数
在实际应用中经常有统计、求平均值、汇总等 操作。SQL提供一些常用的系统函数。
函数 AVG(<表达式>)
COUNT(*) MIN(<表达式>) MAX(<表达式>) SUM(<表达式>)
说明 求<表达式>的平均值
统计记录个数 求<表达式>的最小值 求<表达式>的最大值
例5.1 SELECT基本语句应用
open database 学生 (1)选择学生表的全部记录 select * from 学生 (2)从学生表中选择入学成绩不低于500分的记录
select 姓名, 入学成绩 from 学生 where 入学成绩>=500 (3) 不重复显示学生表的性别记录

Visual FoxPro数据库课件:第5章_SQL语言与视图设计1

Visual FoxPro数据库课件:第5章_SQL语言与视图设计1

多表联接(Join…On联接)
Select … From <表名1><联接类型1><表名 2>…><联接类型n-1><表名n> On <条件1>… On <条件n-1>
1) [Inner] Join:内联接,仅联接两个表中符合 条件的数据记录。例 2) Left Join:左联接,两个表中符合条件和左表 中SSeel不elecc符ttXX合ssbb条..学学件号号的,,记姓姓录名名,,,课课(右程程表码码中,,考字考试段试成为成绩.绩NFuFrlrlo.o)mm。例 xxssbbLJeofitnJocjibn Ocjbn OXnsb.X学sb号.学=号C=jb.C学jb号.学号
kcb cjb TB
5.3 SQL语言的数据查询(P150)
➢ 数据查询是SQL语言的核心内容 ➢ Select语句可以从一个或多个表(视图)
中查询数据
Select中已学过的子句:
Select <查询结果列> From 数据表; [Where 条件]; [Order by 排序列1 [ASC|DESC] , ; 排序列2 [ASC|DESC] , …… ]; [ Into Table | DBF <表名> | Into Cursor <临时表名> | Into Array <数组名> | To Printer | To Screen | To File <文件名> ]
[Group By <分组列>] [Having <条件表达式>] [例5.26]
[例5.27]
5.3.3 处理查询结果
不输出重复数据行 Distinct –P156 输出部分数据行 Top

VFP第五章

VFP第五章

用select-sql命令实现单表查询
1.无条件查询 无条件查询 SELECT <字段名表 FROM <表名 字段名表> 表名> 字段名表 表名 SELECT后用“* SELECT后用“*”表示全部字段,还可以是标准统计 函数,如min 函数,如min ,max ,sum,avg,count等 ,sum,avg,count等 例1: Sele * from STUDENT Sele ‘学号’,‘姓名’,‘奖学金’ from STUDENT sele max(奖学金) as '最高奖学金‘ , min(奖学金) as '最 低奖学金', avg(奖学金) as '平均奖学金' from student 注意标题名称
建立表之间临时关系
Set relation to <关联字段表达式 into <子表 关联字段表达式> 子表> 关联字段表达式 子表
表间临时关系:指当一个表的记录指针移动时,另 表间临时关系 一个表中的记录作相应移动。前者的移动是主动的, 称为父表或主动表,后者是被动的,称为子表或被 动表。 说明:关联字段表达式通常由两表共有的字段构成, 说明: 关联字段表达式 同时又是子表的主控索引,这说明子表须建索引才 能建立临时关系。 SET RELATION TO则表示取消当前工作区与其他 则表示取消当前工作区与其他 工作区的关联
第五章: 第五章:查询与视图
5.1 查询与统计命令 5.2使用查询设计器建立查询 使用查询设计器建立查询 5.3 结构化查询语言 结构化查询语言SQL 5.4 视图
数据筛选命令
1.记录筛选命令: Set filter to <条件> 设置当前表中可以被访问的记录满足的条件。 几次筛选以后,仅最后一次起作用。 几次筛选以后,仅最后一次起作用。 取消记录筛选命令:set filter to 2.设置字段筛选命令: Set fields to <字段名表> | [all | like | except <字段名 通配式> ] 指定当前可以被访问的字段,

数据库VFP6.0知识总结--第5章SQL关系数据库标准语言SQL

数据库VFP6.0知识总结--第5章SQL关系数据库标准语言SQL
使用union合并查询时两个或多个select语句必须满足: 查询项个数、顺序、字段类型和字段宽度一致
备注
creat table 图书 (书号 c(10)primary key,作者 c(10)) creat table 图书 (书号 c(10),成绩 n(5,1) check 成绩>500 error "成绩错") create table 借阅(借书证号 c(6),借阅书号 c(10)... ; forign key 借书证号 tag 借书证号 refrences 读者 tag 借书证 号; forign key 借阅书号 tag 借阅书号 refrences 图书 tag 书号)
3
[refrences<表名2>[tag<标记1>]],… [forign key <表达式>[tag<标记2>] refrences <表名3>[tag<标记
3>]])
alter table<表名> add|alter[column]<字段名1><类型>
4
[null | not null] [[set]check<表达式1>[error "错误信息"]]
创建外部关键字与父表建立关系 refrences<表名3>[tag<标记2>]:定义建立永久联系的父 表 增加(修改)字段修改表结构 check(在add后使用):设置字段有效性规则; set check在alter后使用 default(在add后使用):设置字段默认值; set default:在alter后使用
序号
命令
1
creat table<表名> free(字段名 类型(),… [primary key | unique])

第5章授课 VFPSQL语言

第5章授课  VFPSQL语言

<查询序列项> [AS <别名>] [, …]
FROM <表序列项> [, …]
[[<联接类型>] JOIN <数据库名>!] TABLE [[AS] <别名>]
[ON <联接条件> [AND|OR [<联接条件>] …]]
[WHERE <筛选条件> [AND|OR <联接条件>|<筛选条件>] …]
② “FROM [<数据库名>!]<表名> [[AS] <别名>]”子句指出 查询数据的来源表,可以使用本子句给表另起别名,AS单词可以 缺省。如果表是非当前数据库中的表,则必须包含数据库名,数 据库名与表名之间用一个惊叹号“!”分隔。
【例5.1】 从student表查询所有学生的所有信息。
select * from student
复记录。 select distinct 专业 from student
去掉distinct将会
2. 选择查询 从表中选择部分符合条件的记录,它对应关系的
选择运算,在投影查询语句的FORM子句后面加上 Where<筛选条件>子句,指定包含在查询结果中的 记录必须满足的条件即可。
<筛选条件>可以是任意的关系表达式、逻辑表达 式以及用特殊运算符构成的较复杂的条件表达式
select * from student order by 专业,入学成绩 desc 也可以写为下列格式: select * from student order by 6, 8 desc
【例5.12】 显示student表中入学成绩排在前五名学生信息。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章SQL语言 总结复习
1. SQL命令动词 要记住,这个表 格可以出题,选 择、填空都可 能.
在VFP中不能使用命令 GRANT、REVOKE
SQL功能
命令动词
数据查询
数据定义 数据操纵
select
Create,drop ,alter Insert, update delete Grant revoke
Select from xs,cj where xs.xh=cj.xh
select * from cj && *表示什 么意思? 表示cj表的所有字段.
4.2.3嵌套查询(必考题)
NOT IN是排除的意思 Select * from xs where xh not in (select xh from cj) &&排除掉了在CJ表中出现的XH ,也就是所有选过课的学生被排 除掉了,剩下来的就是没有选过 课的学生信息。 In:只在….范围内的意思。
连接查询。 凡要从两个表里查询记录的话, 一定要对两个表进行联接,否则 是不能进行查询的.
最常用的连接是普通连接: (1)Select ….from 表1名字, 表2 名 where 表1名.字段名=表2 .相同字段名 Select …. From xs,cj where xs. xh =cj.xh (2)等价于(1):select…..from 表1名 join 表2名 on 表1名.字段名=表2 . 相同字段名
4.2.4 也考过 成绩 not Between 20 and 100用关系 运算符来改写:成绩<20 or 成绩>100 Select xh from cj where cj in(60,70,80) &&查询cj=60 or cj=70 or cj=80的学 生xh
select …where 姓名 like “李%” select ….where at(“李”,姓名)>0 select …..where like(“李*”,姓名) 三个是等价的。 Like是SQL语言中的,因此,通配符是:%和 _. 说明: _ 替代一个字符, %替代多个字符。 Like()是VFP自带的函数,通配符是:*和?. 说明: ? 替代一个字符, * 替代多个字符。
DELETE必考
SQL中的delete语句的用法:用来 逻辑删除记录的 语法:delete from 表名 where 筛选条件 delete from stock_bk where 股票代码=’600000‟
必考:选择或填空。 Create table…default Create table…check Create table….primary key/unique/foreign key Create table…free &&创建自由表 Create database 数据库名&&创建一 个数据库 Drop table 删除表的命令
Alter table…add 添加一个字段 Alter table….drop column…删除一个字段 Alter table…alter… 修改一个字段的类型或宽度 Alter table….add primary key/unique/foreign key Alter table…set check. &&修改一个表已经存在 的CHECK, 其中,SET是重置的意思 Alter table..set default&&重置default的值 Alter table…drop check/drop default Alter table…drop primary key/unique/foreign key Alter table…rename cloumn … to.. &&给字段 重命名(必考)
例1:为学生成绩表增加一物理成绩字段, 并对用户输入作有效性检查。 ALTER TABLE 学生成绩; ADD 物理 n(6,2) SET CHECK 物理>0 例2:对上例删除物理字段的有效性检查。 ALTER TABLE 学生成绩; ALTER 物理 DROP CHECK
20:12:25
例3:对上例,删除物理字段。
Select … from 表1,表2,表3 where 表2.字段名=表3.相同字段名 and 表 1.字段名=表2.相同字段名
一定会考的: 把查询结果存放到数组中: Into array 数组名 把查询结果存放到永久表中: Into table 表名 把查询结果存放到临时表中: Into cursor 表名 把查询结果存放到文本文件: to file 文本文件名 发送到打印机:to printer
In/not in :要求自己能写出来. Exists/not exists :不要求会写 ,能作出选择题就可以了.
EXISTS是谓词,他用来检查在子 查询中是否有结果返回,即子查询 结果中是否有记录。
例:查询学生档案表中高数不及格的学生 信息。 SELECT * FROM 学生档案 A ; WHERE EXISTS (SELECT * ; FROM 学生成绩 WHERE 学号=A.学号; AND 高数<60)
数据控制
查询语句的一般格式:
20:12:25
SELECT [ALL | DISTINCT] field1[,field2,...] FROM table1[,table2,...] [WHERE "conditions"] [GROUP BY "field"] [HAVING "conditions "] [ORDER BY "field" [ASC | DESC] ]
4.3.1 插入数据 第一种格式:一定会考,考选择题. Insert into 表名 values( 值1,值 2,……) 第二种格式:上机有可能会考 insert into 表名 from array 数组名 &&把数组里数据复制一份到表中.
Update(必考) Update的用法:(用来修改字段的值 Update 表名 set 字段名=新值 where 筛选条件 对于年龄>20的学生,将xh末尾加一 个a. 处理的是xs表 update xs set xh=xh-„a‟ where year(date())- year(csrq)>20
什么时候要对查询进行分组? 凡含”每”,”各”的都要分组 1.求每个系的人数,输出字段:人数. 对每后面的系进行分组. count(*) as 人数 from xs group by xdh 2.求每个系各专业人数. 每后面的系要 分组,各后面的专业要分组. count(*) as 人数 from xs group by xdh,zydh
打个比方:筛选出比本教室所有人(all) 都高的人,意思就是筛选比本教室最高的 人还高的人. 筛选出比本教室随便一个人都高的人,意 思就是筛选出的人比本教室中最矮的人高 就行了. Select….from….where shengao>=any(select shengao …from..) 等价于:select…from…where shengao>=(select min(shengao)….from…)
ALTER TABLE 学生成绩; DROP COLUMN 物理 例4:删除学生成绩表中的主索引。 ALTER TABLE 学生成绩; DROP PRIMARY KEY
20:12:25
例:把学生成绩表中的课程代号字段重命 名为课程: ALTER TABLE xscj RENAME COLUMN kcdh TO kc 例:把学生成绩表中的cj字段进行修改 alter table xscj alter column cj N(5,1)
4.求每个系男生人数,女生人数.输出字 段:xdh,男生人数,女生人数. 答案:本题只按系分组,为什么不按xb分 组?因为男生人数,女生人数按xb分组, 是不能用两列输出来的,组只能在一 列输出. Select xdh,sum(iif(xb=„男‟,1,0)) as 男生人数,sum(iif(xb=„女‟,1,0)) as 女 生人数 from xs group by xdh. 凡题目中出现两个组的计数在两列输 出的,或者一个总计数,一个部分计 数在两列输出的,都要用iif()计数
3.求每个系男、女生人数.输出字段 :xdh,xb,人数. 答案:每后面的系要分组,然后男、女生 是两个组,因此要按照xb分组. select xdh ,xb ,count(*) as 人数 from xs group by xdh,xb
系代 号 教育 教育 性别 女 男 人数 15 10 系代 号 教育 心理 男生 人数 10 9 女生 人数 15 10
20:12:25
All/any谓词的用法 同样只会做选择题就行了,不要求自 己会写.
Select …..from…..where 工资>= all(select 工资 from ……) 意义: all后面筛选是一个范围:因 此:工资>=all,就是>=这个范围里 的所有工资,反过来,意思就是:比 这个范围里的最高值要大 .select…..from…where 工资>=( select srq , xh,xm from xs order by xm DESC,xh desc 等价于select xh,xm,csrq from xs order by 2 desc,3 desc 因为,xm在SELECT后面的字段 排第二位,xm排第三位
简单的计算查询: 计算平均值avg(cj) as 平均成绩 计算总分:sum(cj) as 总成绩 求最高值:max(cj) as 最高分 求最小值:min(cj) as 最低分
相关文档
最新文档