首页  前一页  后一页  末页
[255] [256] [257] [258] [259]
本留言簿共有493条记录, 现在时间2025-5-25 2:03:49,计算机地址:192.168.9.44
日期查询:
现在是第51页
一共有99页
Books库中表及结构信息 环境:一键安装 库表:Mysql.sql  xx3.sql xx4.sql 页面:Myphp.php   
序号 留言内容
259

D:2014-9-24
T:8:48:00
IP:192.168.9.43



作者:
张顺海

2014.9.23 星期三

教学内容:分组查询

教学目的:掌握分组的意义及分组函数

教学重点:分组操作

教学难点:分组函数

教学方法:

教学过程:

一、复习

上节课我们学习了查询排序功能

1.排序短语为:order by <排序项目1> [ asc|desc][,<排序项目2> [asc|desc] ....]

2.排序项目可以是多个,为第一排序项目,第二排序项目,当第一排序项目不能区分大小时,依据第二排序项目。

3.每个排序项目可以分别使用ASC或者DESC来限定升降序,如果省略默认是ASC,表示升序

4.可以使用order by 3的形式,表示按输出项目列表中的第三列为排序项目,当然也可以使用order by 3,5表示首先按照第3列排序,不能区分的按第5列排序,都是升序

5.如果在输出项目列表中,出现了AS 指定的列标题,则在order by 项目中,应该使用AS后的列标题

二、新授

1.教学内容:查询分组

2.大家分析:统计xueji.dbf中的男生和女生的数目分别是多少,我们应该这样做:

sele 性别,coun(*) from xueji where 性别="男“

sele 性别,count(*) from xueji where 性别=”女“

3.如果按专业分将xueji.dbf中的,看看每个专业有多少学生,显然可以把xueji表中的”国际商务“和”电子技术“两类来分,即

sele 专业,coun(*) from xueji where 专业="国际商务”

sele 专业,coun(*) from xueji where 专业="电子技术”

4.这是我们事先已经知道xueji表中的性别有“男”、“女”两种情况,专业有“国际商务”和“电子技术”两种,如果不知道有多少种类,这就无法写出这样的语句,并且即使事先知道,但分的类别越多,写的语句越多,所以SQL就有一种专门处理这种类型的短语操作,就是“查询分组”

5.查询分组的意义:就是把记录数据按照某种方式进行归类,每一类产生一条汇总后的记录,是通过group by 分组项目来完成的

6.实例:

1)sele 性别,count(*) from xueji  group by 性别

    sele 性别,count(*) as 数量 from xueji group by 性别

2)sele 专业,count(*) as 数量 from xueji group by 专业

三、练习

1.下载相关文件,ftp://192.168.8.40,教学文件,V58,中的tushu.dbf,下载至本地电脑的V68中,且将VFP的默认工作目录设置成该目录。

2.打开命令文件,分别输入以下命令集,分别体会相关的命令含义。

1)sele * from tushu

2)sele * from tushu where 版别="远方出版"

3)sele count(*) from tushu where 版别="远方出版"

4)sele 版别,count(*) from tushu where 版别="远方出版“

5)sele 版别,count(*) as 数量 from tushu where 版别="远方出版"

6)sele 版别,count(*) as 数量 from tushu group by 版别

7)sele 版别,count(*) as 数量 from tushu group by 版别 order by 数量

8)sele 版别,count(*) as 数量 from tushu group by 版别 order by 数量 desc

9)sele 版别,count(*) as 数量 from tushu group by 版别 order by 数量 desc having 数量>=100
 

四、总结

1.使用group by <分组项>来完成查询分组

2.可以使用分组专用函数count()、sum()、avg()、max()、min()等聚合函数

3.用于统计记录、求和、平均、最大值、最小值

五、作业

1.掌握group by的分组使用,明白项目三中的9条命令的全部含义

2.统计出tushu表中的不同“类别”的各种图书的记录条数,并按汇总后的记录条数降序。

258

D:2014-9-17
T:7:34:00
IP:192.168.9.43



作者:
张顺海

2014.9.17 星期三

教学内容:

1.阶段性小考

2.查询排序

教学目的:

1.考核暑假作业掌握情况、近期学习效果

