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

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.程序设计结构:顺序结构、选择(分支)结构、循环结构。

54

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条记录)


53

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条记录。
52

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)不同出版社所有图书的总册数

分析:看看能不能一个命令完成,如不能,应该如何操作

51

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 <文本文件名>

首页  前一页  后一页  末页
现在是第11页一共有99页