数据库讲义.docx

上传人:b****5 文档编号:29999555 上传时间:2023-08-04 格式:DOCX 页数:19 大小:23.74KB
下载 相关 举报
数据库讲义.docx_第1页
第1页 / 共19页
数据库讲义.docx_第2页
第2页 / 共19页
数据库讲义.docx_第3页
第3页 / 共19页
数据库讲义.docx_第4页
第4页 / 共19页
数据库讲义.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库讲义.docx

《数据库讲义.docx》由会员分享,可在线阅读,更多相关《数据库讲义.docx(19页珍藏版)》请在冰豆网上搜索。

数据库讲义.docx

数据库讲义

数据类型

数据是反映客观事物属性的记录,分为数值型和字符型

将数据细分为:

字符型

数值型

日期型

日期时间型

逻辑型

备注型

通用型

字符型

字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。

可以包含任何可以显示的字符、汉字和符号,最大长度为254个字符,每个字符占用一个字节,一个汉字占2个字节。

字符型常量使用时必须用定界符双引号(“”)或单引号(‘’)或([])括起来。

例:

“河北” 占四个字节,为4个字符

“Heisboy” 占9个字节,为9个字符

"ab+cd"占5个字节,为5个字符

数值型

数值型数据是描述数量的数据类型,又分为:

数值型N

数字0~9,小数点和正负号组成,最大长度20个字符

浮点F

高精度的数值型数据,只是在存储形式上采取浮点格式

双精度型B

更高精度的数值型数据,只用于定义数据表中的字段类型

整型I

不包含小数点部分的数值型数据,只用于数据表中字段类型定义

货币型Y

数据的第一个数字前冠一个货币符号($),最多保留4位小数

setcurrencyto<货币符号>重新设置货币符号

例:

setcurrencyto“¥”

日期型

日期型D

用于表示日期的数据,长度固定为8个字符

默认格式用{mm/dd/yyyy}

日期时间型T

包括日期和时间的数据,长度固定为8个字符

默认格式用{mm/dd/yyyyhh:

mm:

ss}

逻辑型

描述客观事物真假的数据,用于表示逻辑判断结果。

逻辑型数据只有真(T,Y)和假(F,N)两种值,长度固定为1个字符

例:

X=5

Y=8

?

X>Y

备注型

用于存放较长的字符型数据类型,没有数据长度限制,受限与现有的磁盘空间。

它只用于数据表中字段类型的定义,字段长度固定为4个字符,而实际数据存放在与数据表文件同名的备注文件中,长度根据数据的内容而定

通用型

用于存放OLE对象的数据,OLE对象可以是电子表格、文档、图片等。

它只用于数据表中字段类型的定义,字段长度固定为4个字符,而实际数据长度受限于现有的磁盘空间

数据存储

数据的输入输出是通过数据的存储设备完成的,这些供数据存储的常量,变量,数组,字段,记录和对象称为数据存储容器

1)常量2)内存变量

3)数组变量4)字段变量

5)记录6)对象

常量

在运行过程中,存放在内存中不变化的数据

数值型常量:

数0~9,小数点和正负号组成的整数或实数

浮点型常量:

数值型常量的浮点格式

字符型常量:

也称字符串,使用时用””,’’,[]括起来

逻辑型常量:

必须用“.”括起来

日期型常量:

用“{}”括起来

日期时间型常量:

用“{}”括起来

日期型常量

使用Set命令确定日期常量的格式

Set命令

功能

SetMarkTo[日期分隔符]

确定日期数据的分割符号

SetCenturyOn/Off

确定日期数据的年份字符数(On-4个字符,Off-2个字符)

SetDate[To]American/Mdy/Ymd

确定日期数据的指定格式

SetStrictdateTo[0/1/2]

设置是否对日期数据的格式进行检查

变量

指在程序运行过程中其值可以改变的量,用一个标识符表示,这个标识符称变量名,变量名可以使用字母,数字和下划线,且首字符必须是字母,长度不得超过254个字符,变量的种类有:

³内存变量

³数组变量

³字段变量

内存变量

内存变量是存放在计算机内存中的变量,用户在使用它时,需定义内存变量的名称和内存变量赋值。

命名:

是由字母、数字、下划线或汉字组成的,但第一个字符不能是数字。

赋值:

内存变量的定义通过赋值语句完成,它的类型取决于接受的数据类型,有数值型,浮点型,字符型,逻辑型,日期型和日时间型

赋值命令:

store<表达式>to<内存变量表>

<内存变量>=<表达式>

将表达式的值赋给内存变量

内存变量的类型由所赋的值决定

输出命令:

/?

[<表达式>][at<列号>]

一次计算表达式表中表达式的值,并将值显示在屏幕上输出?

显示结果在下一行第一列输出

显示结果在当前行当前列输出[at<列号>]表示在指定的列输出

var1=“世界杯”

var2=12.5

store{^2002/08/01}tovar3 

store“hello”tovar4,var5,var6 

lg=.t.

nam=var2

nam1=var2+6

?

var1,var4

?

?

var1,var2

?

var3

?

var4at20

?

var2+6

内存变量的作用域

全局型内存变量:

格式Public<内存变量表>

在全部程序、过程和字定义函数,以及它调用的程序、过程和自定义函数中有效。

即使整个程序结束,全局型内存变量也不被释放,值仍保存在内存中。

局部型内存变量:

格式Private<内存变量表>

在定义它的程序以及被该程序调用的程序、过程和局部内存变量函数中有效。

一旦定义它的程序运行完毕,局部型内存变量将从内存中释放

本地型内存变量:

格式Local<内存变量表>

只能在定义它的程序中有效,一旦定义它的程序运行完毕,本地型内存变量将从中释放

数组变量

VFP为使问题变得简单和其它高级语言一样。

可以使用数组。

数组也是一种内存变量,数组实际上是按一定顺序排列的一组内存变量,用一个名字代表,称为变量名。

如:

A1,A2,…A40表示从编号1顺序排列到40用一个字母A表示数组变量的变量名A8表示A数组中的第8个学生的成绩称A1,A2,…A40为名字为A的数组A8则是A数组中排列顺序第8的变量被称作A数组中的一个数组元素。

是一组有序的内存变量的集合,每个内存变量都是这

个数组的一个元素,每个元素在内存中独占一个内存单元,且通过数组名和下标来访问。

同一个元素在不同时刻可以存放不用类型的数据

同一个数组中,每个元素可以是不同的数据类型

数组必须先定义后使用

定义:

dimension<数组名1>(<下标1>)[,<下标2>])

[,<数组名2>(>(<下标1>)[,<下标2>])]……

declare<数组名1>(<下标1>)[,<下标2>])

[,<数组名2>(>(<下标1>)[,<下标2>])]……

dimensiona(10),X(3,4)

1)VFP只能定义一维和二维数组,数组中的成员称数组元素

2)数组元素由数组名和其后用小括号括起来的下标组成,如:

A(6),B(8)。

3)下标可以是常数、变量或表达式。

如:

A(8),A(I),A(I+3)(若下标为变量或表达式中有变量时,应事先赋值)

4)下标值必须>0,即VFP规定各下标的下界为1

5)数组大小由下标值的上下限决定,数值下限为1,上限在定义数组时由数值表达式给出。

如果定义数组时给出两个数值表达式,则定义的数组是二维数组。

6)下标若为非整数时,系统自动取其整数。

DIMENSIONX(3.5)→DIMENSIONX(3)

7)若要使用数组必须先定义

8)数组元素象简单变量一样可被赋值

9)数组中的数组元素可以存放不同类型的数据,数据的类型由最后一次赋值决定。

(即同一数组的不同元素,数据类型可以不一致)

10)数组一经定义,数组中元素的值自动取逻辑值.F.

例:

Demesiona(10)

a

(1)=0

a

(2)=“123456”

a(3)=.F.

a(4)={^2002-12-05}

?

a

(1)

?

a

(2)

?

a(3)

?

a(4)

?

a(5)

函数

函数的要素

函数有函数名、参数、函数值3大要素。

◆函数名起标识作用

◆参数是自变量,一般是表达式,写在括号里.有的函数没有参数,称"哑参数".如DATE()

◆函数运算会返回一个值,称为函数值,函数值会因参数而异

◆函数的类型

函数的类型即函数值的类型,将其分为5类:

1)数值计算函数

2)字符处理函数

3)数据转换函数

4)日期和时间函数

5)测试函数

取整函数int(<数值表达式>)