2.掌握查询结果的排序

教学重点:

查询排序

教学难点:

orde by 语句的应用

教学过程:

一、考核

考核网址:http://192.168.9.43/ch01/kaoshi.asp

考核过程:

1.首先登陆用户名

2.点击功能列表中的第【13】项的在线测验

3.点开微机68班VisualFoxPro6.0在线考试系统

4.本次考试共计86题,含部分Excel时的题

5.做完后,点击考题下面的【提交】按钮

6.本系统会自动【评分】,并记录到自己的考试成绩

7.本系统自动将每个人的成绩登陆到【服务器】上

8.本题,可以反复练习,评分后,自动给出正确答案,及题目分析

9.要求每位同学反复练习至满分【164】分后预习第二部分

 

二、新授(理论课)

1.教学内容:第四章 4.1.2,P84,查询排序

2.前几节课,我们一直使用Select-SQL语言的查询功能,将我们需要的数据提炼出来,形成一个新的集合备用。

3.第一个备用的需求就是让得到了结果按我们的要求有序,就是本节的新授内容,查询排序

4.查询排序:

命令短语:order by <排序项1> [asc|desc] [,<排序项2> [asc|desc] ...]

命令功能:

该命令对查询结果按指定的排序项进行升序或者降序

asc项表示按排序项升序排序记录;

desc项表示按排序项升序降序记录;

如果省略asc、desc,则默认的排序升序;

5.实例:

P84,例8

三、总结(请大家抄写在笔记本上)

1.通过sele查询语句的【order by 】短语,可以对sele查询语句的结果,按指定的项目排序;

2.asc是升序,desc是降序

3.不指定升降,默认升序

4.也可以使用orde by 3,用3来指定,按sele语句中的第三列为排序项目

5.orde by后边可以跟多个排序项目(也排序依据),排序时先按第一个排序项目排序,如果第一个排序项目值相同,就按第二个排序项目排序,依次类推

6.orde by后边跟多个排序项目时,对每一个排序项目,可以分别用asc或者desc加以限定,来说明每一个排序项目的升降序

7.当查询项目中用AS指定新的列标题时,order by 中的排序项目,应该使用被AS指定的标题,如P86,例9

四、作业

1.预习,P86的查询分组

2.将查询排序中的例8、例9、例10抄写在作业本上,含题目要求;

 

 

 

 

 

257

D:2014-9-11
T:17:43:00
IP:192.168.9.43



作者:
张顺海

2014.9.12 星期五

实训内容:条件查询(二)

实训目的:any/some、all、exist子句的运用

实训重点:集合运算的运用

实训过程:

一、复习回忆,上节课我们简单的说了一下子查询相关运算应用

1.ALL

sele * from  xueji where 入学成绩>all (sele 入学成绩 from xueji where 性别='女')  and 性别="男"

2.ANY

sele * from  xueji where 入学成绩>any (sele 入学成绩 from xueji where 性别='男')  and 性别="女"

