Fopro教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義_第1頁
Fopro教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義_第2頁
Fopro教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義_第3頁
Fopro教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義_第4頁
Fopro教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1

全國計(jì)算機(jī)等級考試二級VF教材考點(diǎn)+公共基礎(chǔ)培訓(xùn)講義

全國計(jì)算機(jī)等級考試二級VF教材講義

筆試:100分

VF教材:70分

公共基礎(chǔ)知識:30分(選擇題:20分,填空題:10分)

筆試的題型主要有兩種:選擇題和填空題

選擇題:70分,35個(gè)選擇題,每個(gè)2分

填空題:30分,15個(gè)填空題,每個(gè)2分

上機(jī)題型:

1>基本操作題:30分,一般有4個(gè)小題(7、7、8、8)

2、簡單應(yīng)用題:40分,一般有2個(gè)小題(20、20)

3、綜合應(yīng)用題:30分,一般有1個(gè)小題,中間包含若干小題

上機(jī)題型:

必須掌握的簡單題型:1章、3章、5章、8章

重點(diǎn)掌握的題型:4章、6章、7章

難點(diǎn)掌握的題型:2章

第1章VisualFoxPro數(shù)據(jù)庫基礎(chǔ)

1.1數(shù)據(jù)庫基礎(chǔ)知識

1.1.1計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展

1、數(shù)據(jù)與數(shù)據(jù)處理

數(shù)據(jù)的概念:可以存儲在某種介質(zhì)上面的符號

2、計(jì)算機(jī)數(shù)據(jù)管理

數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。計(jì)算機(jī)對數(shù)據(jù)的管理是指對數(shù)據(jù)的組織、分類、編碼、存

儲、檢索和維護(hù)提供操作手段。

數(shù)據(jù)管理主要經(jīng)歷了三個(gè)階段:(筆試考點(diǎn))

①人工管理階段

②文件系統(tǒng)階段

③數(shù)據(jù)庫系統(tǒng)階段

數(shù)據(jù)庫的概念:在計(jì)算機(jī)中的倉庫

為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件稱為數(shù)據(jù)庫管理系統(tǒng)

0簡稱為DBMS。(筆試考點(diǎn))

VF到底是什么?

VF就是一個(gè)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

1.1.2數(shù)據(jù)庫系統(tǒng)

1

1、數(shù)據(jù)庫有關(guān)概念

①數(shù)據(jù)庫:DataBase,簡稱為:DB

②數(shù)據(jù)庫管理系統(tǒng):DBMS

③數(shù)據(jù)庫應(yīng)用系統(tǒng):DBAS

④數(shù)據(jù)庫管理員:DBA

DBA的職責(zé):(筆試考點(diǎn))

?參與數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)和建立

?負(fù)責(zé)數(shù)據(jù)庫管理系統(tǒng)的安裝和升級

?規(guī)劃和實(shí)施數(shù)據(jù)庫備份和恢復(fù)

?控制和監(jiān)控用戶對數(shù)據(jù)庫的存取訪問

?監(jiān)控?cái)?shù)據(jù)庫的運(yùn)行

?支持開發(fā)和應(yīng)用數(shù)據(jù)庫的技術(shù)

倉庫一〉數(shù)據(jù)庫

倉庫管理員一〉DBA

2、數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

①實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余(冗余就是指重復(fù)、多余)

②采用特定的數(shù)據(jù)模型

③具有較高的數(shù)據(jù)獨(dú)立性

④有統(tǒng)一的數(shù)據(jù)控制功能

1.1.3數(shù)據(jù)模型

1、實(shí)體的描述(筆試考點(diǎn))

①實(shí)體:客觀存在相互之間可以區(qū)分

②實(shí)體的屬性:描述實(shí)體的特性

③實(shí)體集和實(shí)體型:

2、實(shí)體間聯(lián)系及聯(lián)系的種類(筆試考點(diǎn)和上機(jī)考點(diǎn))

實(shí)體間的聯(lián)系有三種:

①一對一?聯(lián)系:1:1

②一對多聯(lián)系:1:N

③多對多聯(lián)系:M:N

例如:

1:1可以表示:一個(gè)學(xué)生對應(yīng)一個(gè)學(xué)號

1:N可以表示:一個(gè)班級對應(yīng)多個(gè)學(xué)生

M:N可以表示:1:N加上N:1

3、數(shù)據(jù)庫模型簡介(筆試考點(diǎn))

①層次數(shù)據(jù)模型

②網(wǎng)狀模型

③關(guān)系數(shù)據(jù)模型(本書講的重點(diǎn)內(nèi)容)

VF是什么?

VF是DBMS,采用的數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型

1

1.2關(guān)系數(shù)據(jù)庫

關(guān)系模型的用戶界面非常簡單,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表格。使用二維表格的形

式來表示實(shí)體和實(shí)體之間的聯(lián)系

1、關(guān)系術(shù)語(筆試考點(diǎn))

①關(guān)系:關(guān)系就是二維表、表格或稱之為實(shí)體

表述關(guān)系:

例如:

學(xué)生(學(xué)號,姓名,性別,班級)

班級(班級,班級名稱)

總結(jié)

黃述的?格式為:

表的名稱(字段名稱1,字段名稱2,...)

表的名稱(列1,列2,……)

②元組:在二維表中,每一行就表示一個(gè)元組

③屬性:二維表中列或稱之為字段

④域:是指二維表中列或字段的取值范圍

⑤關(guān)鍵字:屬性或?qū)傩缘慕M合,關(guān)鍵字可以唯一識別一個(gè)元組

⑥外部關(guān)鍵字:兩個(gè)表有相同的列,不是關(guān)鍵字的那個(gè)列,就是外部關(guān)鍵字。

總結(jié).

會(huì)骨體對應(yīng)著關(guān)系

②關(guān)系對應(yīng)二維表

③實(shí)體中的屬性、關(guān)系中的屬性、二維表中的字段或列是等價(jià)的

④關(guān)系(表格)與關(guān)系(表格)之間是否有聯(lián)系

主要看表格之間是否有相同的屬性或字段或列

2、關(guān)系的特點(diǎn)(筆試考點(diǎn))

①關(guān)系必須規(guī)劃化

②同一個(gè)關(guān)系中不能出現(xiàn)相同的列

③關(guān)系中不能出現(xiàn)完全相同的元組

④在一個(gè)關(guān)系中元組的次序無關(guān)緊要

⑤在一個(gè)關(guān)系中列的次序無關(guān)緊要

3、實(shí)際關(guān)系模型

1.2.2關(guān)系運(yùn)算

1、傳統(tǒng)的集合運(yùn)算

前提條件:進(jìn)行并、差、交集合運(yùn)算的兩個(gè)關(guān)系必須具有相同的結(jié)構(gòu)

①并運(yùn)算

②差運(yùn)行

③交運(yùn)算

1

2、專門的關(guān)系運(yùn)算

①選擇:找出表中滿足條件的元組

注意:選擇可以對單張表進(jìn)行操作或多張表進(jìn)行操作

②投影:找出表中需要的列或字段

注意:選擇可以對單張表或多張表進(jìn)行操作

③連接:連接是關(guān)系的橫向結(jié)合

④自然連接:找出表之間相同的列,取其值相等的元組

總結(jié)

最加擇?運(yùn)算:主要針對的是表中的元組

②投影運(yùn)算:主要針對的是表中的列或字段

③自然連接:兩張表中有相同的列,取其值相等的元組

1.3數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)

1.3.1數(shù)據(jù)庫設(shè)計(jì)步驟

1、設(shè)計(jì)原則(筆試考點(diǎn))

①,,一事一地,,的原則

②避免出現(xiàn)重復(fù)字段

③表中字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素,就是具有原子性

④用外部關(guān)鍵字保證有聯(lián)系

2、設(shè)計(jì)的步驟

了解

1.3.2數(shù)據(jù)庫設(shè)計(jì)過程

了解

1.4VisualFoxPro系統(tǒng)概述

筆試考點(diǎn):

VF中退出系統(tǒng)的方法:

①關(guān)閉按鈕

②從“文件”下拉菜單中選擇“退出”選項(xiàng)

③Alt+F4(考點(diǎn))

④在命令窗口中輸入QUIT命令,并執(zhí)行(考點(diǎn))

1.4.2VF的主界面

1、菜單操作

