版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- NB/T 11539-2024礦用物位傳感器通用技術(shù)要求
- 中醫(yī)醫(yī)學(xué)經(jīng)絡(luò)腧穴學(xué)課件-奇穴
- 《學(xué)前社會(huì)教育》課件
- 2025屆海南省部分學(xué)校高三上學(xué)期全真模擬(二)歷史試卷(解析版)
- 2024-2025學(xué)年浙江省臺州市十校聯(lián)考高一上學(xué)期期中考試歷史試題(解析版)
- 《物流倉儲管理》課件
- 單位管理制度集合大全員工管理篇
- 《物流管理運(yùn)輸管理》課件
- 單位管理制度匯編大全員工管理
- 單位管理制度合并匯編【職工管理】
- 毛細(xì)管升高法測量液體表面張力系數(shù)
- 室內(nèi)覆蓋方案設(shè)計(jì)與典型場景
- 放射性粒子植入自我評估報(bào)告
- 2023年山西云時(shí)代技術(shù)有限公司招聘筆試題庫及答案解析
- 浙大中控DCS系統(tǒng)介紹(簡潔版)
- GB/T 16288-2008塑料制品的標(biāo)志
- GB/T 14486-2008塑料模塑件尺寸公差
- 北京市海淀區(qū)2022-2023學(xué)年高三期末考試歷史試題及答案
- 頂板管理實(shí)施細(xì)則
- 2022年杭州西湖文化旅游投資集團(tuán)有限公司招聘筆試試題及答案解析
- 中國青年運(yùn)動(dòng)史PPT模板
評論
0/150
提交評論