二、实习过程,要求首先下载需要的学籍表与图书借阅表(xueji.dbfxueji.fpttushui.dbf

(一)知识预备:

1.子查询:就是在一个查询中需要另一个查询的结果,这个产生结果的查询称之为子查询;

2.例如:

use xueji

list


   记录号  学号      姓名         性别   民族   出生日期         入学成绩 专业         团员   照片   简历 
        1  110101    王晓飞       男     汉     02/18/96            540.0 国际商务     .T.    gen    memo 
        2  110102    李国华       男     汉     11/23/95            423.0 国际商务     .F.    gen    memo 
        3  110202    王虹         女     汉     10/20/95            352.0 电子技术     .T.    gen    memo 
        4  110207    连小胜       男     蒙古   12/09/95            436.0 电子技术     .T.    gen    memo 
        5  110208    孙联民       女     汉     07/16/95            453.0 电子技术     .F.    gen    memo 
        6  120102    万亮         男     汉     01/17/96            521.0 国际商务     .T.    gen    memo 
        7  120103    胡连丽       女     满     11/12/95            365.0 国际商务     .T.    gen    memo 
        8  120204    李红黎       女     汉     09/11/96            514.0 电子技术     .T.    gen    memo 
        9  100102    赵明明       女     汉     03/13/96            428.0 国际商务     .T.    gen    memo 
       10  100105    孙桂起       男     汉     12/29/96            456.0 国际商务     .T.    gen    memo 


sele 入学成绩 from xueji


   记录号  入学成绩
        1     540.0
        2     423.0
        3     352.0
        4     436.0
        5     453.0
        6     521.0
        7     365.0
        8     514.0
        9     428.0
       10     456.0

结果就相当于一个集合(540,423,352,436,453,521,365,514,428,456)

(二)知识运用

大家想一下,sele 入学成绩 from xueji where 性别="女"的结果是哪一个集合?

sele 入学成绩 from xueji where 性别="女"


   记录号  入学成绩
        3     352.0
        5     453.0
        7     365.0
        8     514.0
        9     428.0


分析结果就是相当于(352,453,365,514,428)的集合

(三)知识扩展,大家看看这句话的意思

sele * from xueji where 入学成绩 in (352,453,365,514,428)

很显然,就是查询出,入学成绩是(352,453,365,514,428)集合中的任意一个的信息!

因为上边已经知道这五个成绩得来的渠道,就是五个女同学的成绩,所有替换结果:

sele * from xueji where 入学成绩 in (sele 入学成绩 from xueji where 性别="女")

大家分析以下语句的含义:(注意子查询的两边的括号不能省略)

sele * from xueji where 性别='男' and 入学成绩 in (sele 入学成绩 from xueji where 性别="女")

(四)any/some、all、exist子句的运用

1.any/some

这两个通用,一般用any,表示任意的意思。

(1)sele 入学成绩 from xueji where 性别="女",产生的结果相当于集合(352,453,365,514,428);

(2)条件where 入学成绩 in (352,453,365,514,428),相当于where 入学成绩 in (sele 入学成绩 from xueji where 性别="女");

(3)any一般和关系运算符一起组合使用来达到使用的目的;

 如,入学成绩 > any (352,453,365,514,428),相当于入学成绩大于集合中的“任意"一个结果就为真

入学成绩>352 or 入学成绩>453 or 入学成绩>365 or 入学成绩>514 or 入学成绩>428的含义是一样的,用到了OR运算符!

换算:where 入学成绩 > any (sele 入学成绩 from xueji where 性别="女");

,但也是有区别的,那在哪里有区别:

用any,表达更贴近实际;用集合更简洁;用子查询更智能

2.all

all一般和关系运算符一起组合使用来达到使用的目的;

 如,入学成绩 > all (352,453,365,514,428),相当于入学成绩大于集合中的“所有"的结果才为真

和入学成绩>352 and 入学成绩>453 and  入学成绩>365 and 入学成绩>514 and 入学成绩>428的含义是一样的,用到了AND运算符!

换算:where 入学成绩 > all (sele 入学成绩 from xueji where 性别="女");

,但也是有区别的,那在哪里有区别:

用all,表达更贴近实际;用集合更简洁;用子查询更智能;

3.exists / not exists,一般在条件中直接使用

当子查询中结果不为空集,即至少有一行查询结果,该条件为真

如: where exist (sele * from xueji where 民族="回"),含义为子查询不为空集,筛选条件则为真;

或者:where not exist (sele * from xueji where 民族="回"),含义为子查询为空集,筛选条件则为真。

三、实习总结

1.子查询:就是在一个查询中需要另一个查询的结果,这个产生结果的查询称之为子查询,子查询产生的结果为一个集合;

2.any/some,这两个通用,一般用any,表示任意的意思;

3.any一般和关系运算符一起组合使用来达到使用的目的,相当于各条件之间OR的关系;

4.all一般和关系运算符一起组合使用来达到使用的目的,相当于各条件之间AND的关系;

5.用any、all,表达更贴近实际;用集合更简洁;用子查询更智能;

6.exists / not exists,一般在条件中直接使用,当子查询中结果不为空集,即至少有一行查询结果,该条件为真。

四、作业

1.将本节的实习总结,抄写在笔记本上

2.将实习内容逐条实验,并认真体会老师书写的含义

3.完成下列指令,写在作业本上。

1)筛选出xueji表中不低于女生入学成绩的所有男同学的姓名;