2、命令操作

注意:VF中的命令以英文格式為主

打開/隱藏命令窗口的快捷鍵:(筆試考點(diǎn))

打開:Ctrl+F2

隱藏:Ctrl+F4

3、項(xiàng)目管理器窗口

1

1.4.3工具欄的使用

1、顯示或隱藏工具欄

2、定制工具欄

3、修改工具欄

總結(jié):(筆試考點(diǎn))

①系統(tǒng)默認(rèn)的工具欄,只能修改,不能刪除

②自定義的工具欄,可以修改,可以刪除

1.4.4VF的配置

1、使用“選項(xiàng)”對話框

VF的大部分配置,主要就是在“選項(xiàng)”對話框中設(shè)置

設(shè)置流程:

“工具”菜單下的''選項(xiàng)",彈出“選項(xiàng)”對話框

①設(shè)置日期和時(shí)間的顯示格式

②更改表單的默認(rèn)大小

③設(shè)置默認(rèn)目錄(必須掌握)

考生文件夾的位置:

C:\WEXAM\準(zhǔn)考證號碼

1.5項(xiàng)目管理器

項(xiàng)目的概念:是指文件、數(shù)據(jù)、文檔和對象的集合

1.5.1創(chuàng)建項(xiàng)目(上機(jī)考點(diǎn))

1、創(chuàng)建項(xiàng)目

創(chuàng)建流程:

①“文件”菜單

②“新建”菜單項(xiàng)

③選擇“項(xiàng)目”文件類型

④新建文件

筆試考點(diǎn):

VF中所創(chuàng)建的文件后綴名稱,需要大家掌握:

項(xiàng)目文件的后綴名稱:.PJX

2、打開和關(guān)閉項(xiàng)目

3、各類文件選項(xiàng)卡(筆試考點(diǎn))

“數(shù)據(jù)”選項(xiàng)卡:數(shù)據(jù)庫、自由表、查詢和視圖

“文檔”選項(xiàng)卡:表單、報(bào)表、標(biāo)簽

“代碼”選項(xiàng)卡:程序、API庫、應(yīng)用程序

“其他”選項(xiàng)卡:菜單、文本文件、其它文件

1.5.2使用項(xiàng)目管理器

1、創(chuàng)建文件

2、添加文件

1

3、修改文件

4、移去文件(考點(diǎn))

移去文件對話框中,有三個(gè)按鈕:

“移去”按鈕:將當(dāng)前選中的文件,從當(dāng)前項(xiàng)目中排除,但是該文件仍然存在

“刪除”按鈕:將當(dāng)前選中的文件,從當(dāng)前項(xiàng)目中排除,并且從磁盤中徹底刪除

“取消”按鈕:不進(jìn)行移去操作

1.5.3定制項(xiàng)目管理器

注意:

要把項(xiàng)目管理器拆分成獨(dú)立的浮動(dòng)窗口,必須首先折疊項(xiàng)目管理器

1.6向?qū)А⒃O(shè)計(jì)器、生成器簡介

161、向?qū)?/p>

1、啟動(dòng)向?qū)?/p>

2、使用向?qū)?/p>

3、修改用向?qū)?chuàng)建的項(xiàng)

1.6.2VF的設(shè)計(jì)器

需要掌握的設(shè)計(jì)器:

1、表設(shè)計(jì)器

2、數(shù)據(jù)庫設(shè)計(jì)器

3、報(bào)表設(shè)計(jì)器

4、查詢設(shè)計(jì)器

5、視圖設(shè)計(jì)器

6、表單設(shè)計(jì)器

7、菜單設(shè)計(jì)器

8、數(shù)據(jù)環(huán)境設(shè)計(jì)器

1.6.3VF的生成器

注意:

程序文件的后綴名稱:.PRG

第2章VisualFoxPro程序設(shè)計(jì)基礎(chǔ)

2.1常量與變量

2.1.1常量

常量的概念:常量是指在程序或命令的執(zhí)行過程中,其值不會(huì)發(fā)生改變的量

常量主要包括:數(shù)值型、貨幣型、字符型、日期型、日期時(shí)間型和邏輯型。

1、數(shù)值型常量

主要表示的是數(shù)值

例如:

1,2,3…

2、貨幣型常量

1

主要表示貨幣的數(shù)目,就是金額

注意:(筆試考點(diǎn))

貨幣型常量,以“$”符號開頭,保留4位小數(shù),小數(shù)點(diǎn)4位以后有四舍五入。例如:

$123.345¥123,345

3、字符型常量

字符型

常量,就是字符串。

注意:字符型常量中,有字符定界符。定界符由:雙引號、單引號和中括號組成,注意,必

須是英文狀態(tài)下的。

例如:

"北斗星教育"

'北斗星教育'

[北斗星教育]

錯(cuò)誤的格式:

“北斗星教育”

【北斗星教育】

補(bǔ)充:

在VF中,所有的命令,都必須是在英文狀態(tài)下輸入,除非漢字

或特殊情況。

4、日期型常量

日期型常量的格式分為兩種:嚴(yán)格的日期格式和傳統(tǒng)的日期格式

①嚴(yán)格的日期格式:(筆試考點(diǎn))

格式為:

{八yyyy-mm-dd}

說明:

?日期格式左右兩邊必須要有大括號

,yyyy:表示年份

,mm:表示月份

?dd:表示天數(shù)

例如:

{△2012-08-22}

「2012-08-22]-->表示字符串

201加職2-->表示除法表達(dá)式

②傳統(tǒng)的日期格式:

格式為:

{yy-mm-dd}或{mm-dd-yy}或{dd-mm-yy}

③影響日期格式的設(shè)置命令

?設(shè)置日期分隔符的命令

命令格式:(筆試考點(diǎn))

SETMARKTO日期分隔符

1

注意:

日期分隔符是字符串

第一種用法:

將日期分隔符設(shè)置為“#"

setmarkto

第二種用法:

將日期分隔符恢復(fù)為默認(rèn)的

setmarkto

錯(cuò)誤的用法:

setmarkto#

總結(jié):

VF中的命令不區(qū)分大小寫,可以大寫也可以小寫,也可以大小寫混合。如果命令是正確的,

則命令在命令窗口中以藍(lán)色背景顯示。

?設(shè)置日期格式:

命令格式:

SETDATE[TO]AMERICAN|ANSI|...

命令功能:設(shè)置日期格式為年月日或月日年或日月年

?設(shè)置日期世紀(jì)的命令

命令格式:(筆試考點(diǎn))

SETCENTURYON|OFF|TO世紀(jì)值

功能:以4為數(shù)字的形式顯示年份

說明:

ON:表示顯示世紀(jì)

OFF:表示不顯示世紀(jì),默認(rèn)是不顯示

TO:表示設(shè)置世紀(jì)

例如:

顯示世紀(jì):setcenturyon

不顯示世紀(jì):setcenturyoff

錯(cuò)誤的格式:

setcenturyto2

?設(shè)置是否對日期進(jìn)行嚴(yán)格檢查

命令格式:

SETSTRICTDATETO[01112]

說明:

0表示不進(jìn)行嚴(yán)格檢查

1表示進(jìn)行嚴(yán)格檢查

2與1相同

5、日期時(shí)間型常量

1

日期時(shí)間型常量的格式:

{日期時(shí)間}

6、邏輯型常量

邏輯型常量,主要有兩種值:邏輯真值和邏輯假值

邏輯真值:工、.t.、.Y.、y

邏輯假值:.F.、.f.、.N.、n

邏輯真值,系統(tǒng)默認(rèn)為工

邏輯假值,系統(tǒng)默認(rèn)為.F.

注意:

左右兩邊的小數(shù)點(diǎn)不能省略

2.1.2變量

變量的概念:在程序或命令的執(zhí)行過程中,其值會(huì)發(fā)生改變的量在VF中,主要有兩種變量:

字段變量和內(nèi)存變量

1、簡單內(nèi)存變量

向簡單內(nèi)存變量賦值不需要先定義

賦值格式為:

內(nèi)存變量名稱=表達(dá)式

STORE表達(dá)式TO內(nèi)存變量名表

例如:

x=10

store10tox

store10tox,y

注意:(筆試考點(diǎn))

當(dāng)出現(xiàn)內(nèi)存變量和字段變量同名時(shí),系統(tǒng)默認(rèn)可以訪問字段變量,如果需要訪問內(nèi)存變量,

