1 / 15

关系数据库 FoxPro

关系数据库 FoxPro. 重点:第 2 章 ~ 第 11 章 第 2-5 章:交互方式的数据库操作 第 7-11 章:程序控制语句、程序方式的数据库操作 考试题型:填空、判断、程序填空、 读程序、编程序. 数据库基本概念. 三种常用的数据模型:层次、网状、关系 三种基本的关系操作:选择、投影、连接 关系 —— 二维表 —— .DBF. FoxPro 基本成分. 常量的种类、形式 变量:内存变量、字段变量 标准函数的使用 P.21-P.26

armina
Télécharger la présentation

关系数据库 FoxPro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 关系数据库 FoxPro • 重点:第2章~第11章 • 第2-5章:交互方式的数据库操作 • 第7-11章:程序控制语句、程序方式的数据库操作 • 考试题型:填空、判断、程序填空、 • 读程序、编程序

  2. 数据库基本概念 • 三种常用的数据模型:层次、网状、关系 • 三种基本的关系操作:选择、投影、连接 • 关系 —— 二维表 —— .DBF

  3. FoxPro基本成分 • 常量的种类、形式 • 变量:内存变量、字段变量 • 标准函数的使用 P.21-P.26 字符函数:&字符变量 SUBSTR(X,N1,N2) LEN(X) AT(X,Y,[n]) 类型转换函数:CTOD() DTOC() ASC() STR(X [,N1][,N2]) 测试函数:BOF() EOF() FOUND() • 运算符和表达式值 P.26-P.28 关系表达式:比较大小 (N、C、D、L) X $ Y 逻辑表达式 字符表达式 (+、-) 日期表达式 (D±N D-D)

  4. 数据库操作命令 • 建库结构 CREATE • 追加数据 APPEND • 插入数据 INSERT • 修改库结构 MODI STRU • 修改库记录 BROWSER | REPLACE • 删除库记录 •逻辑删除 DELETE • 恢复记录 RECALL • 物理删除 PACK • 删除所有记录 ZAP

  5. 数据库操作命令 • 数据库的排序与索引 • 排序(物理排序): SORT • 索引(逻辑排序): INDEX

  6. 数据库操作命令 • 数据查询 : 定位+输出 • 顺序(条件)查询: LIST/DISP LOCATE -CONTINUE + DISP • 索引查询: FINE/SEEK + DISP

  7. 数据库的程序设计 • 顺序结构程序 • 输入语句 input accept wait @ … get •计算(处理) = 数据库操作命令 •输出语句 ? ?? @ … say … get list disp • 分支结构程序IF…ELSE…ENDIF DO CASE CASE P1 S1 …… [OTHERWISE Sn] ENDCASE • 循环结构程序 DO WHILE P FOR I=n1 TO n2 [STEP n3] …… …… ENDDO ENDFOR

  8. 数据库的程序设计 SET TALK OFF STORE 0 TO X,Y N=0 DO WHILE N<100 N=N+1 IF INT(N/2)<>N/2 X=X+N ELSE Y=Y+N ENDIF ENDDO ? X,Y SET TALK ON 例: 求1~100之间的偶数和奇数之和。 SET TALK OFF STORE 0 TO X,Y N=1 DO WHILE N<100 X=X+N Y=Y+N+1 N=N+2 ENDDO ? X,Y SET TALK ON SET TALK OFF STORE 0 TO X,Y FOR N=1 TO 100 STEP 2 X=X+N Y=Y+N+1 ENDDO ? X,Y SET TALK ON

  9. 数据库的程序设计 例: 求S=1!+2!+ … +N! (N由键盘输入) SET TALK OFF INPUT “输入N” TO N T=1 FOR I=1 TO N T=T*I S=S+T ENDFOR ?”S=”,S SET TALK ON

  10. 数据库的程序设计 例:读程序,简述程序功能 SET TALK OFF USE STUDENT INDEX XH_I DO WHILE .T. ACCEPT “请输入学号:" TO XH IF XH=‘#’ EXIT ENDIF SEEK XH IF FOUND() ?学号,姓名,性别 ELSE ?“无此学号!" ENDIF ENDDO USE SET TALK ON

  11. 数据库的程序设计 例:读程序,回答问题 SET TALK OFF N =AT (“人民”,“中华人民共和国”) P=SUBSTR(“SRCXJSDY”,N,2)+“.DBF” USE &P 问题: GO N (1)第二条命令执行后,N的值为: INSERT BLANK (2)此程序段的功能是: USE RETURN

  12. 子程序、过程和自定义函数 • 子程序、过程和自定义函数:是功能相对独立的程序段;可以与主程序放在一个.PRG文件种,也可以是一个单独的.PRG文件 • 过程与过程文件 PROCEDURE 过程名 …… RETURN • 调用过程: DO 过程名 [ WITH 参数表 ] • 数据传递:变量属性、参数传递

  13. A1= 10 A2= 20 A3= 43 A1,A2=43 30 A1,A2,A3=51 52 43 A1= 10 A2= 20 A3= 51 子程序、过程和自定义函数 *SUB.PRG PROCEDURE EE1 PRIVATE A1,A2 A1=41 A2=42 A3=43 RETURN PROCEDURE EE2 PARAMETER A1,A2 ?”A1,A2=”,A1,A2 A1=51 A2=52 A3=53 DO EE1 ?”A1,A2,A3=”,A1,A2,A3 RETURN 例:P.131 SET PROC TO SUB A1=10 A2=20 A3=30 DO EE1 ?”A1=”,A1 ?”A2=”,A2 ?”A3=”,A3 DO EE2 WITH A3,A1+A2 ?”A1=”,A1 ?”A2=”,A2 ?”A3=”,A3 RETURN

  14. 编程序: 1、计算: S=X+X/3!+X/5!+......+X/(2*N-1)! 。 X、N由键盘输入。 2、分别用IF … ELSE … ENDIF语句和DO CASE … ENDCASE语句 求分段函数的值 3、设有数据库“考分.DBF”,其中字段有:(考号N,姓名 C,性别 C,年龄 N, 优秀生 C,高考成绩 N ) 若考生是“省优秀”则“高考成绩”加20分,若考生是“市优秀”则“高考成绩” 加10分 。请编程实现。 4、对以上的库文件, 编程序查找并显示最高总成绩和获得该最高总成绩的人数, 并且打印这些学生的姓名。 5、编程:输入考号,显示“best!”(高考成绩700), 显示“better!”(600 ≤高考成绩<700), 否则显示“come on!”; 若库中查无此学号,则显示“not found!”。 6、 打印三角形

  15. 设有数据库“考分.DBF”,其中字段有:(考号N,姓名 C,性别 C,年龄 N, 优秀生 C,高考成绩 N ) 若考生是“省优秀生”则“高考成绩”加20分,若考生是“市优秀生”则“高考成绩” 加10分 。请编程实现。 set talk off use 考分 do while not eof() do case case 优秀生=“省优秀生” repl 高考成绩 with 高考成绩+20 case 优秀生=“市优秀” repl 高考成绩 with 高考成绩+10 endcase skip enddo use retu set talk off use 考分 scan do case case 优秀生=“省优秀生” repl 高考成绩 with 高考成绩+20 case 优秀生=“市优秀” repl 高考成绩 with 高考成绩+10 endcase endscan use retu

More Related