您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > VFP复习- 题库私聊群主有优惠资料
一、SQL语言数据定义:CREATE、DROP、ALTER数据操纵:UPDATE、INSERT、DELETE数据控制:GRANT、REVOKE数据查询:SELECT1、数据查询(1)利用SELECT查询“生产部”人员的全部信息SELECT*FROM员工WHERE部门=“生产部”1、数据查询(2)利用SELECT查询基本工资大于2000且职工编号第一个字符为“Y”人员的职工编号、基本工资与实发工资。SELECT职工编号,基本工资,实发工资FROM工资WHERE基本工资=2000AND职工编号LIKE“Y%”1、数据查询(3)利用SELECT查询“生产部”职工的职工编号、姓名、部门、实发工资等信息,结果按实发工资排序并输出到新表jsb.DBF。SELECT员工.职工编号,员工.姓名,员工.部门,工资.实发工资FROM员工,工资;WHERE员工.部门=“生产部”AND员工.职工编号=工资.职工编号;INTOTABLEjsb1、数据查询计算查询:COUNT、SUM、AVG、MAX、MIN利用SQL语言的SELECT语句按职称对“基本工资”进行分组查询,计算出各种职称基本工资总和。SELECT职称,SUM(基本工资)FROMRSDAGROUPBY职称同样的操作如何利用FoxPro的TotalOn命令实现?2、数据操纵(5)利用SELECT的UPDATE命令基本工资小于2000且职工的基本工资增加20%。UPDATE工资SET基本工资=基本工资*1.2WHERE基本工资2000如何更新实发工资字段?利用REPLACE命令如何更新?UPDATE表名SET字段名1=表达式1[,字段名2=表达式2,…][WHERE条件]2、数据操纵INSERTINTOSTUDENT(学号,姓名,性别,入学成绩);VALUES(“0901013”,“李涛”,“男”,597)数据插入:INSERTINTO表名(字段名1,(字段名2,…)VALUES(表达式1,表达式2,…)(2)ALTERTABLE表名;ADD|ALTER[COLUMN]字段名字段类型[(宽度[,小数位数])]功能:增加字段或修改字段(除字段名外)例如:ALTERTABLE学生ADD平均成绩N(5,1)利用FoxPro命令如何修改?3、数据定义(1)CREATETABLE表名;(字段名字段类型[(宽度[,小数位数])],…)CREATETABLE;学生(学号C(8)PRIMARYKEY,姓名C(8),语文N(3),数学N(3),英语N(3))2、UPDATE表名SET字段名1=表达式1[,字段名2=表达式2,…][WHERE条件]例如:学生(学号C(8),姓名C(8),语文N(3),数学N(3),英语N(3),平均成绩N(5,1))UPDATE学生SET平均成绩=(语文+数学+英语)/3若利用VFP的REPLACE命令:REPLACEALL平均成绩WITH(语文+数学+英语)/3学生(学号C(8),姓名C(8),语文N(3),数学N(3),英语N(3),平均成绩N(5,1),等级C(6))若“平均成绩”大于等于80填入“优秀”,若成绩大于等于70小于80填入“良好”,若成绩大于等于60小于70填入“及格”,60以下填写“不及格”。REPLACEALL等级WITH“优秀”FOR平均成绩=80REPLACEALL等级WITH“良好”FOR平均成绩=70AND平均成绩80经典的例子:思考:编写程序自动计算3.SELECT…FROM…WHERE数据库——学生管理.DBC中包含三个表:STUDENT.DBF、COURSE.DBF和SCORE.DBF,三个表的结构如下:STUDENT(学号C(6)、姓名C(8)、性别C(2)、出生日期D、入学时间D、是否党员L、籍贯C(10),专业C(12))COURSE(课程编号C(8)、课程名称C(12)学时N(2,0)、任课教师C(8))SCORE(学号C(6),课程编号C(8),成绩N(4,1))(1)用SQL语言中的SELECT语句从STUDENT表中查询并输出“旅游管理”专业的学生学号和姓名并按学号排序。SELECT学号,姓名FROMSTUDENT;WHERE专业=“旅游管理”ORDERBY学号(2)用SELECT语句查询“李涌”老师所教授课程的总学时信息。SELECTSUM(学时)FROMCOURSEWHERE任课教师=“李涌”(3)输出“张员”同学所学过课程的成绩并保存到ZHANGYUAN.DBF表中。SELECTSTUDENT.姓名,COURSE.课程名称,SCORE.成绩;FROMSTUDENT,COURSE,SCORE;WHERESTUDENT.姓名=“张员”AND;STUDENT.学号=SCORE.学号AND;COURSE.课程编号=SCORE.课程编号;INTOTABLEZHANGYUAN.DBFSTUDENT(学号C(6)、姓名C(8)、性别C(2)、出生日期D、入学时间D、是否党员L、籍贯C(10),专业C(12))COURSE(课程编号C(8)、课程名称C(12)学时N(2,0)、任课教师C(8))SCORE(学号C(6),课程编号C(8),成绩N(4,1))二、结构化程序设计(阅读、程序填空和书写程序)1、程序的三种基本控制结构2、选择/分支(IFELSEENDIF和DOCASEENDCASE)IFA-B0T=AA=BB=TENDIFWAIT“X=”TOXDOCASECASEX=“0”ANDX=“9”?”数字符号!”CASEUPPER(X)=”A”;ANDUPPER(X)=”Z”?”英文字母!”OTHERWISE?”特殊符号!”ENDCASE3.循环结构DOWHILEENDDO和FORENDFORSTORE0TOX,YDOWHILEX=10Y=Y+XX=X+2ENDDO?Y,XUSESTUDENT.dbf(P73)DOWHILEIFDISPLAYWAITELSEENDIFENDDOUSE数组:DIMENSIONA(6)FORI=1TO6A(I)=IENDFORFORI=1TO6?A(I)ENDFORSTORE0TOX,YDOWHILE.T.X=X+1DOCASECASEINT(X/2)=X/2LOOPCASEX=10EXITOTHERWISEY=Y+XENDCASEENDDO?Y,X【例】逐条显示员工.DBF表中性别为“女”的记录。********SCAN…ENDSCAN语句示例*********SETTALKOFFUSEJYJLSCANFOR性别=”女”DISPLAY&&显示当前记录WAITENDSCANUSESETTALKONRETRUN三、过程和自定义函数SETTALKONCLEARS=0INPUT“输入矩形的长:”TOLINPUT“输入矩形的宽:”TOWDOAREAWITHS,L,W?”矩形的面积:”,SSETTALKONRETURNPROCDUREAREAPARAMETERSMJ,A,BMJ=A*BRETURNENDPROCSETTALKOFFCLEARSTORE0.00TORINPUT请输入圆的半径:TOR?半径为,R,的圆面积为:??CIRCLEAREA(R)RETU**********CIRCLEAREA***********FUNCTIONCIRCLEAREA(A)AREA=PI()*A*ARETURNAREAENDPROC四、变量的作用域*============主程序模块============SETTALKOFFCLEARA=1B=10?主程序中A,B原来的值是:,A,BDOS1?执行过程S1后A,B的值是:,A,BRETURN*============子程序模块============PROCS1PRIVATEAA=5B=100?在过程S1中的A,B的值是:,A,BENDPROC五、数据表的操作(1)浏览数据:LIST、BROWSE(2)COPYTO/COPYSTRUCTURETO(3)记录的修改:REPLACE(4)记录的定位:绝对和相对定位(GOSKIP),顺序定位(LOCATE、CONTONUE)(5)建立与使用索引:INDEX和SETORDERTO索引标记名、索引查询SEEK表达式(6)统计与分类汇总(SUM、AVERAGE、COUNT、TOTAL)(7)工作取选择与多表操作(SELECT、表别名和SETRELATIONTO)习题1、修改员工表中“技术部”职工编号第一个字母为“J”。REPLACEALL职工编号WITHJ;+SUBSTR(职工编号,2)FOR部门=技术部2、按公式(基本工资+岗位工资+津贴-800)的5%,计算工资表中“扣所得税”字段。REPLACEALL扣所得税WITH(基本工资+岗位工资+津贴)*0.053、计算工资表中得实发工资字段:实发工资=基本工资+岗位工资+津贴-扣所得税REPLACEALL实发工资WITH基本工资+岗位工资+津贴-扣所得税4、统计计算生产部“应发工资”总和并保存到变量syf中。Sum实发工资forsubstr(职工编号,1,1)=Ytosyf5、浏览窗口中显示全部职工的“职工编号”、”姓名“、“部门”和“实发工资”信息。Select1Use员工Select2Use工资SetordertotagbhSelectASetrelationto职工编号intobBrowse职工编号,姓名,部门,b-实发工资3、题型(1)判断题(2)选择题(3)填空题(4)书写SQL语句(5)阅读题(6)程序填空题(7)编程题
本文标题:VFP复习- 题库私聊群主有优惠资料
链接地址:https://www.777doc.com/doc-3248585 .html