則需要特殊指定。指定格式為:

M.或M->

格式為:

M.內(nèi)存變量名稱

M->內(nèi)存變量名稱

字段變量和內(nèi)存變量的區(qū)別:

內(nèi)存變量:就是存儲在內(nèi)存中的臨時(shí)性變量

字段變量:在VF中,打開一張表之后,表中的字段,自然就變成了字段變量

2、數(shù)組

定義數(shù)組的格式:

DIMENSION數(shù)組名稱(卜標(biāo))

1

DECLARE數(shù)組名稱(下標(biāo))

例如:

dimensionx(5)

x(l)=l

x(2)=2

x(3)=3

=4

x(5)=5

如何將數(shù)組中的值取出來:

V=x(l)

2.1.3內(nèi)存變量常用命令

1、內(nèi)存變量的賦值

格式1:STORE表達(dá)式TO內(nèi)存變量名表

格式2:內(nèi)存變量名稱=表達(dá)式

2、顯示表達(dá)式的值

格式1:?表達(dá)式

格式2:??表達(dá)式

功能:將表達(dá)式的計(jì)算結(jié)果顯示在VF的屏幕中

區(qū)別:

?:顯示表達(dá)式的計(jì)算結(jié)果,并有回車換行

??:顯示表達(dá)式的計(jì)算結(jié)果,但是沒有回車換行

例如:

?"北斗星教育"

??"做七星培訓(xùn)"

結(jié)果:

北斗星教育做七星培訓(xùn)

3、內(nèi)存變量的顯示(筆試考點(diǎn))

格式1:LISTMEMORY[LIKE通配符]...

格式2:DISPLAYMEMORY[LIKE通配符]…

功能:將內(nèi)存變量的結(jié)果顯示在VF屏幕中

說明:

通配符有:*和?

*:表示任意匹配0個(gè)以上的字符

?:表示任意匹配1個(gè)字符

例如:

將以x開頭的內(nèi)存變量中的值顯示出來

listmemorylikex*

4、內(nèi)存變量的清除

格式1:CLEARMEMORY

格式2:RELEASE內(nèi)存變量名表

1

格式3:RELEASEALL[EXTENDED]

格式4:RELEASEALL...

功能:將內(nèi)存變量銷毀

5、表與數(shù)組之間的數(shù)據(jù)傳遞

了解

2.2表達(dá)式

表達(dá)式的概念:是由常量、變量、運(yùn)算符及函數(shù)等連接起來的式子,稱之為表達(dá)式

2.2.1數(shù)值、字符與日期時(shí)間表達(dá)式

1、數(shù)值表達(dá)式

①算術(shù)運(yùn)算符

主要有:()、**或八、*、/、%、+、-

重點(diǎn)分析%:

10%3-->1

10%-3-->-2

-10%3->2

總結(jié):(筆試考點(diǎn))

假設(shè)有正整數(shù)a和b

a%b=a與b的余數(shù)

a%(-b)=(a%b)+(-b)

(-a)%b=-(a%b)+b

2、字符表達(dá)式(筆試考點(diǎn)、上機(jī)考點(diǎn))

+和-運(yùn)算符也可以應(yīng)用與字符串中

+:將兩個(gè)字符串直接連接在一起

-:將第一個(gè)字符串末尾的空格放在第二個(gè)字符串尾部,再將兩個(gè)字符串直接連接

例如:

假設(shè)#是空格:

x='中北斗星教育#"

y="#做七星培訓(xùn)#"

?x+y

結(jié)果:#北斗星教育##做七星培訓(xùn)#

?x-y

結(jié)果:#北斗星教育#做七星培訓(xùn)##

3、日期時(shí)間表達(dá)式

2.2,2關(guān)系表達(dá)式

1、關(guān)系表達(dá)式

關(guān)系表達(dá)式的格式:

表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2

運(yùn)算符有:

>、>=^<、<=、<>或#或!=、==、=、$

1

①數(shù)值型、貨幣型數(shù)據(jù)比較

越大的越大,越小的越小

②日期、日期時(shí)間數(shù)據(jù)比較

過去的日期小,未來的日期大

例如:

{A2012-08-21}<{A2012-08-22}

③邏輯型數(shù)據(jù)比較

邏輯真大于邏輯假

例如:

.t.>.F.

④子串包含測試(筆試考點(diǎn)、上機(jī)考點(diǎn))

格式為:

字符表達(dá)式1$字符表達(dá)式2

說明:

字符表達(dá)式1是字符表達(dá)式2的一個(gè)子字符串,則返回邏輯真

例如:

存在字段變量“性別”,其中存儲的內(nèi)容為“男”或“女”

邏輯表達(dá)式:性別$"男女"

2、設(shè)置字符的排序次序

設(shè)置字符排序的命令格式為:

SETCOLLATETO排序次序名稱

?Machine

?PinYin

?Stroke

3、字符串精確比較與EXACT設(shè)置(筆試考點(diǎn))

在VF中,比較運(yùn)算符有兩個(gè):"==”和“=”

“==":表示精確比較

“=”:也是表示比較,但是',”的比較,與EXACT命令的設(shè)置有關(guān)

說明:

精確比較,是指左右兩邊的字符串必須對應(yīng)一致,才是相等。

“=”:比較與EXACT命令有關(guān)

EXACT命令格式:

SETEXACTON|OFF

ON:表示先在較短的字符串尾部補(bǔ)空格,使兩個(gè)字符串長度一致,然后再進(jìn)行精確比較

OFF:表示只要右邊字符串與左邊字符串的前面部分內(nèi)容一致,則返回邏輯真

0系統(tǒng)默認(rèn)是OFF狀態(tài)。

例如:

#表示空格

1

X

="北斗星"

y="北斗星##"

?x==y

結(jié)果:.F.

setexacton

?"北斗星"="北斗星##"

結(jié)果:工

setexactoff

?"北斗星"="北斗星##"

結(jié)果:.F.

?勺匕斗星##"="北斗星"

結(jié)果:工

4、賦值與相等比較的區(qū)別

2.3.3邏輯表達(dá)式

邏輯表達(dá)式的概念:是由邏輯運(yùn)算符連接起來的式子

邏輯運(yùn)算符有三種:.AND.、.OR.、.NOT.

邏輯與.AND.的規(guī)則:

真.AND.真一〉真

真.AND.假->假

假.AND.真->假

假.AND.假->假

邏輯或.OR.的規(guī)則:

真.OR.真一>真

真.OR.假->真

假.OR.真->真

假.OR.假->真

邏輯非.NOT.的規(guī)則:

,NOT.真一〉假

,NOT.假一〉真

例如:

找出18歲至20歲的男同學(xué)

條件為:年齡>=18and年齡<=20and性別="男"

說明:

邏輯運(yùn)算符左右的小數(shù)點(diǎn)可以省略

2.3常用函數(shù)

需要掌握的內(nèi)容:

①函數(shù)的調(diào)用方法

1

②函數(shù)返回值的數(shù)據(jù)類型

2.3.1數(shù)值函數(shù)

1、絕對值函數(shù)和符號函數(shù)

格式:

ABS(數(shù)值表達(dá)式)

SIGN(數(shù)值表達(dá)式)

功能:

ABS函數(shù):返回?cái)?shù)值的絕對值

SIGN函數(shù):如果數(shù)值表達(dá)式大于0,則返回1;如果數(shù)值表達(dá)式等于0,則返回0;如果數(shù)值

表達(dá)式小于0,則返回-1

例如:

?abs(5)zabs(-5)

結(jié)果:55

?sign(5),sign(-5)

結(jié)果:1-1

2、求平方根函數(shù)

格式:

SQRT(數(shù)值表達(dá)式)

功能:對數(shù)值表達(dá)式進(jìn)行開方

例如:

?sqrt(4)

結(jié)果:2

3、圓周率函數(shù)

格式:

PK)

功能:返回圓周率,3.14

4、求整數(shù)函數(shù)(筆試考點(diǎn))

格式:

INT(數(shù)值表達(dá)式)

CEILING(數(shù)值表達(dá)式)

FLOOR(數(shù)值表達(dá)式)

功能:

INT函數(shù):對數(shù)值表達(dá)式進(jìn)行取整,即返回整數(shù)部分