功能:

返回<数值表达式>的整数部分

函数返回值的类型N

int(37.59)

num=-34.8

?

int(num)

?

int(36.5)

?

int(36/5)

?

int(-36.5)

?

int(5*20.1)

求极值函数max(<表达式1>,<表达式2>…)

min(<表达式1>,<表达式2>…)

功能:

返回多个<表达式>中数据值最大/最小的参数

num1=496

num2=468

?

max(num1,num2) 

?

max('A','B')

?

max('李','赵')

setcurrencyto"¥”

?

max('¥123','¥127')

?

max({^1999/02/05},{^1998/06/09})

取余函数mod(<数值表达式1>,<数值表达式2>)

功能:

返回两个数值相除后的余数。

<数值表达式1>是被除数,<数值表达式2>是除数。

说明:

余数的正负号与除数相同

若两数能整除则值为0

如果被除数与除数同号,则函数值即为两数相除的余数,或者mod(x1,x2)=x1-int(x1/x2)*x2

如果被除数与除数异号,则函数值即为两数相除的余数再加上除数的值,或者mod(x1,x2)=x1-int(x1/x2)*x2+x2

注:

数值表达式2的值不容许为0

?

mod(8,3)

?

mod(-10,-3)

?

mod(-10,3)

?

mod(10,-3)

?

mod(4*9,90/9)

绝对值函数abs(<数值表达式>)

功能:

返回<表达式>的绝对值

说明:

函数返回值的类型N

?

abs(25-30)

四舍五入函数round(<数值表达式1>,

功能:

对<数值表达式1>的数值进行四舍五入

i指明四舍五入的位置

说明:

1)i表示小数保留的位数,应为数值型数据

2)i>0时代表小数部分的舍入位数,小数保留i位,第i+1位四舍五入

3)i=0时,表示保留整数位,将小数部分四舍五入

4)i<0时,代表整数部分的舍入位数,小数点左边第i位进行四舍五入,则函数值为一个舍入后的整数。

?

round(43.1163,2)

x=1024.0186

?

round(x,2)

?

round(x,-2)

?

round(1735.28,-2)

?

round(1735.28,-3)

?

round(3.1415926,3)

?

round(123.456,-2)

?

round(123.456,0)

?

int(123.456),int(-123.456)

?

round(123.456,1),round(123.456,0),round(123.456,-1)

?

max(30,-352,20*4)

?

mod(17,6),mod(17,-6),mod(-17,6),mod(-17,-6)

?

abs(2*3-10),sqrt(2*6+4)

字符处理函数

求字符串长度函数len(<字符表达式>)

功能:

返回<字符表达式>的字符个数

说明:

半角标点符号和空格占1个字符位置全角标点符号和汉字占2个字符位置,返回函数值为数值型

str1=“Computer_System:

计算机系统"

?

len(str1)

求子串位置函数

at(<字符表达式1>,<字符表达式2>,<数值表达式>)

atc(<字符表达式1>,<字符表达式2>,<数值表达式>)

功能:

若<字符表达式1>是<字符表达式2>的子串,则返回

<字符表达式1>在<字符表达式2>中第n次出现的位置,否则返回0。

n为数值表达式的计算结果,缺省时为1

说明:

函数值为数值型

atc()在子串比较时不区分字母的大小写

str1="ComputerSystem:

计算机系统"

?

at("PUt",str1),at("put",str1)

?

atC("PUT",str1),atC("put",str1)

?

at("系统",str1)

?

at("m",str1,2)

统计字符出现次数

occurs(<字符表达式1>,<字符表达式2>)

功能:

返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。

若第一个字符串不是第二个字符串的子串,则返回0

str1="ComputerSystem:

计算机系统"

?

occurs("te",str1)

字符串匹配函数

like(<字符表达式1>,<字符表达式2>)

功能:

比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真,否则返回逻辑假

说明:

<字符表达式1>中可以包含通配符*和?

,*代表多个任意字符,?

代表一个任意字符

str1="ComputerSystem:

计算机系统"

?

like("系统",str1),like("*系统",str1)

?

like("computer*",str1),like("Computer*",str1)

首字符测试函数

isalpha(<字符表达式>)&&测字母

isdigit(<字符表达式>)&&测数字

islower(<字符表达式>)&&测小写字母