2)筛选出xueji表中在tushu表中借着书的所有人的姓名;

256

D:2014-9-3
T:7:34:00
IP:192.168.9.43



作者:
张顺海

2014.9.3 星期三

实习内容:条件查询(一)

实习目的:掌握各种运算符的运用及表达式对条件查询的运用

实习重点:条件表达式的运算优先级

实习过程:

一、下载相关的文件

二、实习以下运算符的应用

1.算术运算符:+、-、*、/

2.关系运算符:=、<>、<、<=、>、>=

3.逻辑运算符:NOT、AND、OR

4.区间运算符:Between ....... AND......

5.匹配运算符:LIKE

6.集合运算符:IN()、NOT IN()

实习并根据结果分析实例:

1.sele * from xueji where 姓名="王晓飞"

2.sele * from xueji where 姓名="王"

3.sele * from xueji where 学号 like "1_01%"

4.sele * from xueji where 入学成绩 betw 400 and 450

5.sele * from xueji where 入学成绩 in ( 540,521,456)

6.sele * from xueji where 入学成绩 not in ( 540,521,456) 

 7.sele * from xueji where 姓名 like "李%" and 性别="男" to screen 

8. sele * from xueji where 入学成绩 betw 400 and 450 and 入学成绩 not in (436) 

9.sele * from xueji where 性别<>"男"

10.sele * from xueji where 性别#"男" 

11.sele * from xueji where !性别="男"

12.sele * from xueji where not 性别="男"

13.sele * from xueji where 性别!="男"

14.sele * from xueji where 性别="女"

15.sele * from xueji where 性别 in ("女")

16.sele * from xueji where 性别 not in ("男")

17.sele * from xueji where not  性别  in ("男")

18.sele * from xueji where   性别  betw "女" and "女"

19.sele * from xueji where   性别  like "女"

20.sele * from xueji where  not  性别  like "男"

21.sele * from xueji where  !  性别  like "男"

22.sele * from xueji where 性别 is not null and 性别="女"

三、子查询相关运算应用

1.ALL

sele * from  xueji where 入学成绩>all (sele 入学成绩 from xueji where 性别='女')  and 性别="男"

2.ANY

sele * from  xueji where 入学成绩>any (sele 入学成绩 from xueji where 性别='男')  and 性别="女"

四、总结

1.知道运用不同的运算符组成的不同的表达式,可以完成相关的题目要求。

2.ALL、ANY的运用,可以让查询更加的智能。

3.between、not between的应用;IN ()、NOT IN()的应用。

4.大家课下查询exists、not exists的意思!

五、作业

1.掌握各种运算符的分类、运用、以及优先级

2.掌握条件查询中的智能条件运用

3.(书面作业),判断下列表达式是否有效,如有效计算出表达式的真与假,用T或F表示

5>9

3+7>9

6+3*2=19

"三好学生"="三好”

“三好学生"=="三好”

“三好”=“三好学生"

(3+12)/4>(18-2)/4 and "河北省"="河北" or 15*2>8

(3+12)/4>(18-2)/4 and ( "河北省"="河北" or 15*2>8)

sqrt(17)>4 and 4^2>15 or "徐水"="徐水县"
 

 

255

D:2014-8-28
T:10:46:00
IP:192.168.9.43



作者:
张顺海

2014.8.29 星期五
 

教学内容:SQL条件查询

教学目的:掌握条件查询中的运算符及表示方法

教学重点:条件表达式的确立

教学难点:运算符运用

教学时间:4课时,理时一体

教学过程:

一、导入

上节课,我们学习了条件查询,了解了关系运算符的表示方法,及逻辑运算符的表示形式,这节课,我们将实践和运用这些运算符到需求当中去,完成一些特殊的查询方法。

二、新授

1.命令格式:

select [distinct]

            <查询项1> [as <列标题1>] [,<查询项2> [as <列标题2>]...]

          from <表名>

          where <条件>

2.说明

(1)本命令的功能是查询满足每件的记录

(2)where <条件>:指的是查询的条件,与VisualFoxPro命令中的For条件选项的用法相同;

