序号 |
留言内容 |
D:2010-12-6 T:10:30:00 IP:192.168.8.40
作者: 张顺海 | 2010.12.3日讲课内容回顾:
内容:第5章 程序设计
1.程序设计类型:面向过程程序设计、面向对象程序设计。
面向过程:考虑程序设计人员编写程序方便。
面向对象:考虑用户人员的使用方便。
2.程序设计的几个重要要领:
1)注释(*、NOTE、&&)
2)数据输入、数据处理、数据输出
3)程序返回(return)
4)一行只写一个语句,一行写不下可分行,应使用‘续行符’(分号)
3.建立程序(默认扩展名为.prg)
使用命令:
modi comm (先行建立,退出前再取名存盘)
modi comm 文件名 (直接建立指定文件)
modi comm ? (先提示建立文件名-对话框)
4.修改程序
modi comm 文件名 (既可建立新的,又可修改已经存在的)
5.运行程序
do 文件名 (如果不为扩展文件名,默认.prg)
6.文件操作
改名: rena abc.prg to abc.txt
删除: dele file abc.prg
注:可以更改任意文件的名称,写‘全名’;可以删除任意文件,写‘全名’。
7.核心事件:
init:
destroy:
click:
dbclick:
rightclick:
gotfocus:
lostfocus:
keypress:
mousedown:
mouseup:
mousemove:
8.【类-子类-控件-对象-属性-事件-行为-代码】之间的关系。
9.程序设计结构:顺序结构、选择(分支)结构、循环结构。
|
D:2010-11-18 T:14:30:00 IP:192.168.8.40
作者: 张顺海 | 本节实习任务:(SQL实训)
要求:
1.共计15题,涵盖结构的建立、修改,记录的增加、删除、统计、检索、转向等操作。
2.每题10分,共150分,形成9个表格文件。
(分别是:ts.dbf,bg1、bg2、bg3、bg4、bg5、bg6、bg7、bg8).
3.有的题目答案不是唯一的,结果应该一致,经分析一样得分。
1.建立一个表文件,ts.dbf
书名(c,45) 版别 (c,14) 单价 (n,7,2)
参考命令:crea table ts (书名 c(45),版别 c(14),单价 n(7,2))
2.增加一个字段
总册数 (n,7,0)
参考命令:alter table ts add 总册数 n(7)
3.将tushu.dbf中的所有记录加入当前表格。
参考命令:use ts
appe from tushu
4.增加一个字段:金额 (n,7,2)
参考命令:alter table ts add 金额 n (7,2)
5.计算出图书的金额,等于单价乘于总册数。
参考命令:UPDATE ts SET 金额=总册数*单价(更新1002记录)
6.检索出书名中含有‘国’字的所有书目,结果存于表格bg1.dbf。
参考命令:sele * from ts where 书名 like "%国%" into table bg1 (106条记录)
7.检索出单价位于8-12(包括8、12)元之间的所有记录,结果存于表格bg2.dbf,且按单价降序。
参考命令:sele * from ts where 单价 between 8 and 12 into table bg2 order by 单价 desc (37条记录)
8.检索出‘版别’为空的所有记录,结果保存于表格bg3.dbf。
参考命令:SELECT * FROM ts WHERE EMPTY(版别) into table bg3 (8条记录)
9.将版别中含有‘辽海'二字,改为‘辽海出版’。
参考命令:update ts set 版别='辽海出版' where 版别 like "%辽海%" (29条记录更新)
10.统计出不同出版社所出图书的数量,结果保存至bg4.dbf中,结果按数量降序排列。
参考命令:sele 版别,count(*) as 数量 from ts group by 版别 into table bg4 order by 2 desc (69条记录被统计)
试想这样可以吗:sele 版别,sum(总册数) from ts group by 版别 into table bg4 orde by 2 desc
11.统计出不同书名的总册数,结果保存至表格bg5.dbf中,结果按总册数升序排列。
参考命令:sele 书名,sum(总册数) from ts group by 书名 into table bg5 orde by 2 asc (929条记录)
12.增加如下记录:
VisualFoxPor6.0数据库应用设计 高等教育出版社 20.50 30
中文VisualBasic6.0程序设计教程 高等教育出版社 29.00 30
参考命令1:insert into ts (书名,版别,单价,总册数) value ("VisualFoxPor6.0数据库应用设计","高等教育出版社",20.50,30)
参考命令2:insert into ts (书名,版别,单价,总册数) value ("中文VisualBasic6.0程序设计教程","高等教育出版社",29.00,30)
参考命令3:SELECT * FROM ts WHERE 版别 like "%高等%" (2条记录)
13.删除(物理)版别为空的记录。
参考命令:dele from ts where empyt(版别)
pack
(8条记录被删除)(剩996条记录,1002+2-8=996)
14.检索出不同书名的种类数量,结果保存到bg6.dbf,结果按数量降序排列。
参考命令:sele 书名,count(书名) from ts group by 书名 into table bg6 orde by 2 desc (923条记录)
15.统计出不同出版社的所有图书的总册数,最高单价,最低单价,平均单价,结果保存到不合格bg7.dbf中,版别降序排列。
参考命令:sele 版别,sum(总册数),max(单价),min(单价),avg(单价) from ts group by 版别 into table bg7 orde by 1 desc (69条记录)
|
D:2010-11-15 T:12:22:00 IP:192.168.8.40
作者: 张顺海 | 一、将图书表格中(tushu.dbf)的书名重复的记录检索出来:
1.书名重复的意思是:有两条或者两条以上的记录拥有相同的书名
2.只检索出有重复的记录来
解法:
SELECT 书名,COUNT(书名) as ts FROM tushu GROUP BY 书名 HAVING ts>=2
这个意思就是统计每种相同书名的条数,如果2个或者2个以上的就筛选出来,使用的是"having 条件"选项。
二、以下对于本题而言,结果一致。
SELECT 书名 as ts FROM tushu HAVING 类别="百科"
SELECT 书名 as ts FROM tushu WHERE 类别="百科"
即where 与 having 都可做为条件短语。
本题结果为:439条记录。 |
D:2010-11-12 T:14:19:00 IP:192.168.8.40
作者: 张顺海 | 今天上午第三、四节课内容提要:
内容:
数据查询(SQL)语句:select-from-where
dist:每个select只能使用一次;
order by :排序项目可能使用一个或者多个,且可升降不同
如:order by 版别,单价 desc,即按版别升序,版别一致的按单价降序。
如:order by 1,3 这样也可以
sele 版别,单价,书名 from tushu order by 1,3 desc
查询结果先按版别升序,版别一样的按书名降序
group by :按项目分组,项目一致的分成一组,每一组压缩成一条记录进入结果查询窗口。
如:group by 版别,即按版别分组,版别一致的形成一条记录,即同一个出版社的记录压缩形成一条记录,同一出版社的记录进行相应的操作
sele 版别,count(*) from tushu group by 版别
按版别分组,出版社一致的形成一条记录,这一组记录进行count(*),即统计每一组的记录条数。这样就得到了每个出版社的记录,即出了多少种不同的书,当然可能有重复书名的书,可以加dist,但count(*)应该为count(书名)
having:这个条件一般常用于对group by后结果的限定(即筛选结果),没有group by 时同where,但查询速度没有where 条件快。
问题:
通过对tushu.dbf操作,得到如下信息:
1)按每个出版社的不同统计如下信息
2)不同出版社最贵的书的单价
3)不同出版社最贵的图书名称
4)不同出版社所有图书的平均单价
5)不同出版社所有图书的总册数
分析:看看能不能一个命令完成,如不能,应该如何操作
|
D:2010-11-7 T:9:42:00 IP:188.188.2.1
作者: 张顺海 | 今天上午主要内容:
1.回忆昨天的讲内容:
1)SQL语言的四大功能
2)简单查询的构成:select--from---where
3)from、where、group by、order by四个短语的功能
4)group by 与 having 条件的配合
5)order by 升序asc;降序desc
6)综合实例,看昨天讲述的内容,第49条留言。
2.回忆第50条留言的内容。
1)数据定义功能:DDL(创建、删除、修改)
如:创建表、创建视图、创建索引、创建数据库
2)数据操纵功能:DML(插入、删除、修改)
如:插入记录、删除记录、修改记录
3)数据控制功能:DCL(授权、回收权利)
4)数据查询功能:(select-from-where)
3.今日题目:
1)设置工作默认盘:
set default to d:\v46
可以用cd命令检验,得到结果为 d:\v46
2)sele * from tushu where 总册数 in (10,15,20)
检索出总册数为10、15、20册的图书信息
3)sele * from tushu where 书名 like "_国%"
检索出书名中第二个字为‘国’字的所有信息
4)sele * from tushu where 单价 BETWEEN 10 and 20
检索出单价在10-20(包括10、20)元的图书信息
5)sele 书名,单价 from tushu where 单价>(sele avg(单价) from tushu where 版别 like '%辽海%') and 版别 not like '%辽海%'
替换昨天的那个题目。用到了like,匹配
6)sele * from tushu where 版别="吉林电子出版"->4记录
sele * from tushu where 版别="工业机械"->194记录
sele 书名,单价 form tushu where 版别="吉林电子出版" union all sele 书名,单价 from tushu where 版别="工业机械"
将两次查询结果,联合(union)到一起,注意两次查询的查询项目是一样的,不一样也需要兼容(类型、宽度一致)
7)sele 书名 from tushu where 书名 like "%国%"
检索出书名中含有‘国’字的书名信息。(106条)
sele dist 书名 from tushu where 书名 like "%国%"
检索出书名中含有‘国’字的不重名的信息。(97条)
sele 书名 from tushu where 书名 like "%国%" group by 书名
达到的效果和上边的一样,结果为97条,重点是看group by 书名的运用。
8)查询的输出
1)输出部分结果 top n [percent]选项
如:sele * top 3 from tushu orde by 单价 desc
检索出单价最高的前3本书的图书信息,与order by 联合使用。
2)存放到临时表(不形成文件的内存文件)
into cursor 临时表名
如:sele * top 3 from tushu orde by 单价 desc into cursor cp
创建的cp临时表与基本表一样使用,是个只读文件,不能对其进行修改。随着文件的关闭,自动删除。
3)保存到数据表中
into dbf <文件名>或者into table <文件名>
into dab和into table是等价的。
如:sele * top 3 from tushu orde by 单价 desc into dbf cp2
把查询结果保存到表格cp2中
4)保存到文本文件
to file <文本文件名>
|