isupper(<字符表达式>)&&测大写字母

功能:

若<字符表达式>的首字符分别是字母、数字、小写字母、大写字母,则返回.T.,否则返回.F.

?

isalpha(“Fox”),isdigit("Fox")

?

islower(“Fox”),isupper("Fox")

取子串函数

substr(<字符串表达式>,<起始位置>,<长度>)

left(<字符串表达式>,<长度>)

right(<字符表达式>,<长度>)

功能:

substr()从字符串的指定起始位置取指定长度的子串作为函数值,若长度缺省,则函数从指定位置一直取到最后一个字符

left()和right()分别从字符串的左端和右端取一个指定长度的子串作为函数值

str1="ComputerSystem:

计算机系统"

?

Substr(str1,9,6),left(str1,7),right(str1,10)

?

substr(“database”,4,2)

?

substr(“database”,4)

?

substr(“internation”,6)

删除前后空格函数

trim(<字符表达式>)&&去掉字符串的尾部空格

Ltrim(<字符表达式>)&&去掉字符串首部空格

alltrim(<字符表达式>)&&去掉字符串首尾部空格

说明:

函数值为字符型

str1=“_计算机_"

str2=“等级考试__"

?

["]+str1+str2+["]

?

["]+ltrim(str1)+trim(str2)+["]

?

["]+alltrim(str1+str2)+["]

生成字符串函数

space(<数值表达式>)

replicate(<字符表达式>,<数值表达式>)

功能:

space()返回由多个空格组成的字符串

replicate()返回<字符表达式>复制多次后形成的字符串。

复制次数由<数值表达式>的值决定.

?

replicate("fox",4)+space(4)+replicate("fox",4)

?

”200401”+space

(2)+”王大力”

X=“__1235_word__”

?

trim(x)

?

ltrim(x)

?

rtrim(x)

?

alltrim(x)

?

Left(“internation”,3)

?

right(“internation”,3)

转换函数

数值转换成字符串函数

str(<数值表达式>[,<长度>[,<小数位数>]])

功能:

将<数值表达式>的值转换成字符串,转换时<数值表达式>根据需要四舍五入处理

<长度>指转换后数据的总长度,其中包括符号位、小数点及小数点后的小数位数

小数位数表示转换后的数据小数点后的小数位数,若省略,则表示忽略数据中的小数位,并四舍五入。

说明:

◆省略<长度>、<小数位数>,系统约定字符串长度为10,小数位为0

◆若<长度>、<小数位数>有小数部分,小数部分无效(不四舍五入)

◆若<长度>值超过<数值表达式>的数据位数(整数位数+小数位数+1位小数点),字符串前自动添加适量的空格。

◆若<长度>值小于<数值表达式>的整数部分位数则结果显示一串星号(*)

◆若<长度>值大于<数值表达式>的整数部分位数则优先处理整数部分而自动调整小数位数

Str(142.1,5,2)

str(23.568)

str(23.468)

?

1234.56,str(1234.56,10,3) 

?

str(12345678,5)

?