CEILING函數(shù):返回大于或等于指定數(shù)值表達(dá)式的最小整數(shù)

FLOOR函數(shù):返回小于或等于指定數(shù)值表達(dá)式的最大整數(shù)

例如:

?int(5.9999),int(-5.9999)

結(jié)果:5-5

?ceiling(5.99),ceiling(-5.99)

結(jié)果:6-5

?floor(5.99),floor(-5.99)

結(jié)果:5-6

1

5、四舍五入函數(shù)(筆試考點(diǎn))

格式:

ROUND(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2)

功能:

對數(shù)值表達(dá)式1按照數(shù)值表達(dá)式2的格式進(jìn)行四舍五入

例如:

?round(123.456,2)

結(jié)果:123.46

?round(123.456,0)

結(jié)果:123

?round(123.456,-2)

結(jié)果:100

6、求余數(shù)函數(shù)

格式:MOD(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2)

功能:求余數(shù),等價(jià)于%

例如:

?mod(10,3),mod(10,-3),mod(-10,3)

結(jié)果:1-22

7、求最大值和最小值函數(shù)(筆試、上機(jī)考點(diǎn))

格式:

MAX(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2,...)

MIN(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2,...)

功能:求最大值或最小值

例如:

?MAX("2","12","05")

結(jié)果:2

總結(jié):

MAX或MIN函數(shù)的比較規(guī)則:

數(shù)字:0<9

字符:"0"<"9"

字母:"A'Y'Z"或"a"<"z"

數(shù)字和字母:9<"a"

2.3.2字符函數(shù)

注意:在計(jì)算機(jī)中,一個(gè)漢字表示2個(gè)字符長度

1、求字符串長度函數(shù)(筆試考點(diǎn))

格式:LEN(字符表達(dá)式)

功能:求字符表達(dá)式的字符長度

例如:

?len("hello")

結(jié)果:5

1

?Ien("北斗星教育VF")

結(jié)果:12

2、大小寫轉(zhuǎn)換函數(shù)

格式:

LOWER(字符表達(dá)式)

UPPER(字符表達(dá)式)

功能:將字母轉(zhuǎn)換為大寫或小寫字母,其他字符不變

3、空格字符串生成函數(shù)(筆試考點(diǎn))

格式:SPACE(數(shù)值表達(dá)式)

功能:返回指定數(shù)目的空格

例如:

假設(shè)空格為#

?space(5)

結(jié)果:#####

?len("北斗星教育"+space(5))

結(jié)果:15

?Ien(space(5)+space(4))

結(jié)果:9

4、刪除前后空格函數(shù)(筆試考點(diǎn)、上機(jī)考點(diǎn))

格式:

TRIM(字符表達(dá)式)

LTRIM(字符表達(dá)式)

ALLTRIM(字符表達(dá)式)

功能:

TRIM函數(shù):刪除尾部的空格

LTRIM函數(shù):刪除首部的空格

ALLTRIM函數(shù):刪除字符串兩頭的空格

例如:假設(shè)#表示空格

?trim("#北斗星教育#。

結(jié)果:#北斗星教育

?ltrim("#北斗星教育#")

結(jié)果:北斗星教育#

?alltrim("#北斗星教育#")

結(jié)果:北斗星教育

5、取子串函數(shù)(筆試、上機(jī)考點(diǎn))

格式:

LEFT(字符表達(dá)式,長度)

RIGHT(字符表達(dá)式,長度)

SUBSTR(字符表達(dá)式,起始位置,長度)

功能:

LEFT函數(shù):從字符串左邊開始截取指定長度的字符子串

RIGHT函數(shù):從字符串右邊開始截取指定長度的字符子串

1

SUBSTR函數(shù):從字符串指定的起始位置,開始截取指定長度的字符子用

例如:

?Ie代("201201”,4)

結(jié)果:2012

?right("201201",2)

結(jié)果:01

?substr("201201",3,2)

結(jié)果:12

?substr("北斗星教育",5,4)

結(jié)果:星教

6、計(jì)算子串出現(xiàn)的次數(shù)(筆試考點(diǎn))

格式:OCCURS(字符表達(dá)式1,字符表達(dá)式2)

功能:返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)

函數(shù)的返回值:返回?cái)?shù)值類型

例如:

?occurs("s","absdss")

結(jié)果:3

7、求子串位置函數(shù)

格式:

AT(字符表達(dá)式1,字符表達(dá)式2[,數(shù)值表達(dá)式])

ATC(字符表達(dá)式1,字符表達(dá)式2[,數(shù)值表達(dá)式])

功能:求子串出現(xiàn)的位置

函數(shù)的返回值:返回?cái)?shù)值類型

注意:

AT區(qū)分大小寫,而ATC不區(qū)分大小寫

總結(jié):

函數(shù)的結(jié)果為數(shù)值類型的函數(shù)有:

LEN函數(shù)、OCCURS函數(shù)、AT函數(shù)、ATC函數(shù)

2.3.3日期和時(shí)間函數(shù)

1、系統(tǒng)日期和時(shí)間函數(shù)

格式:

DATE。(上機(jī)考點(diǎn))

TIME()(上機(jī)考點(diǎn))

DATETIMEO

功能:

DATE函數(shù)返回操作系統(tǒng)的當(dāng)前日期

TIME函數(shù)返回操作系統(tǒng)的當(dāng)前時(shí)間

DATETIME函數(shù)返回操作系統(tǒng)的當(dāng)前日期時(shí)間

例如:

?date()

結(jié)果:08/2^/12

1

2、年份、月份、天數(shù)函數(shù)

格式:

YEAR(日期表達(dá)式)(上機(jī)考點(diǎn))

MONTH(日期表達(dá)式)

DAY(日期表達(dá)式)

功能:

例如:

?year({A2012-08-12})

結(jié)果:2012

?year(date())

結(jié)果:2012

3、時(shí)、分、秒函數(shù)

格式:

HOUR(日期時(shí)間表達(dá)式)

MINUTE(日期時(shí)間表達(dá)式)

SEC(日期時(shí)間表達(dá)式)

2.3.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1、數(shù)值轉(zhuǎn)換成字符串(筆試考點(diǎn))

格式:STR(數(shù)值表達(dá)式,長度,小數(shù)位數(shù))

例如:

?str(123.456)

結(jié)果:123.456->這里是字符串

2、字符串轉(zhuǎn)換成數(shù)值(筆試、上機(jī)考點(diǎn))

格式:VAL(字符表達(dá)式)

功能:將字符表達(dá)式轉(zhuǎn)換成數(shù)值

例如:

?val("123")

結(jié)果:123-。這里是數(shù)值

?val("123x")

結(jié)果:123

?val("xl23")

結(jié)果:0

3、字符串轉(zhuǎn)換成日期或日期時(shí)間(上機(jī)考點(diǎn))

格式:

CTOD(字符表達(dá)式)

CTOT(字符表達(dá)式)

功能:將字符串轉(zhuǎn)換成日期或日期時(shí)間

例如:

?ctod("2001/V12")

1

如何記憶:

C-TO-D:

C-TO-T:

4、日期或日期時(shí)間轉(zhuǎn)換成字符串

格式:

DTOC(日期表達(dá)式)

TTOC(日期表達(dá)式)

5、宏替換函數(shù)(筆試考點(diǎn))

格式:&字符變量名稱

功能:&字符變量名稱可以替換為字符變量中的具體值

例如:

M=123

N=23

K="M+N"

求&K+1的結(jié)果

&K+1->M+N+1

注意:

將&K替換為變量K中的字符串的內(nèi)容

2.3.5測試函數(shù)

1、值域測試函數(shù)

格式:BETWEEN(表達(dá)式T,表達(dá)式L,表達(dá)式H)

功能:如果滿足表達(dá)式L<=表達(dá)式T<=表達(dá)式H,則返回邏輯真。否則返回邏輯假

例如:

?between(5,0,10)

結(jié)果:工

2、空值(NULL值)測試函數(shù)(筆試考點(diǎn))

格式:ISNULL(表達(dá)式)

功能:是判斷表達(dá)式的值是否為NULL值

例如:

?isnull(NULL)

結(jié)果:工

3、“空”值測試函數(shù)(筆試考點(diǎn))

格式:EMPTY(表達(dá)式)

功能:判斷表達(dá)式的值是否為“空”值,注意這里的“空”值,不是NULL值。

