辽宁专升本计算机公共课全部讲义很全很强大.docx
- 文档编号:5375696
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:40
- 大小:40.02KB
辽宁专升本计算机公共课全部讲义很全很强大.docx
《辽宁专升本计算机公共课全部讲义很全很强大.docx》由会员分享,可在线阅读,更多相关《辽宁专升本计算机公共课全部讲义很全很强大.docx(40页珍藏版)》请在冰豆网上搜索。
辽宁专升本计算机公共课全部讲义很全很强大
VisualFoxPro=>关系型数据库管理系统=>软件:
数据库管理系统DBMS关系型:
数据采用二维表格的数据模型
现实世界关系模型VFP
二维表关系表文件
行元组记录(记录号)
列属性字段(字段名字段类型字段长度小数位)=>字段变量
三种关系运算:
选择(行=>元组=>记录:
短语for)投影(列=>属性=>字段短语field)
连接(表1+表2=>新表:
命令join)
VFP:
5*2=10
字段类型:
字符型C(254:
4*2=8):
可以是字母、数字等各种字符型文本,如学生姓名、系部、电话号码等。
货币型:
货币单位,如教师的工资、商品的价格等。
数值型N(20:
100.05,1):
整数或小数,如学生成绩。
浮点型:
功能上类似于“数值型”,其长度在表中最长可达20位。
日期型D【8】:
由年、月、日构成的数据类型,如出生日期。
日期时间型T【8】:
由年、月、日、时、分、秒构成的数据类型,如员工上班的时间。
双精度型:
双精度数值类型,一般用于要求精度很高的数据。
整型I【4】:
不带小数点的数值类型,如开课学期、学分、学时数等。
逻辑型L【1】:
值为“真”(.T.)或“假”(.F.),如表示订单是否已执行完。
备注型M【4】:
不定长的字符型文本,如用于存放学生个人简历等;它在表中占用4个字节,所保存的数据信息存储在以.fpt为扩展名的文件中。
通用型G【4】:
用于标记电子表格、文档、图片等OLE对象(对象链接与嵌入),如用于存放MicrosoftExcel电子表格等。
它在表中占4个字节。
说明:
备注型通用型存放指向.fpt为扩展名的备注文件
字符型(二进制):
同“字符型”,但是当代码页更改时字符值不变,如某种二进制代码字符或其他语言代码等。
代码页是供计算机正确解释并显示数据的字符集,通常不同的代码页对应不同的平台或语言。
备注型(二进制):
同“备注型”,但是当代码页更改时备注不变。
部门表.dbf商品表.dbf
性别="男"<=>字段(字段变量)=常量
内存变量:
赋值:
=store
输出:
“a”-“z”:
97-122“A”-“Z”:
65-90“0”-“9”:
48-57“”:
32
逻辑运算“
运算法则:
L1andL2:
L1L2同时为真运算结果是真:
.t.and.t.=>.t.
L1orL2:
L1L2只要其中一个为真运算结果是真:
.t.or.f.=.t..f.or.t.=.t.
.t.or.t.=.t.
应用:
文字=>条件
and多个条件同时满足:
单价在100到1000之间
单价>=100and单价<=1000单价>10and类别代码!
="01"
or多个条件满足一部分:
主讲课程="C语言"or主讲课程="编译原理"
以逻辑型字段做条件
setfilterto四级通过<=>setfilterto四级通过=.t.
setfilterto!
四级通过<=>setfilterto四级通过=.f.
deletefor四级通过<=>deletefor四级通过=.t.
deletefor!
四级通过<=>deletefor四级通过=.f.
函数:
背:
格式(函数名,函数参数,功能:
填空)=>计算:
写结果
独立成题与其他知识相结合综合考察
格式:
函数名(参数1,参数2,参数3)字符函数
计算结果(返回值):
N
AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])=>位置AT(c1,c2)
LEN(<字符表达式>)=>长度
OCCURS(<字符表达式1>,<字符表达式2>)=>个数
取子串:
=>原来的顺序汉字子串长度一定是偶数
LEFT(<字符表达式>,<数值表达式>)
RIGHT(<字符表达式>,<数值表达式>)
SUBSTR(<字符>,
生成空格:
space(n)replicate(c,n个数)
删除空格:
(前导、尾随空格)=>中间的保留
TRIM(<字符表达式>)<=>rtrim(<字符表达式>)LTRIM(<字符表达式>)ALLTRIM(<字符表达式>)
转换:
LOWER(<字符表达式>)UPPER(<字符表达式>)
宏替换:
&字符变量=>去掉字符变量值的定界符(''""[])
x='100+200'
?
&x=>100+200=>N表达式
x="{^2011-12-27}+3"
?
&x=>{^2011-12-27}+3=>D表达式
日期函数:
1.系统日期函数DATE()=>D
2.求年函数YEAR()3.求月函数MONTH()3.求日函数DAY()=>N
求年龄:
year(date())-year(出生日期)=>2012-1986=?
?
5.系统时间函数TIME()=>C
6.系统日期时间函数:
datetime()=>T日期时间型
转换函数
1.字符型转换为日期或日期时间
格式:
CTOD(<字符型表达式>)CTOT(<字符型表达式>)
2.日期或日期时间转换为字符串
格式:
DTOC(<日期型表达式>|<日期时间型表达式>[,1])
TTOC(<日期时间表达式>[,1])
3.N数值型转换为C字符型函数STR()
格式:
STR(<数值表达式>[,<长度>][,<小数>])
4.(由数字字符构成的)字符型转换成数值型函数VAL()
格式:
VAL(<字符表达式>)
5.ASCII码转换成字符函数CHR()
格式:
CHR(<数值表达式>)
6.取字符的ASC1I码函数
格式:
ASC(<字符表达式>)
测试函数=>L(.t..f.)N
9.条件测试函数
格式:
IIF(<逻辑表达式L>,<.t.表达式1>,<.f.表达式2>)
8.数据类型测试函数
格式:
VARTYPE(<表达式>)
T:
日期时间型X:
NULL值U:
不确定
7.“空”值测试函数=>假空:
0空格
格式:
EMPTY(<表达式>)
10.空值(NULL值)测试函数=>真空:
不确定的值
格式:
ISNULL(<表达式>)
FOXPRO:
数据库(.DBF)
VFP:
数据库(.DBC=>database:
各种数据文件(.DBF.IDX.CDX)集合)
表文件(.DBF)
数据库操作命令;opendatabase/closedatabase/modifydatabase/deletedatabase
表:
数据库表(包含于数据库的表)<=>自由表(不包含于任何数据库的表)
添加与移去实现互换
单表操作:
(.DBF)=>三要素:
表名结构(字段仔细看)记录(略看)
格式:
命令动词【范围】【for条件】【field字段1,字段2……】
【范围】:
all/recordn/nextn/rest
建立:
create表名.dbf=>表设计器=>输入字段信息
输入记录
=>新建的表处于打开状态
打开:
已经存在的表
use表名
使用=>重点
关闭:
usecloseall
表结构操作:
liststructure/displaystructure
modifystructure:
增加新字段删除字段修改字段名、类型、长度,建立索引
表记录操作:
浏览:
list=>alldisplay=>默认next1:
当前记录=>写结果(针对表文件)
不显示记录号:
listoffdisplayoff
setheadingoff:
不显示字段名只显示字段值
程序实现显示记录:
p44-38
选择记录:
移动指针打开表文件指针指向表第一条记录
自动移动:
list(从当前位置自动移动到文件末尾)countsumaverage=>是否有范围参数
listnext1=>只对当前记录操作不移动指针
命令移动:
绝对移动指针到第N条记录:
gon(n:
记录号)goton(n:
记录号)
=>绝对的移动指针到第n条记录(与物理顺序、逻辑顺序无关,与setfilterto无关)
逻辑顺序优先于物理顺序
gotop(物理顺序:
top=1)=>bof()=.f.
skip-1
?
recno(),bof()=>1.t.
(1-1=0没有记录号为0的记录bof()第一条记录之前为文件开头)
逻辑顺序(升序):
top建立索引字段值的最小值与记录号无关
gobottom(物理顺序:
bottom=最后一条记录)=>eof()=>.f.
bottom建立索引字段值的最大值与记录号无关
skip:
按照索引字段值移动到下一跳记录
?
recno(),eof()=>4+1=5.t.(最后一条记录后边)
相对定位:
从当前记录向前或向后移动指针n次:
skip[n](向前记录号减小:
n<0
向前记录号增大:
n>0)
程序中:
skip<=>skip1
验证移动结果:
displayrecno()=>输出当前记录的记录号
文件开头:
第一条记录前边:
go1skip-1=>bof()=.t.
文件末尾:
最后一条记录后边:
gobottomskip=>eof()=.t.
增加记录:
任意位置插入记录:
insert最后一条记录后边追加:
append
INSERT:
是在当前记录之后插入新记录,输入个字段值;
INSERTBEFORE是在当前记录之前插入新记录,输入个字段值;
INSERTBLANK是在当前记录之后插入空记录,不输入个字段值;=>程序使用
INSERTBEFOREBLANK是在当前记录之前插入新空记录,不输入个字段值。
=>程序使用
append:
最后一条记录后边追加实际记录
appendBLANK:
最后一条记录后边追加空记录
程序中追加、插入记录:
append/insertblank
自动用命令成批追加:
=>新表与提供数据表结构要一致
use表1
copyto新表for条件=>结构+数据//copystructureto新表=>结构
use新表
appendfrom提供数据表文件=>将提供数据表文件记录成批追加到新表
//appendfrom提供数据表文件.txttypesdf=>=>将提供数据文本文件成批追加到新表
从数组追加记录
appendfromarray数组名
p48-4250-4438-31
删除记录p39-3345-39
(1)逻辑删除(*):
delete[范围]【for条件】delete=>默认范围:
next1
删除的状态设置:
setdeleteon:
进行逻辑删除的记录不在显示
setdeleteoff:
进行逻辑删除的记录显示
恢复删除(去掉*,针对逻辑删除)
recall[范围]【for条件】recall=>默认范围:
next1
(2)物理删除:
pack回车=>逻辑删除的记录
(3)清除(所有记录=>只有表结构的空表):
zap回车<=>deleteall
pack
测试函数:
?
deleted()=>逻辑删除:
.t.
修改记录
自动:
(程序中常考)
(1)VFP命令:
replace字段with表达式【范围】【for条件】=>默认范围:
next1
p47-41p36-29
(2)SQL:
update表名set字段名=表达式
(3)程序:
@行,列say""get字段名
read
2010-56:
replace出生年月with{^1968-10-12}=>操作的范围:
当前记录
默认范围:
next1四条记录:
displaydeleterecallreplace
dowhile!
eof
replaceall………………=>所有记录,指针文件末尾eof()=.t.!
eof()=.f.=>执行一次
enddo
dowhile!
eof()
replace………………=>>默认范围:
next1=>执行多次
skip=>skip1移动指针
enddo
程序中常考:
use表=>指针位于第一条记录
dowhile!
eof()=>指针未到文件末尾
replace字段with表达式
skip=>指向下一条
enddo
手动:
browseeditchange
记录重新排列:
排序和索引
物理顺序:
输入先后顺序,由记录号指定
逻辑顺序:
按照某个字段值升序/a或降序/D重新记录排列建立的顺序:
重新排列:
排序和索引
排序:
操作步骤、结果显示=>在新表中显示
操作步骤:
use原始表
sorton字段1[/D][/a],【字段2[/D][/a]】to排序表【for条件】=>建立排序表
use排序表=>结果显示
list/display=>结果显示
籍贯为辽宁或者男生或者教授或副教授
for籍贯="辽宁"性别="男"
职称="教授"or职称="副教授"
排序表:
1计算机586
2计算机578
3通信610
4通信580
索引=>目录章节标题+页码
索引文件:
按照字段逻辑顺序记录号+字段值排序
=>索引文件(.idx)不单独使用与表(.dbf)一起使用
命令:
use表.dbf
list=>物理顺序显示:
记录号123………………
indexon字段to索引文件.idx
list=>结果显示,按照字段建立的逻辑顺序代替物理顺序
12.30
考察方式1:
与移动指针相结合
gotopgobottom:
逻辑顺序中的
gon:
物理顺序中的记录号为n的记录,
与逻辑顺序无关
skip:
逻辑顺序中的下一条
建立单索引:
indexon字段to索引文件.idx=>存放一个逻辑顺序
indexon字段1(C)+字段2(C)to索引文件.idx
str(n字段,字段长度,小数位)=>C
Dtoc()=>C
iif(L,'字符1','字符2')=>C
indexon年月+职工号tosd
200610002200610003200610004200610011200610015
200610106200610207200610336
usebooks
indexon价格tojgsy.idx
indexon图书名totsmsy.idx
复合索引文件:
在一个复合索引文件同时存放多个索引顺序,以标识名进行区分
(1)结构复合索引文件:
复合索引文件文件名与表文件同名,扩展名是.CDX=>与表文件同时打开
学生.dbf=>构复合索引文件:
学生.CDX:
tag
(2)独立复合索引文件:
扩展名是.CDX文件名任意
(1)建立结构复合索引文件:
与表文件同名.CDX
INDEXON<索引关键字表达式>TAG<标识名>
usebooks
indexon价格tagjgsy=>建立一个隶属于books.cdx标识名为jgsy的索引顺序,
indexon图书名tagtsmsy=>建立一个隶属于books.cdx标识名为tsmsy的索引顺序,
=>books.cdx:
jgsytsmsy
(2)建立独立复合索引文件
INDEXON<索引关键字表达式>TAG<标识名>OF<独立复合索引文件名.CDX>
usebooks
indexon价格tagsy1ofdlfhsy.cdx
indexon字段2tagsy2ofdlfhsy.cdx
indexon字段3tagsy3ofdlfhsy.cdx
=>建立dlfhsy.cdx:
sy1sy2sy3
主索引:
可以建立多个索引但是主索引只能有一个
按照建立的顺序:
最后建立的是主索引
按打开的顺序:
最先打开的是主索引
打开索引文件:
=>打开单索引、独立复合索引
(1)单独打开已经建立的索引文件
use表
setindextojgsy,tsmsy,索引文件3,索引文件4,索引文件5
(2)打开表文件同时打开已经建立的索引文件
use表indexjgsy,tsmsy
主索引切换
setorderton/索引文件名=>n:
打开顺序中第n个作为主索引
索引文件名文件:
指定索引文件作为主索引
关闭:
closeindex/setindexto/usesetindexto=>关闭所有索引:
单结构复合独立复合
考察方式2:
作为其他命令的前提
其他相关命令:
(1)查找——VFP
顺序查找:
在物理顺序中找到满足条件的第一条记录=>移动指针到满足条件的记录
locatefor查找条件=>for不可省略
continue=>继续找到满足locate命中for条件的其他记录必须与locate一起使用
locatefor"刘"$姓名
locatefor姓名=NAME=>内存变量name与字段变量姓名是否相等做为查询条件
索引查询:
在逻辑顺序中找到满足条件记录=>找什么就按照相应字段建立索引
use表=>找‘钱真多’
indexon查询字段tosy=>按姓名字段建立索引
find查询内容(常量:
N、C:
定界符可以省略)/seek查询内容(常量:
N、C''、D{^}、L.t.)
=>find钱真多/seek‘钱真多’
区别1:
查找类型:
find:
NC(定界符可以不写)seek:
N、C''、D{^}、L.t.
区别2:
find&变量=>C变量seek变量
验证:
命令:
display
函数:
=>选择结构iffound()if!
eof()
found()=>找到:
.t.指针指向找到的记录recno()EOF()=>.f.
没找到:
.f.指针指向文件末尾eof()=>.t.
!
EOF()=>找到:
EOF()=>.f.!
EOF()=>.t.执行if后的语句
错误:
ifeof()<=>if.f.=>不执行if后的语句
黄猛萍刚红庆
find100
find张三
seek200
seek‘张三’
xxm="里斯"
seekxxm
find&xxm
seek{^2012-12-21}
setfilterto性别="男"=>保留性别为"男"的记录
123456789
rest
next5
统计与计算:
字段p39-32p37-30
count/sum/averageto内存变量
纵向:
=>所有记录
sum/average数值字段1,数值字段2,数值字段3to内存变量1,内存变量2,内存变量3
统计记录个数、求N字段和、平均(纵向)
横向:
一条记录
replacall实发with工资+津贴
分类汇总计算:
分类(索引)+汇总(计算:
求和)
use表
indexon汇总字段tosy=>分类
totalon汇总字段to汇总表文件【fileds字段1,字段2,字段3】
=>汇总:
对N字段求和
use汇总表文件
list、display、?
=>查看结果:
按照汇总字段记录分成几类在汇总文件中就含有几条记录
计算:
calculatecnt()/sum()/avg()/max()/min()to内存变量
索引字段部门号:
02020303040404
汇总字段部门号:
020304
表复制(copy)
(1)复制表结构:
use原表(要复制的表)
copystructureto目标表(只复制结构:
只有结构的空表)
use目标表
appendblank
replace/@saygetread
……
(2)复制表数据:
use原表(要复制的表)
copyto目标表【范围】【for条件】(结构+数据)
use目标表
……
应用:
成批追加
复制记录到数组:
use原表(要复制的表)
copytoarray数组名for条件
(3)生成表结构描述文件.dbf:
将表字段信息(字段名字段类型宽度)转换为记录
有4个字段:
FIELD_NAMEFIELD_TYPEFIELD_LENFIELD_DEC
记录:
把某个表的字段信息变成记录
步骤:
use原表(要复制的表)
copyto表结构描述文件名structureextended
use表结构描述文件名=>查看结果
list
应用:
=>自动生成新表
create新表from表结构描述文件名=>自动建表
use新表
……
关闭
多表操作:
工作区:
select数值(1-32767)、A
(1)-J(10)、表名
选择工作区:
select数值、A-J、
转换工作区:
select数值、A-J、表名
select0:
选择最小号空工作区
字段:
当前工作区打开的表为当前表
非当前工作区打开的表使用其字段:
表名.字段名表名->字段名
工作区名.字段名工作区名->字段名
关联(临时关系):
两个表彼此独立的指针建立联系,同时移动
主动表:
指针移动自主
被动表:
按照关联方式指针移动随着主动表被动移动
按公共字段建立关联:
select工作区1
use被动表
indexon公共字段tosy
select工作区2
use主动表
setrelationto公共字段into被动表[additive:
一个主动表同时与多个被动表建立关联]
2011-552010-522009-552009-522008-522007-542006-492005-642005-572005-552005-50
按记录号相等建立关联:
主动表与被动表指针同时指向记录号相等的记录
select工作区1
use被动表
select工作区2
use主动表
set
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 辽宁 计算机 公共课 全部 讲义 很全很 强大