str(len("abc")+0.345

字符串转换成数值函数

val(<字符表达式>)

功能:

将由数字符号组成的<字符表达式>转换成相应的数值型数据,保留2位小数(小数遵循四舍五入原则)

说明:

若字符串中出现非数字字符,则只转换前面部分

若字符串的首字符为非数字字符(可以是空格),则返回数值0

?

val(“123.456”),val(“A123.45”)

?

val([12A3.45]),val([123.45])

字符串转换成日期或日期时间函数

ctod(<字符表达式>)

ctot(<字符表达式>)

功能:

分别将字符型数据转换成日期型和日期时间型数据

说明:

<字符表达式>必须是与系统设置相同的日期和日期时间格式的字符串

setdatetoymd

setcenturyon

?

ctod("2003/03/10")

?

ctod(“2003-05-06”)

SETDATETOmdy

SETCENTURYon

?

CTOD("06/05/01")

日期或日期时间换成字符串函数

dtoc(<日期表达式>|<日期时间表达式>[,1])

dtos(<日期表达式>|<日期时间表达式>)

ttoc(<日期时间表达式>[,1])

功能:

dtoc()和dtos()将日期数据或日期时间数据的日期部分转换成字符串

ttoc()将日期时间数据转换成字符串,使用参数1,则返回字符串格式:

yyyymmddhhmmss,采用24小时制

dtoc()日期转换格式为:

mm/dd/yy,使用参数1,则返回字符串格式:

yyyymmdd

dtos()日期转换格式为:

yyyyymmdd

系统日期和时间函数

date()返回系统当前日期,函数值为日期型

time()返回系统当前时间,函数值为字符型

datetime()返回系统当前的日期和时间函数值为日期时间型

求年份、月份和天数函数

year(<日期表达式>|<日期时间表达式>)

month(<日期表达式>|<日期时间表达式>)

day(<日期表达式>|<日期时间表达式>)

说明:

year()返回4位的年份值

在屏幕输出今天是:

今年是:

这个月是:

今天距离30号还有:

时、分、秒函数

hour(<日期时间表达式>)

minute(<日期时间表达式>)

sec(<日期时间表达式>)

在屏幕输出现在的时间是:

时分秒

表达式

由运算符将常量、变量、函数连接起来的式子,其中常量、变量、函数是表达式的特例。

在命令格式中的<表达式>,往往泛指常量、变量、函数和表达式

表达式中每一个运算符都占用一个字符,其中的运算符、标点符号和圆括号都必须使用西文半角符号。

每个表达式经过运算都会产生一个结果,即表达式的值。

根据表达式值的类型,可以将表达式分为算术表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式。

算术表达式

算术表达式的运算结果是数值型常数

优先顺序:

()→函数→**→*,/→%→+,-

?

6/2+3*4-5

?

17%6,17%-6,-17%6,-17%-6

?

2*56/(3+lOG(6))+6

字符表达式

字符表达式的运算结果是字符常数或逻辑型常数

X="中国"

 Y="北京__"

 Z="长城"

X+Y

X-Y+Z

str1="计算机_"

str2="课程"

?

str1+str2,"and",str1-str2+"安排"

关系表达式

关系运算符两侧表达式的类型要一致,关系运算符两边的表达式可以是字符表达式、数值表达式、逻辑表达式和日期时间表达式

关系运算符的优先级:

先计算两侧表达式的值后比较大小

数值比较:

按其值大小进行比较,并且包括正负号

日期数据比较:

日期在前的为小。

逻辑值值比较:

.F.<.T.

字符串进行比较:

按ASCII码值的大小比较,汉字按其机内码值的大小比较。

两个字符串比较时,系统对它们的字符从左向右逐个进行比较,对应字符不同时,根据两个字符的ASCII码值决定两个字符串的大小。

如,"abc"<"abd",结果为.T.。

=为不精确比较,串1尾部的空格不参加比较,串2尾部的空格参加比较.==为精确比较,串1与串2必须一致

?

2<3

?

"a"<"b"

?

8>=8

?

"ABC"<"ABC"

?

"ABC"="ABC"

?

"ABC"="ABC"

?

"ABC"="ABC"

?

"ABC"=="ABC"

?

100<>101

?

'李'$'李明'

作业

1.比较连接运算符“+”与“-”的异同?

2.求下列表达式的值。

⑴AT("人民","中华人民共和国")

⑵STR(123.456,6,2)+"30"

⑶REPLICATE("☆★",2)+"新北京"+SPACE

(2)+"新奥运"+REPLICATE("★☆",2)

⑷TRIM(SUBSTR("VisualFoxPro",7,3))+RIGHT("VisualFoxPro",3)+"6.0"

1、计算val(subs(“奔腾586”,5,1))+len(“VisualFoxPro”)

2、计算subs(right(‘Goodmorningeverybody’,9),6,5)

3、设op=“+”,计算100&88.88

4、设rq1=“2006/3/11”,rq2=ctod(“3/11/2006”),计算year(rq2)+val(rq1)

5、设x=15,执行?

y=x=16,观察执行结果

(1)x1=”123.456”

x2=-23.456

?

val(x1)+round(x2,1)

(2)    store10toy1

store25toy2

?

y1>y2

?

(y1>=y2).or.(y1<>y2)

(3)    store“EF”toz1

store“GH”toz2

?

z1+z2

?

z1-z2

?

.not.(z1=z2)

(4)va

展开阅读全文
相关搜索

当前位置:首页 > 解决方案 > 学习计划

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

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