注意:

NULL值和“空”值的區(qū)別

NULL表示什么都沒有的一種狀態(tài),就是表示空

“空”值表示有值,但是為“空”

1

例如:

?empty(O)

結(jié)果:工

?empty(NULL)

結(jié)果:.F.

4、數(shù)據(jù)類型測試函數(shù)(筆試考點(diǎn))

格式:VARTYPE(表達(dá)式)

功能:判斷表達(dá)式的數(shù)據(jù)類型

數(shù)據(jù)類型:

C:Char

L:Logic

5、表文件尾測試函數(shù)

格式:EOF()

功能:如果文件記錄指針指向文件尾部,則返回邏輯真;否則返回邏輯假

6、

表文件首測試函數(shù)

格式:BOF()

功能:如果文件記錄指針指向文件首部,則返回邏輯真;否則返回邏輯假

7、記錄號測試函數(shù)

8、記錄個(gè)數(shù)測試函數(shù)

9、條件測試函數(shù)

格式:IIF(邏輯表達(dá)式,表達(dá)式1,表達(dá)式2)

功能:如果邏輯表達(dá)式的邏輯結(jié)果為真,則返回表達(dá)式1的結(jié)果;否則返回表達(dá)式2的結(jié)果

例如:

?iif(3>2,"3>2","3<2")

結(jié)果:3>2

10、記錄刪除測試函數(shù)

格式:DELETED

第3章VisualFoxPro數(shù)據(jù)庫及其操作

重點(diǎn)放在上機(jī)

3.1VisualFoxPro數(shù)據(jù)庫及其建立

3.1.1基本概念

筆試考點(diǎn):

數(shù)據(jù)庫文件的后綴名稱:.DBC

在建立數(shù)據(jù)庫文件時(shí),VF系統(tǒng)同時(shí)建立了三個(gè)文件:

.dbc的數(shù)據(jù)庫文件、.det數(shù)據(jù)庫備注文件、.dcx數(shù)據(jù)庫索引文件

1

3.1.2建立數(shù)據(jù)庫

建立數(shù)據(jù)庫的方法有:

?在項(xiàng)目管理器中建立數(shù)據(jù)庫

?從“新建”對話框中建立數(shù)據(jù)庫

?用命令方式建立數(shù)據(jù)庫

1、在項(xiàng)目管理器中建立數(shù)據(jù)庫

2、從“新建”對話框中建立數(shù)據(jù)庫

3、使用命令創(chuàng)建數(shù)據(jù)庫

命令格式:

CREATEDATABASE數(shù)據(jù)庫名稱

3.1.3使用數(shù)據(jù)庫

打開數(shù)據(jù)庫的方法也有三種:

使用命令的方式來打開數(shù)據(jù)庫:

OPENDATABASE數(shù)據(jù)庫名稱

關(guān)閉數(shù)據(jù)庫數(shù)據(jù)庫的命令為:

CLOSEDATABASEALL

在VF中,可以同時(shí)打開多個(gè)數(shù)據(jù)庫,但是同一時(shí)亥IJ,只有一個(gè)數(shù)據(jù)庫能為當(dāng)前數(shù)據(jù)庫

設(shè)置當(dāng)前數(shù)據(jù)庫的命令為:

SETDATABASETO數(shù)據(jù)庫名稱

設(shè)置當(dāng)前數(shù)據(jù)庫為空

SETDATABASETO

3.1.4修改數(shù)據(jù)庫

修改數(shù)據(jù)庫,就是將數(shù)據(jù)庫設(shè)計(jì)器打開,就可以進(jìn)行操作了

使用命令打開數(shù)據(jù)庫設(shè)計(jì)器:

MODIFYDATABASE數(shù)據(jù)庫名稱

3.1.5刪除數(shù)據(jù)庫

使用命令方式刪除數(shù)據(jù)庫:

DELETEDATABASE數(shù)據(jù)庫名稱

[DELETETABLES][RECYCLE]

3.2建立數(shù)據(jù)庫表

3.2.1在數(shù)據(jù)庫中建立表

1、字段名

字段名即關(guān)系中的屬性或列的名稱或表的列名稱

2、字段類型和寬度

字段類型是指字段名稱中存儲數(shù)據(jù)的類型

3、空值

1

空值,是指該字段的值是否可以為NULL值

4、字段有效性組框

5、顯示組框

6、字段注釋

注意:(筆試考點(diǎn))

表文件的后綴名稱:.DBF

在第三章中,如果需要使用表,則需要使用命令打開表;如果是其他章中,需要使用表,則

不需要打開表。

打開表的格式:

USE表的名稱

例如:打開“學(xué)生”表

use學(xué)生

3.2.2修改表結(jié)構(gòu)

修改表結(jié)構(gòu)與建立表結(jié)構(gòu)的方法基本上是一樣的

①修改已有的字段

②增加新的字段

③刪除不用的字段

3.3表的基本操作

3.3.1使用瀏覽器操作表

瀏覽器的作用:查看表中的記錄

使用鼠標(biāo)的方式瀏覽表:

①“文件”菜單

②“打開”菜單項(xiàng)

③選擇需要打開的表

④點(diǎn)擊“顯示”菜單

⑤點(diǎn)擊瀏覽

使用命令方式瀏覽表:

USE表的名稱

BROWSE

如果關(guān)閉瀏覽器?

直接關(guān)閉或Ctrl+W

3.3.2增加記錄的命令

在VF中,向表中增加記錄主要有兩種方式:

①在新建表的同時(shí),向表中增加記錄

②使用命令的方式,向表中增加記錄

1

1、APPEND命令

命令格式:

APPEND或APPENDBLANK

說明:

①如果直接在命令窗口中執(zhí)行APPEND,則會(huì)彈出一個(gè)輸入數(shù)據(jù)的窗口

②APPENDBLANK是在表的尾部增加一條空白記錄

注意:

表中的數(shù)據(jù)輸入完成后,可以直接按Esc鍵或Ctrl+W快捷鍵保存退出

使用APPEND命令的格式:

USE表的名稱

APPEND

2、INSERT命令

INSERT命令可以在表的任意位置插入新的記錄

命令格式:

INSERT[BEFORE][BLANK]

3.3.3刪除記錄的命令

在VF中,刪除數(shù)據(jù)主要有兩種:邏輯刪除和物理刪除

邏輯刪除:將表中的記錄打上刪除的標(biāo)記,但是數(shù)據(jù)仍然存在于表中

物理刪除:將表中的記錄徹底刪除

1、置刪除標(biāo)記命令

命令格式:

USE表的名稱

DELETE[FOR條件表達(dá)式]

例如:將學(xué)生表中的男生的記錄打上刪除的標(biāo)記

use學(xué)生

deletefor性別="男"

2、恢復(fù)記錄的命令

命令格式:

USE表的名稱

RECALL[FOR條件表達(dá)式]

例如:

use學(xué)生

recallfor性別="男"

3、物理刪除有刪除標(biāo)記的記錄

命令格式:

USE表的名稱

PACK

例如:假設(shè)學(xué)生表中已經(jīng)存在刪除標(biāo)記的記錄

use學(xué)生

pack

4、物理刪除表中的所有記錄

命令格式:

USE表的名稱

ZAP

3.3.4修改記錄的命令

1、交互修改的EDIT和CHANGE命令(筆試考點(diǎn))

命令格式:

USE表的名稱

EDIT

USE表的名稱

CHANGE

2、直接修改的REPLACE命令(筆試、上機(jī))

命令格式:

USE表的名稱

REPLACE字段名稱1WITH表達(dá)式1[,字段名稱2WITH表達(dá)式2...][FOR條件表達(dá)式][ALL]

一般的命令格式:

USE表的名稱

REPLACE字段名稱WITH表達(dá)式FOR條件表達(dá)式

例如:

有如下表:

獎(jiǎng)牌(國家代碼,金牌數(shù),銀牌數(shù),銅牌數(shù),總數(shù))

use獎(jiǎng)牌

replace總數(shù)with金牌數(shù)+銀牌數(shù)+銅牌數(shù)all

注意:

replace只能修改當(dāng)前記錄指針指向的記錄,所以,如果需要修改表中所有的記錄,則需要加

±all

3.3.5顯示記錄的命令

顯示表中記錄的命令是LIST或DISPLAY

