辽宁专升本计算机公共课全部讲义很全很强大.docx

上传人:b****6 文档编号:5375696 上传时间:2022-12-15 格式:DOCX 页数:40 大小:40.02KB
下载 相关 举报
辽宁专升本计算机公共课全部讲义很全很强大.docx_第1页
第1页 / 共40页
辽宁专升本计算机公共课全部讲义很全很强大.docx_第2页
第2页 / 共40页
辽宁专升本计算机公共课全部讲义很全很强大.docx_第3页
第3页 / 共40页
辽宁专升本计算机公共课全部讲义很全很强大.docx_第4页
第4页 / 共40页
辽宁专升本计算机公共课全部讲义很全很强大.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

辽宁专升本计算机公共课全部讲义很全很强大.docx

《辽宁专升本计算机公共课全部讲义很全很强大.docx》由会员分享,可在线阅读,更多相关《辽宁专升本计算机公共课全部讲义很全很强大.docx(40页珍藏版)》请在冰豆网上搜索。

辽宁专升本计算机公共课全部讲义很全很强大.docx

辽宁专升本计算机公共课全部讲义很全很强大

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1