(3)应该熟练掌握条件构成中的各种运算符,以及不同的运算符组合来表示不同的含义;

3.实例,要求首先下载需要的学籍表(xueji.dbfxueji.fpt

(1)查询"xueji"表中入学成绩在400至450之间的记录(含),只显示姓名、性别、出生日期、专业、入学成绩和团员字段内容:

分析:

因为是从表中查询满足条件的记录,正好选用“select-SQL”语句;

结果中包含的查询项目有“姓名、性别、出生日期、专业、入学成绩和团员”字段,所有应该使用“select 姓名,性别,出生日期,专业,入学成绩,团员

信息的来源是表“xueji”,所以应该使用的短语为 from xueji

查询的结果中只包含入学成绩400至450的,所以条件为:where 入学成绩>=400 and 入学成绩<=450

(2)将每个题目分析的结果拼接在一起,命令为头,结果如下

select  姓名,性别,出生日期,专业,入学成绩,团员 from xueji where 入学成绩>=400 and 入学成绩<=450 

(3)运行结果

 带条件的selects查询结果

 4.select命令中使用where指定的条件,既可以是单条件,也可以是双条件,也可以是多条件;

(1)单条件: sele * from xueji where 性别="男“   (含义:所有的男同学)

(2)双条件: sele * from xueji where 性别="男" and 入学成绩>=450  (含义:所有的450及450分以上的男生)

(3)多条件: sele * from xueji where 性别="男" and 入学成绩>=450 or 性别="女"  (含义:所有女生和450及以上的男生)

 5.条件中的运算符:(P83)

关系运算符: =、<>、>、>=、<、<=

逻辑运算符:NOT、AND、OR

区间运算符:BETWEEN...AND...

匹配运算符:LIKE

包含运算符:IN ( )、NOT IN (  )

空值运算符:IS NULL 、IS NOT NULL

三、练习

通过代码及运行结果,分析这些运算符的组合起来的意义

1.sele * from xueji where 姓名="王晓飞"

2.sele * from xueji where 姓名="王"

3.sele * from xueji where 学号 like "1_01%"

4.sele * from xueji where 入学成绩 betw 400 and 450

5.sele * from xueji where 入学成绩 in ( 540,521,456)

6.sele * from xueji where 入学成绩 not in ( 540,521,456) 

 7.sele * from xueji where 姓名 like "李%" and 性别="男" to screen 

8. sele * from xueji where 入学成绩 betw 400 and 450 and 入学成绩 not in (436) 

9.sele * from xueji where 性别<>"男"

10.sele * from xueji where 性别#"男" 

11.sele * from xueji where !性别="男"

12.sele * from xueji where not 性别="男"

13.sele * from xueji where 性别!="男"

14.sele * from xueji where 性别="女"

15.sele * from xueji where 性别 in ("女")

16.sele * from xueji where 性别 not in ("男")

17.sele * from xueji where not  性别  in ("男")

18.sele * from xueji where   性别  betw "女" and "女"

19.sele * from xueji where   性别  like "女"

20.sele * from xueji where  not  性别  like "男"

21.sele * from xueji where  !  性别  like "男"

22.sele * from xueji where 性别 is not null and 性别="女"

 四、总结

1.学会条件查询的方法就是掌握如何把题目要求转化为条件表达式

2.条件表达式,就是Where <条件>短语,就是利用"运算符"连接起来的式子,在练习中的"第9项"至"第22项"都是为表达"所有女同学"的要求,而运用不同的运算符的排列、组合、表示来完成的,请大家好好分析其中的含义,将方法运用到将来的不同的题目要求中。

3.请大家认真考量不同的方法中的运算符运用含义,以期待用到将来复杂的题目要求中去。

4.熟练掌握技术没有捷径,多用、多看、多思、多总结!

五、作业

1.认真查看教材P82的4.1.2条件查询,至P83的例6

2.预习例7!

 

 其他知识:

操作符

比较关系

= 相等
== 完全相等
LIKE SQL LIKE
<>, !=, # 不相等
> 大于
>= 大于等于
< 小于
<= 小于等于
首页  前一页  后一页  末页
现在是第51页一共有99页