命令格式:

LIST/DISPLAY[FIELDS]字段名稱列表[FOR條件表達(dá)式]

1

3.3.6查詢定位命令

1、用GOTO命令直接定位

命令格式:

GOTO記錄號|TOP|BOTTOM

GO記錄號|TOP|BOTTOM

說明:

記錄號:是指表中指定的行號

TOP:表示表的表頭

BOTTOM:表示表的表尾

例如:

use學(xué)生

go1

gotop

gobottom

2、SKIP命令

命令格式:

USE表的名稱

SKIP[記錄位置]

功能:將表中的記錄指針向前或向后移動(dòng)指定的位置

例如:

use學(xué)生

gotop

skip

skip3

skip-2

3、用LOCATE命令定位(筆試、上機(jī)考點(diǎn))

命令格式:

USE表的名稱

LOCATEFOR條件表達(dá)式

例如:

use學(xué)生

locatefor學(xué)號=2

LOCATE命令常用的格式:

USE表的名稱

LOCATEFOR條件表達(dá)式

DOWHILE循環(huán)條件

〃處理

CONTINUE

ENDDO

1

3.4索引

3.4.1基本概念

在VF中,索引分為四種:主索引、候選索引、惟一索引、普通索引

1、主索引

在表中的字段或表達(dá)式不允許出現(xiàn)重復(fù)或空值的索引

主索引的作用:建立主索引可以看作是主關(guān)鍵字

補(bǔ)充:

在VF中,表中的主索引只能建立一個(gè)

2、候選索引

與主索引具有相同的特性,但是候選索引可以建立多個(gè)

3、惟一索引

了解

4、普通索引

可以重復(fù)、可以為空值,也可以建立多個(gè)

索引在什么地方使用

表與表之間有聯(lián)系,有一對一聯(lián)系、有一對多聯(lián)系和多對多聯(lián)系。這些聯(lián)系是通過索引來建

立的

3.4.2在表設(shè)計(jì)器中建立索引

3.4.3用命令建立索引

主索引不能使用命令來創(chuàng)建

①使用INDEXON創(chuàng)建普通索引:

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱OF索引文件名稱.cdx

例如:

use學(xué)生

indexon學(xué)生姓名tag學(xué)生姓名of學(xué)生.cdx

②使用INDEXON創(chuàng)建候選索引

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱CANDIDATE

例如:

use學(xué)生

indexon學(xué)號tag學(xué)號candidate

③使用INDEXON創(chuàng)建惟一索引

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱UNIQUE

1

例如:

use學(xué)生

indexon學(xué)生姓名tag學(xué)生姓名unique

3.4.4使用索引

使用命令的格式:

USE表的名稱

SETORDERTO索引名稱

3.4.5使用索引快速定位

使用命令的格式:

SEEK表達(dá)式...

3.4.6刪除索引

命令格式:

DELETETAG索引名稱

3.5數(shù)據(jù)完整性

數(shù)據(jù)完整性,是為了保證數(shù)據(jù)的正確性

3.5.1實(shí)體完整性與主關(guān)鍵字

實(shí)體完整性是保證表中的記錄惟一的特性,即在表中不允許出現(xiàn)重復(fù)的記錄。

在VF中,實(shí)體完整性是通過主索引或候選索引來實(shí)現(xiàn)的

3.5.2域完整性與約束規(guī)則

域完整性與字段中域的概念是一致的,也就是對表中字段的取值范圍進(jìn)行約束。

域完整性的約束規(guī)則需要設(shè)置表設(shè)計(jì)器中的字段有效性:

規(guī)則:設(shè)置邏輯表達(dá)式

信息:設(shè)置字符串,使用雙引號括起來

默認(rèn)值:默認(rèn)值的數(shù)據(jù)類型與所設(shè)置字段的數(shù)據(jù)類型一致

3.5.3參照完整性與表之間的聯(lián)系

參照完整性與表之間的關(guān)聯(lián)有關(guān),當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí)通過參照引用相互

關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來檢查對表中數(shù)據(jù)的操作是否正確。

參照完整性規(guī)則包括更新規(guī)則、刪除規(guī)則和插入規(guī)則:

更新規(guī)則:當(dāng)更新了主表中的連接字段,則子表做如下操作

級聯(lián):上動(dòng),下也動(dòng)

限制:下有,上不動(dòng)

忽略:隨意

刪除規(guī)則:當(dāng)刪除主表中的記錄時(shí),則子表做如下操作

級聯(lián):上動(dòng),下也動(dòng)

限制:下有,上不動(dòng)

忽略:隨意

1

插入規(guī)則:當(dāng)向子表中插入記錄時(shí),是否進(jìn)行完整性檢查

限制:上沒有,下不動(dòng)

忽略:隨意

建立永久性聯(lián)系的步驟:

①先判斷表與表之間是否有聯(lián)系

流程:檢查表之間是否有相同的字段,如果有相同字段,則必定有聯(lián)系

②為表建立索引

流程:找出相同字段中,其值不能重復(fù)的,則為主索引;可以重復(fù)的則為普通索引或惟一索

③建立永久性聯(lián)系

流程:將主表的主索引拖向子表的普通索引

3.6自由表

在VF中,表有兩種:數(shù)據(jù)庫表和自由表

數(shù)據(jù)庫表是屬于某一個(gè)數(shù)據(jù)庫

自由表不屬于任何數(shù)據(jù)庫

3.6.1數(shù)據(jù)庫表與自由表

數(shù)據(jù)庫表與自由表的區(qū)別(筆試考點(diǎn))

?數(shù)據(jù)庫表可以使用長表名

?可以為數(shù)據(jù)庫表中的字段指定標(biāo)題和添加注釋

?可以為數(shù)據(jù)庫表的字段指定默認(rèn)值和輸入掩碼

?數(shù)據(jù)庫表的字段有默認(rèn)的控件類

?可以為數(shù)據(jù)庫表添加字段有效性規(guī)則

?數(shù)據(jù)庫表支持主關(guān)鍵字

注意:

建立自由表時(shí),必須先將所有的數(shù)據(jù)庫關(guān)閉

closedatabaseall

3.6.2將自由表添加到數(shù)據(jù)庫

使用命令將自由表添加到數(shù)據(jù)庫中:

命令格式:

OPENDATABASE數(shù)據(jù)庫名稱

USE表的名稱

ADDTABLE表的名稱

3.6.3從數(shù)據(jù)庫中移出表

使用命令將數(shù)據(jù)庫表移出

命令格式:

OPENDATABASE數(shù)據(jù)庫名稱

USE表的名稱

REMOVETABLE表的名稱

1

3.7多個(gè)表的同時(shí)使用

3.7.1多工作區(qū)的概念(筆試考點(diǎn))

在VF中可以同時(shí)在不同的工作區(qū)中,打開表

指定工作區(qū)的命令:

SELECT工作區(qū)號

說明:

工作區(qū)號最小從1開始,如果使用select。則表示工作區(qū)號的選擇是從最小還沒有使用的工作

區(qū)號開始計(jì)算

使用多工作區(qū)的步驟:

opendatabase數(shù)據(jù)庫名稱

select1

use表的名稱1

select2

use表的名稱2

3.7.2使用不同的工作區(qū)的表

使用不同工作區(qū)中的表的命令格式為:

IN工作區(qū)號

例如:

opendatabase學(xué)生數(shù)據(jù)庫

select1

use學(xué)生

select2

use班級

locatefor學(xué)號=1in1

3.7.3表之間的關(guān)聯(lián)(上機(jī)考點(diǎn))

在VF中,可以使用SETRELATION命令建立表之間的臨時(shí)聯(lián)系

命令格式:

SETRELATIONTO索引表達(dá)式INTO表的名稱

例如:

為學(xué)生表與班級表建立臨時(shí)聯(lián)系

opendatabase學(xué)生數(shù)據(jù)庫

use學(xué)生in1order班級編號

use班級in2order班級編號

setrelationto班級編號into班級

3.8排序

了解

第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL

SQL:是結(jié)構(gòu)化查詢語言

SQL作用:就是用來查詢數(shù)據(jù)

1

4.1SQL概述

SQL的特點(diǎn):

①SQL是一種一體化的查詢語言,包括數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制。

②SQL語言是一種高度非過程化的語言

③SQL語言非常簡潔

④SQL語言可以直接以命令的方式來交互使用

SQL的命令動(dòng)詞:

數(shù)據(jù)查詢:SELECT命令

數(shù)據(jù)定義:CREATE命令、DROP命令、ALTER命令

數(shù)據(jù)操縱:INSERT命令、UPDATE命令、DELETE命令

數(shù)據(jù)控制:GRANT命令、REVOKE命令

4.4定義功能

4.4,1表的定義:CREATE命令

創(chuàng)建表的命令格式:

CREATETABLE|DBF表的名稱

(字段名稱1數(shù)據(jù)類型,

字段名稱2數(shù)據(jù)類型,

字段名稱n數(shù)據(jù)類型)

例如:

請使用命令定義學(xué)生表:

學(xué)生(學(xué)號C⑻,姓名C⑻,性別C⑵,班級I)

createtable學(xué)生(學(xué)號C⑻,姓名C⑻,性別C(2),班級I)

創(chuàng)藁表時(shí),最容易發(fā)生的錯(cuò)誤是,表中字段與數(shù)據(jù)類型之間至少有一個(gè)空格

創(chuàng)建表的復(fù)雜格式:

CREATETABLE|DBF表的名稱

(字段名稱1數(shù)據(jù)類型PRIMARYKEY

字段名稱2數(shù)據(jù)類型,

字段名稱n數(shù)據(jù)類型CHECK邏輯表達(dá)式ERROR錯(cuò)誤提示信息)

例如:

createtable學(xué)生(學(xué)號C⑻primarykey,姓名C⑻,性別C⑵check性別$"男女"error"性別必

須是男或女',班級I)

例如:

使用SQL命令創(chuàng)建班級表:

班級(班級編號I,班級名稱C(20))

createtable班級(班級編號Iprimarykey,班級名稱C(20))

1

4.4.2表的刪除

刪除表的命令格式為:

DROPTABLE表的名稱

例如:

droptable學(xué)生

注意:

刪除表的錯(cuò)誤命令為:

①DROP表的名稱

②DELETE表的名稱

③CHANGE表的名稱

4.4,3表結(jié)構(gòu)的修改(重點(diǎn)中的重點(diǎn))

修改表結(jié)構(gòu)有三種命令:

格式1:

ALTERTABLE表的名稱ADD|ALTER[COLUMN]字段名稱數(shù)據(jù)類型CHECK邏輯表達(dá)式

ERROR錯(cuò)誤提示信息DEFAULT默認(rèn)值

功能:可以修改字段的數(shù)據(jù)類型、數(shù)據(jù)寬度、字段有效性規(guī)則、錯(cuò)誤提示信息、默認(rèn)值

例如:

為班級表新增加一個(gè)“備注”字段,數(shù)據(jù)類型是字符型,寬度20

altertable班級add備注C(20)

為學(xué)生表新增加一個(gè)“年齡”字段,數(shù)據(jù)類型整型

altertable學(xué)生add年齡Icheck年齡>0and年齡<30error"你已經(jīng)是超齡兒童了"

default15

修改班級表中“備注”字段的數(shù)據(jù)寬度,修改為30

altertable班級alter備注C(30)

注意:

修改表結(jié)構(gòu)的第一種命令,重點(diǎn)注意三個(gè)方面:

①如何增加字段

②如何修改字段的數(shù)據(jù)類型或數(shù)據(jù)寬度

③如何為字段設(shè)置字段有效性規(guī)則

格式2:

ALTERTABLE表的名稱ALTER[COLUMN]字段名稱SETCHECK邏輯表達(dá)式ERROR錯(cuò)誤提示

信息

功能:主要用于定義、修改和刪除字段有效性規(guī)則和默認(rèn)值

例如:

修改學(xué)生表中,年齡字段的有效性規(guī)則

altertable學(xué)生alter年齡setcheck年齡>=10and年齡<=20error"你已經(jīng)是超齡兒童了"

1

總結(jié):

在alter命令中,check與setcheck的區(qū)別

①只有在為表中增加字段的同時(shí),為該字段設(shè)置字段有效性規(guī)則時(shí);才使用check

②只有在表中已經(jīng)存在該字段,并且需要修改該字段的字段有效性規(guī)則時(shí);才使用setcheck

格式3:(一般情況只會(huì)出現(xiàn)在筆試)

ALTERTABLE表的名稱[DROP[COLULMN]]字段名稱…

功能:刪除字段、修改字段名稱

重點(diǎn)掌握:

刪除字段:DROPCOLUMN字段名稱

修改字段名稱:RENAMECOLUMN字段名稱

4.3操作功能:INSERT命令、UPDATE命令、DELETE命令

4.3.1插入數(shù)據(jù):INSERT命令

第一種格式:

INSERTINTO表的名稱(字段名稱1,字段名稱2,.,n)

VALUES(值1,值2n)

第二種格式:

INSERTINTO表的名稱FROMARRAY數(shù)組名稱

功能:

INSERT命令的功能就是將數(shù)據(jù)插入到表中,即將數(shù)據(jù)保存在表中

注意:(上機(jī)特別注意)

INSERT命令如果是正確的情況下,最多只能執(zhí)行一次

例如:

向班級表中插入一條記錄

insertinto班級(班級編號,班級名稱)values(l,"六脈神劍班")

或者

insertinto班級values(l,"六脈神劍班")

總結(jié).

星insert命令中,當(dāng)插入數(shù)據(jù)的個(gè)數(shù),等同于表中的列數(shù)時(shí),表名稱后面的列是可以省略的,

否則,不能省略

o建議最好不要省略

例如:

將數(shù)組中的值,插入到表中

declarebj(2)

bj(l)=2

bj(2)="網(wǎng)絡(luò)名人班"

insertinto班級fromarraybj

命令補(bǔ)充:

復(fù)制表結(jié)構(gòu)的命令

1

USE表的名稱

COPYSTRUCTURETO新表的名稱

注意:

COPYSTRUCTURE命令只能復(fù)制表的結(jié)構(gòu),不能復(fù)制表中的數(shù)據(jù)

4.3.2更新數(shù)據(jù):UPDATE命令

命令格式:

UPDATE表的名稱SET字段名稱1=值1,字段名稱2=

值2,...WHERE條件表達(dá)式

功能:對表中滿足條件的記錄進(jìn)行修改

注意:

WHERE條件是可以省略,如果省略表示修改表中的所有記錄

例如:

update班級set班級名稱="網(wǎng)絡(luò)達(dá)人班"WHERE班級編號=2

例如:

假設(shè)有獎(jiǎng)牌表

獎(jiǎng)牌表(國家代碼,金牌數(shù),銀牌數(shù),銅牌數(shù),總數(shù))

請計(jì)算總數(shù)的值

第…種方法:

use獎(jiǎng)牌表

replace總數(shù)with金牌數(shù)+銀牌數(shù)+銅牌數(shù)all

第二種方法:

update獎(jiǎng)牌表set總數(shù)=金牌數(shù)+銀牌數(shù)+銅牌數(shù)

例如:

假設(shè)有工資表

工資表(職工代碼,工資)

請將每一個(gè)員工的工資增加10%

update工資表set工資=工資+工資*0.1

錯(cuò)誤的寫法:

update工資表set工資=工資+工資*10%

update工資表set工資=工資*0.1

4.3.3刪除數(shù)據(jù):DELETE命令

刪除數(shù)據(jù)的命令格式為:

DELETEFROM表的名稱WHERE條件表達(dá)式

功能:DELETE命令是邏輯刪除表中的記錄

說明:WHERE條件是可以省略,如果省略表示刪除表中所有記錄

例如:

deletefrom班級

例如:

物理刪除班級表中的2班的信息

use班級

deletefrom班級where班級編號=2

pack

總結(jié):

INSERT命令的一般使用流程:

①打開表設(shè)計(jì)器,查看字段的數(shù)據(jù)類型

查看字段的數(shù)據(jù)類型,如果是字符型,則需要英文的雙引號

②回憶INSERT命令的語法格式,寫INSERT命令

需要注意的問題是,如果有字符類型的值,則需要加雙引號;插入值的個(gè)數(shù)是否與表中列的

個(gè)數(shù)相同,如果相同,可以考慮省略字段名稱

③執(zhí)行INSERT命令

注意:如果命令正確,只能執(zhí)行一次

④檢查結(jié)果

打開表,檢查表中的記錄是否有增加

UPDATE命令的一般使用流程:

①打開表設(shè)計(jì)器,查看需要修改字段的數(shù)據(jù)類型和條件字段的數(shù)據(jù)類型

如果修改字段和條件字段是字符類型,則需要加英文的雙引號

②回憶UPDATE命令的語法格式,寫UPDATE命令

③執(zhí)行UPDATE命令

注意,如果UPDATE命令每次執(zhí)行結(jié)果不一樣,則只能執(zhí)行一次,否則可以執(zhí)行多次

④檢查結(jié)果

打開表,檢查表中需要修改的記錄是否發(fā)生改變

DELETE命令的一般使用流程:

①打開表設(shè)計(jì)器,查詢需要?jiǎng)h除的記錄的條件字段的數(shù)據(jù)類型

如果需要?jiǎng)h除的記錄的條件字段是字符型,則需要加雙引號

②回憶DELETE命令的語法格式,寫DELETE命令

③執(zhí)行DELETE命令

④檢查結(jié)果

打開表,檢查表中需要?jiǎng)h除的記錄前面是否有黑色的小色塊

創(chuàng)建索引的命令總結(jié):

①創(chuàng)建普通索引的命令格式:

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱OF索引文件.CDX

②創(chuàng)建惟一索引的命令格式:

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱UNIQUE

③創(chuàng)建候選索引的命令格式:

USE表的名稱

INDEXON索引表達(dá)式TAG索引名稱CANDIDATE

1

注意:INDEXON不能創(chuàng)建主索引

④使用ALTER命令創(chuàng)建主索引:

ALTERTABLE表的名稱ADDPRIMARYKEY索引表達(dá)式TAG索引名稱

⑤使用ALTER命令創(chuàng)建候選索引:

ALTERTABLE表的名稱ADDUNIQUE索引表達(dá)式TAG索引名稱

4.2查詢功能:SELECT命令

SELECT命令主要由三大部分組成:

SELECT-FROM-WHERE-

SELECT命令的語法格式:

SELECT字段名稱1,字段名稱2,...

FROM表1,表2,...

WHERE條件表達(dá)式

ORDERBY排序的字段名稱

GROUPBY分組的字段名稱HAVING分組條件

功能:SELECT命令的功能就是將表中滿足條件的記錄,查詢出來

說明:

SELECT:SELECT后面跟的是表中的字段名稱,是表示我需要查詢的是表中的那些字段

FROM:FROM后面跟的是表,是表示數(shù)據(jù)來源于那個(gè)表

WHERE:WHERE后面跟條件,是指需要查詢滿足條件的記錄

ORDERBY:是指查詢出來的結(jié)果,是否需要排序

GROUPBY:是指查詢出來的結(jié)果,是否需要分組

HAVING:注意,HAVING必須要和GROUPBY一起使用,是表示分

組條件

SELECT命令格式總結(jié):

SELECT命令的順口溜:

SELECT

后面跟列

FROM后面跟表

WHERE后面跟條件

如果需要排序

要考慮ORDERBY

如果需要分組

要考慮GROUPBY

如果見至UGROUPBY

要小心HAVING

4.2.1簡單查詢

簡單查詢,就是指只查詢一張表

例4.1從職工關(guān)系中檢索所有工資值

SELECT工資FROM職工

1

如果需要去掉表中查詢出的重復(fù)記錄,則可以使用DISTINCT

selectdistinct工資from職工

例4.2檢索倉庫關(guān)系中的所有元組

select倉庫號,城市,面積from倉庫

注意:

如果查詢的是表中的所有字段,則可以使用*表示表中所有列

select*from倉庫

例4.3檢索工資多于1230的職工號

select職工號from職工where工資>1230

例4.4檢索那些倉庫有工資多于1210元的職工

selectdistinct倉庫號from職工where工資>1210

例4.5給出在倉庫“WH1”或“WH2”工作并且工資少于1250元的職工號

select職工號from職工where工資<1250and

(倉庫號="WHl"OR倉庫號="WH2")

4.2.2簡單的連接查詢

簡單的連接查詢:就是查詢多張表

例4.6找出工資多于1230元的職工號和他們所在的城市

select職工.職工號,倉庫.城市

from職工,倉庫

where職工.倉庫號=倉庫.倉庫號and職工.工資>1230

簡單連接查詢的分析流程:

第一步:確定列

職工.職工號,倉庫.城市

第二步:確定表

職工,倉庫

第三步:條件

連接條件:職工.倉庫號=倉庫.倉庫號

篩選條件:職工.工資>1230

總的條件:職工.倉庫號=倉庫.倉庫號and職工.工資>1230

排序:無

分組:無

分組條件:無

第四步:寫SQL命令

select職工.職工號,倉庫.城市

from職工,倉庫

where職工.倉庫號=倉庫,倉庫號and職工,工資>1230

第五步:執(zhí)行并檢查

在命令窗口中,執(zhí)行SQL命令,并檢查結(jié)果

1

例4.7找出工作在面積大于400的倉庫的職工號以及這些職工工作的城市

分析流程:

第一步:確定列

職工.職工號,倉庫.城市

第二步:確定表

職工,倉庫

第三步:條件

連接條件:職工.倉庫號=倉庫.倉庫號

篩選條件:倉庫.面積>400

總的條件:職工.倉庫號=倉庫.倉庫號and倉庫.面積>400

排序:無

分組:無

分組條件:無

第四步:寫SQL,命令

select職工.職工號,倉庫.城市

from職工,倉庫

where職工.倉庫號=倉庫.倉庫號and倉庫.面積>400

第五步:執(zhí)行并檢查

在命令窗口中執(zhí)行SQL命令

4.2.3嵌套查詢

嵌套查詢,就是查詢的條件不能一次查詢出來,要經(jīng)過多次查詢

例4.8那些城市至少有一個(gè)倉庫的職工的工資為1250元

select城市from倉庫where倉庫號IN

(select倉庫號from職工where工資=1250)

總結(jié):

IN:表示在什么集合之內(nèi)

NOTIN:表示不在集合之內(nèi)

例4.9查詢所有職工的工資都多于1210元的倉庫的信息

select*from倉庫where倉庫號NOTIN

(select倉庫號from職工where工資<=1210)

例4.10找出和職工E4同樣工資的所有職工

select職工號from職工where工資=

(select工資from職工where職工號="E4")

總結(jié):

①嵌套查詢可以對一張表進(jìn)行嵌套查詢

②嵌套查詢可以對多張表進(jìn)行嵌套查詢

③能使用簡單連接查詢,絕對不要使用嵌套查詢

④如果簡單連接查詢不能解決查詢問題,則必須使用嵌套查詢

例4.8那些城市至少有一個(gè)倉庫的職工的工資為1250元

1

select倉庫.城市

from職工,倉庫

where職工.倉庫號=倉庫.倉庫號and職工.工資=1250

4.2.4幾個(gè)特殊運(yùn)算符

①BETWEEN...AND…運(yùn)算符:

語法格式:

字段名稱BETWEEN表達(dá)式1AND表達(dá)式2

等價(jià)于

字段名稱>=表達(dá)式1AND字段名稱<=表達(dá)式2

例4.11檢索出工資在1220元到1240元范圍內(nèi)的職工信息

select*from職工where工資BETWEEN1220AND1240

等價(jià)于

select*from職工where工資>=1220and工資<=1240

②LIKE運(yùn)算符:

語法格式:

字段名稱UKE通配符表達(dá)式

說明:

通配符有兩個(gè):%和_

%:表示可以匹配任意多個(gè)字符

_:表示可以匹配任意一個(gè)字符

例4.12從供應(yīng)商關(guān)系中檢索出全部公司的信息

select*from供應(yīng)商where供應(yīng)商名like"%公司"

例如:查詢出班中姓劉的同學(xué)

select*from學(xué)生where姓名like"劉%"

等價(jià)于

select*from學(xué)生whereleft(姓名,2)="劉"

等價(jià)于

select*from學(xué)生wheresubstr(姓名,1,2)="劉"

例如:(重點(diǎn)掌握)

xh="20120811"

select*from學(xué)生where學(xué)號=alltrim(xh)

4.2.5排序

排序的語法格式:

ORDERBY排序字段名稱1[ASC|DESC],排序字段名稱2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論