版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章VFP基礎(chǔ)
VisualFOXPRO可視化
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
(-)計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展
1.數(shù)據(jù)與數(shù)據(jù)處理
(1)數(shù)據(jù)是指存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。“女”
數(shù)據(jù)不光指文字、數(shù)字、還包括聲音,動(dòng)畫,圖形等
2.數(shù)據(jù)處理是指數(shù)據(jù)轉(zhuǎn)換成信息的過程。
3.數(shù)據(jù)與信息的關(guān)系
信息來自于數(shù)據(jù),數(shù)據(jù)是信息的載體。信息是數(shù)據(jù)的內(nèi)含。
2.計(jì)算機(jī)數(shù)據(jù)管理
(1)概念:是指對(duì)數(shù)據(jù)的組織、分類、編程、存儲(chǔ)、檢索和維護(hù)提供操作手段。
(2)發(fā)展:
第一階段:人工管理
第二階段:文件系統(tǒng)
第三階段:數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)共享,減少數(shù)據(jù)的冗余。
第四階段:分布式數(shù)據(jù)庫(kù)系統(tǒng)
第五階段:面對(duì)對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)
(二)數(shù)據(jù)庫(kù)系統(tǒng)
1.有關(guān)數(shù)據(jù)庫(kù)的概念
(1)數(shù)據(jù)庫(kù)DB(Database)是存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合。數(shù)據(jù)庫(kù)
就是數(shù)據(jù)倉(cāng)庫(kù)。
(2)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng):指系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫(kù)系統(tǒng)資源開發(fā)出來的,面積某一類實(shí)際
應(yīng)用的應(yīng)用軟件系統(tǒng)。如圖書管理系統(tǒng)
(3)數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS:對(duì)DB的建立、使用和維護(hù)進(jìn)行管理。VFP數(shù)據(jù)庫(kù)管理系
統(tǒng)
databasemanagementsystem
(4)數(shù)據(jù)庫(kù)系統(tǒng)DBS:
組成:硬件系統(tǒng)、DB集合,DBMS及相關(guān)軟件、數(shù)據(jù)庫(kù)管理員和用戶
DBS包含DB和DBMS
2.數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn):一了解
(1)實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)冗余
(2)采用特定的數(shù)據(jù)模型一關(guān)系
(3)具有較高的數(shù)據(jù)獨(dú)立性
(4)有統(tǒng)一的數(shù)據(jù)控制功能
(三)數(shù)據(jù)模型
1.實(shí)體的描述
(1)實(shí)體:客觀存在并且可以相互區(qū)別的事物稱為實(shí)體。實(shí)體可是具體(人、桌子)
也可能抽象(比賽、會(huì)議)。
(2)實(shí)體的屬性:描述實(shí)體特性(姓名、性別、族別等)
(3)實(shí)體集和實(shí)體型
屬性值的集合表示?個(gè)實(shí)體,而屬性的集合表示一種實(shí)體的類型,稱為實(shí)體型。
同類型的實(shí)體的集合,叫實(shí)體集
在VFP中,用“表”來存儲(chǔ)同一類實(shí)體,即實(shí)體集。如“工資表”,“學(xué)生情況表”
注意:ctrl+shift輸入法的切換
ctrl+space(空格)中/英文的轉(zhuǎn)換
2.實(shí)體間聯(lián)系及聯(lián)系的種類
(1)一對(duì)一聯(lián)系:1:1
(2)一對(duì)多聯(lián)系:1:M
(3)多對(duì)多聯(lián)系:M:N
3.數(shù)據(jù)模型簡(jiǎn)介
(1)數(shù)據(jù)模型是數(shù)據(jù)庫(kù)管理系統(tǒng)用來表示實(shí)體間聯(lián)系的方法。
(2)種類
層次數(shù)據(jù)模型:倒置的樹
網(wǎng)狀數(shù)據(jù)模型:
關(guān)系數(shù)據(jù)模型:VFP
關(guān)系數(shù)據(jù)庫(kù)
(-)關(guān)系模型
關(guān)系模型的邏輯結(jié)構(gòu)就是一張二維表
姓名性別所在班級(jí)學(xué)習(xí)科目最終成績(jī)
劉露露女04園林二級(jí)VFP
郭江女二級(jí)VFP
1.關(guān)系術(shù)語(yǔ):
(1)關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。即表名,擴(kuò)展名為DBF
(2)元組:也叫記,喪RECORD,表的一行稱為一條記錄(除表頭)。描述同一對(duì)象的
不同屬性。
(3)屬性:也叫字段。表格中的列。描述不同對(duì)象的同一屬性。
(4)域:屬性的取值范圍。
(5)關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能夠惟一標(biāo)識(shí)一個(gè)元組(行)。如“學(xué)號(hào)”
(6)外部關(guān)鍵字:若表中的一個(gè)字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另一
個(gè)表的主關(guān)鍵字或候選關(guān)鍵字,這個(gè)字段就稱為外部關(guān)鍵字。
顧客表購(gòu)買表商品表
身份證號(hào)身份證條碼條碼
2.關(guān)系的特點(diǎn):
(1)關(guān)系必須規(guī)范化。滿足一定的要求。
(2)在同一關(guān)系中不能出現(xiàn)相同的屬性名(列名)
(3)關(guān)系中不允許有完全相同的元組
(4)在一個(gè)關(guān)系中元組的次序無關(guān)緊要
(5)在一個(gè)關(guān)系中列的次序無關(guān)緊要
3.實(shí)際關(guān)系模型
一個(gè)具體的關(guān)系模型由若干個(gè)關(guān)系模式組成。
一個(gè)數(shù)據(jù)庫(kù)中包含相互之間存在聯(lián)系的多個(gè)表。
例:部門——職工-——工資關(guān)系模型
部門
部門編碼部門名稱負(fù)責(zé)人
職工
職工號(hào)姓名性別部門編碼
工資
年月職工號(hào)姓名基本工資
例:圖書——讀者借閱關(guān)系模型
圖書
總編號(hào)分類號(hào)書名作者
讀者:
借書證號(hào)單位姓名性別職稱地址
借閱
借書證號(hào)總編號(hào)借書日期還書日期
VFP中,?個(gè)關(guān)系模型稱為數(shù)據(jù)庫(kù),一個(gè)關(guān)系叫表,數(shù)據(jù)庫(kù)中可以包含多張表。
(-)關(guān)系運(yùn)算
1.傳統(tǒng)的集合運(yùn)算
(1)并男人并女人=人
(2)差人差女人=男人
(3)交人交女人=女人
2.專門的關(guān)系運(yùn)算
(1)選擇:從關(guān)系中找出滿足給定條件的元組的操作(針對(duì)行進(jìn)行操作)
(2)投影:從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系(針對(duì)列進(jìn)行操作)
(3)聯(lián)接:是關(guān)系的橫向結(jié)合。將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式,生成
的新關(guān)系中包含滿足聯(lián)接條件的元組。
(4)自然聯(lián)接:去掉重復(fù)屬性的等值聯(lián)接。一般指都是自然聯(lián)接。
注意:選擇和投影的操作對(duì)象是一個(gè)表而聯(lián)接需要兩個(gè)表。
建庫(kù)與建表
1.打開VFP
開始/程序/Microsoftvisualfoxpro/foxpro
2.輸入法
CTRL+SHIFT輸入法切換
CTRL+空格中/英文切換
在VFP中所有標(biāo)點(diǎn)符號(hào)必須是英文
CTRL+,中/英標(biāo)點(diǎn)符號(hào)切換
建立訂貨管理數(shù)據(jù)庫(kù),有如下的表:
三.數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)
1.設(shè)計(jì)原則
(1)關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地”的原則
(2)避免在表之間出現(xiàn)重復(fù)字段
(3)表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素
(4)用外部關(guān)鍵字保存有關(guān)聯(lián)的表之間的聯(lián)系
2.設(shè)計(jì)步驟(了解)
(1)需求分析
(2)確定需要的表
(3)確定所需字段
(4)確定聯(lián)系
(5)設(shè)計(jì)求精
3.注意事項(xiàng):
(1)VFP利用主關(guān)鍵字迅速關(guān)聯(lián)多個(gè)表中的數(shù)據(jù),不允許在主關(guān)鍵字字段中有重復(fù)值
和空值
(2)一對(duì)多聯(lián)系
-對(duì)多聯(lián)系是關(guān)系型數(shù)據(jù)庫(kù)中最普通的聯(lián)系。在一對(duì)多聯(lián)系中,表A的一個(gè)記錄在表B
中可以有多個(gè)記錄與這對(duì)應(yīng),但表B中的一個(gè)記錄最多只能有一個(gè)表A的記錄與之對(duì)
應(yīng)。要建立這樣的聯(lián)系,就是把“一方”的主關(guān)鍵字字段添加到“多方”的表中。
(3)多對(duì)多聯(lián)系
在多對(duì)多聯(lián)系中,表A的一個(gè)記錄在表B中對(duì)應(yīng)多個(gè)記錄,而表B的一個(gè)記錄在表A
中也可對(duì)應(yīng)多個(gè)記錄。
為了避免數(shù)據(jù)的重復(fù)存儲(chǔ),又要保持多對(duì)多聯(lián)系,方法是創(chuàng)建第三個(gè)表。把多對(duì)多的聯(lián)
系分解成兩個(gè)一對(duì)多聯(lián)系。所創(chuàng)建的第三個(gè)表包含兩個(gè)表的主關(guān)鍵字。在兩表之間起著
紐帶的作用,稱這為“紐帶表”
VFP是MicrosofT公司的產(chǎn)品??梢暬幊坦ぞ?。VFP是一個(gè)32的DBMS
例:學(xué)校關(guān)系模型
學(xué)生情況表成績(jī)表借閱表
一個(gè)表就是?個(gè)關(guān)系。
一個(gè)表的建立分為兩部分:
(1)表結(jié)構(gòu):即表頭。一個(gè)表有多少列,列名,寬度有多少。
(2)表內(nèi)容:即有多少行。
數(shù)據(jù)類型:即數(shù)據(jù)值的類型
1.數(shù)值型N:即用數(shù)字來表示其值,可以計(jì)算
2.字符型C:用數(shù)字,文字表示其值。如:姓名,性別
3.邏輯型L:只有真、假兩個(gè)值。真用T或Y表示,假用F或N表示
4.日期型D:用MM/DD/YY
建表方法:
1.“文件/新建”彈出新建對(duì)話框,選擇“表”,單擊“新建文件”按鈕
2.Create卜表文件名習(xí)
三.VFP啟動(dòng)與窗口組成
1.開始/程序/Microsoftvisualfoxpro6.0/Microsoftvisualfbxpro6.0
2.桌面快捷方式,VFP的圖形標(biāo)志是一個(gè)狐貍頭
(二)窗口組成
1.標(biāo)題欄
2.菜單欄
3.工具欄
4.工作區(qū):系統(tǒng)主窗口的空白部分。用于展開軟件工作界面,顯示系統(tǒng)信息、命
令和程序運(yùn)行結(jié)果等。
5.命令窗口:鍵入VFP命令
注意:一個(gè)漢字占兩個(gè)字符寬度。VFP中按字符寬度。
第二章節(jié)VFP系統(tǒng)初步
退出VFP的命令
Quit
在VFP中所有命令必須鍵入在命令窗口中
—.VFP6.0的用戶界面
(-)VFP工作方式
1.利用菜單系統(tǒng)或工具欄按鈕執(zhí)行命令-一菜單方式
2.在命令窗口直接輸入命令進(jìn)行交互式操作---命令方式
3.利用各種生成器自動(dòng)產(chǎn)生程序,或者編寫FOXPRO程序,然后執(zhí)行它--程序方式
(二)VFP的主界面
1.菜單操作
2.命令操作--命令必須輸入到命令窗口
CLEAR清屏,即將工作區(qū)清干凈
顯示/隱藏命令窗口
(1)窗口/命令窗口
(2)常用工具欄上“命令窗口”按鈕
(3)CTRL+F4隱藏ctrl+f2顯示
注意:CTRL、SHIFT.ALT三個(gè)鍵叫組合鍵也叫復(fù)合鍵,單獨(dú)按沒有意義,只有與其它
鍵同按?!?”即同按。先按住復(fù)合鍵不放,在按其它鍵。
Crtl+空格中/英文轉(zhuǎn)換
Ctrl+shift輸入法轉(zhuǎn)換
Ctrl+句點(diǎn)中/英文標(biāo)點(diǎn)符號(hào)的轉(zhuǎn)換
注意:在VFP中標(biāo)點(diǎn)符號(hào)必須是英文的。
1.工具欄的使用
除了“常用”工具欄之外,還有10個(gè)其它工具欄,在“顯示”菜單中或右擊常用工具欄。
(1)定制工具欄
創(chuàng)建工具欄
A.顯示/工具欄
B.單擊“新建”按鈕,彈出“新工具欄”對(duì)話框
C.鍵入工具欄的名稱,彈出“定制工具欄”對(duì)話框
(2)修改工具欄
A.顯示/工具欄
B.單擊“定制”按鈕,彈對(duì)話框
常理:當(dāng)窗口中可以顯示/隱藏項(xiàng)目,不在查看,就在視圖,或者在顯示菜單中(這三個(gè)菜
單不能共存),或者在窗口菜單下。
一.VFP配置
1.使用“選項(xiàng)”對(duì)話框
“工具/選項(xiàng)”
(1)設(shè)置日期和時(shí)間的顯示格式
Date。顯示當(dāng)前日期
Datetime。顯示當(dāng)前日期時(shí)間
在“區(qū)域”選項(xiàng)卡下
(2)更改表單的默認(rèn)大小“表單”的選項(xiàng)卡下
(3)設(shè)置默認(rèn)目錄“文件位置”的選項(xiàng)卡下
2.保存設(shè)置
(1)單擊“確定”按鈕,僅在本次系統(tǒng)運(yùn)行期間有效
(2)單擊“設(shè)置為默認(rèn)值”,再單擊“確定”長(zhǎng)久有效
項(xiàng)目管理器
1.項(xiàng)目:是指文件、數(shù)據(jù)、文檔和VFP對(duì)象的集合
2.項(xiàng)目管理器:是VFP中處理數(shù)據(jù)和對(duì)象的主要組織工具,是一個(gè)工作平臺(tái)。在VFP中
所有可以做的操作在項(xiàng)目管理器中都可完成。
(一)創(chuàng)建項(xiàng)目
1.項(xiàng)目文件的擴(kuò)展名.pjx
2.創(chuàng)建一個(gè)新項(xiàng)目有兩種途徑:一是僅創(chuàng)建一個(gè)項(xiàng)目文件,用來分類管理其他文件(主講),
二是使用應(yīng)用程序向?qū)梢粋€(gè)項(xiàng)目和一個(gè)VFP應(yīng)用程序框架。
3.“文件/新建”彈出新建對(duì)話框,選擇“項(xiàng)目”,單擊“新建文件”按鈕
(二)定制項(xiàng)目管理器
只有在折疊狀態(tài)下,選項(xiàng)卡才能拖出來
三.VFP向?qū)А⒃O(shè)計(jì)器、生成器簡(jiǎn)介
(一)向?qū)?/p>
1.向?qū)且环N交互式程序,用戶在一系列向屏幕上回答問題或者選擇選項(xiàng),向?qū)?huì)根據(jù)回
答生成文件或者執(zhí)行任務(wù),幫助用戶快速完成一般性的任務(wù)。
2.啟動(dòng)向?qū)?/p>
(1)項(xiàng)目管理器,選擇文件類型,單擊“新建”,選擇“向?qū)А?/p>
(2)文件/新建,選擇文件類型后,單擊“向?qū)А卑粹o
(3)工具/向?qū)?/p>
(4)常用工具欄上“向?qū)А卑粹o
(-)設(shè)計(jì)器
1.設(shè)計(jì)器是創(chuàng)建和修改應(yīng)用系統(tǒng)各種組件的可視化工具。
2.打開設(shè)計(jì)器
(1)項(xiàng)目管理器
(2)文件/新建,單擊‘新建文件’
(3)顯示菜單中的“數(shù)據(jù)環(huán)境”
(三)生成器
是帶有選項(xiàng)卡的對(duì)話框,用于簡(jiǎn)化對(duì)表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改過程。
第三章數(shù)據(jù)與數(shù)據(jù)運(yùn)算
常量與變量
(-)常量:值不變化的量
1.數(shù)值型常量:如123.5671.23567e2(科學(xué)計(jì)數(shù)法),在內(nèi)存中占8個(gè)字節(jié)
2.貨幣型常量:前置符號(hào)$如:$789.5,在內(nèi)存中占8個(gè)字節(jié)
3.字符型常量:必須用單引號(hào),雙引號(hào),方括號(hào)(定界符)括起來的字符串。
注意:在VFP中所有的標(biāo)點(diǎn)符號(hào)必須是英文標(biāo)點(diǎn)符號(hào)。
輸出命令:
?〈輸出項(xiàng)〉
??<輸出項(xiàng)〉
如果有多個(gè)輸出項(xiàng),用逗號(hào)隔開,字符型常量將會(huì)照原樣輸出
4.日期型常量:它的定界符是花括號(hào).
花括號(hào)內(nèi)包括年,月,日三部分內(nèi)容,用分隔符分開.分隔符可是斜杠/(默認(rèn))、連字號(hào)(-),句
點(diǎn)(.)
日期型常量的格式
(1)傳統(tǒng)的日期格式
mm/dd/yy
(2)嚴(yán)格的日期格式
{八yyyy?mm?dd}八脫字符
(3)影響日期格式的設(shè)置命令
注意:在命令中帶方括號(hào)代表可選項(xiàng),尖括號(hào)代表必選項(xiàng),輸入命令時(shí),這些括號(hào)不打的。
①SETMARKTO[B期分隔符]
功能:設(shè)置顯示日期型數(shù)據(jù)時(shí)使用的分隔符,如
Setmarkto默入分隔符/
Setmarkto
Setmarkto
②setdate[to]American|ansi|british|French
功能:設(shè)置H期顯示格式
Americanmm/dd/yy
ANSIYY.MM.DD
BRITISH/FRENCHDD/MM/YY
GERMANDD.MM.YY
ITALIANDD-MM-YY
JAPANYY/MM/DD
USAMM-DD-YY
MDYMM/DD/YY
DMYDD/MM/YY
YMDYY/MM/DD
③SETcenturyon/off[世紀(jì)值]rollover[年份參照值]
功能:用于設(shè)置顯示日期型數(shù)據(jù)時(shí)是否顯示世紀(jì)
@setstrictdateto{0|1|2}
功能:用于設(shè)置是否對(duì)日期格式進(jìn)行檢查。0表示不進(jìn)行嚴(yán)格檢查,1和2都是檢查。1默
認(rèn)
5.日期時(shí)間型常量:{〈日期〉,〈時(shí)間〉}
6.邏輯型常量:只有真和假兩個(gè)值.真用.t.或.y.假用.£或n,內(nèi)存中占用1個(gè)字節(jié)
?78+62
??50*2
?8/4
?$8*4
?$789.456789
?”計(jì)算機(jī)“,」231[數(shù)據(jù)],['ABX'"abc”]
?”計(jì)算機(jī)”123寸數(shù)據(jù)],['ABX'"abc”]
?"87”,'+',[93]下,87+93
???45*4=",45*4
?{05/29/05)
?{A05/29/05}
?{八2005-05-29}
setcenturyon
setmarkto
setdatetoymd
?{A2001-08-26)
setcenturyoff
setmarkto
setdatetomdy
?{A2001-08-26)
setstrictdateto0
?{八2001-08-26},{09.22.01}
?[09/22/01}
?{09/22/01}
?7>8
?89<78
?89>78
?{A2001-03-22,ll:30P}
(-)變量:值可以改變的量。
變量分為字段變量和內(nèi)存變量。
1.字段變量:就是表中的字段,表中每一個(gè)字段就是一個(gè)字段變量。字段保存在表中。
2.內(nèi)存變量:是內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,變量值就是存放在這個(gè)存儲(chǔ)區(qū)域里的數(shù)據(jù),變量
的類型取決于變量值的類型。
3.內(nèi)存變量的數(shù)據(jù)類型包括字符型C,數(shù)值型N,貨幣型Y,邏輯型L,日期型D,日期
時(shí)間型T
2.簡(jiǎn)單內(nèi)存變量
每一個(gè)變量都有.一個(gè)名字,叫變量名,變量名必須以字母開頭后面可以是數(shù)字或下劃線。
當(dāng)字段變量與內(nèi)存變量同名時(shí),則在內(nèi)存變量前加M.(m->)
變量一般先賦值后使用
⑴V內(nèi)存變量名>=<表達(dá)式>
將〈表達(dá)式〉的值賦給左邊的〈內(nèi)存變量〉
x=10
y=2*30
(2)store〈表達(dá)式〉to〈內(nèi)存變量名表》
將表達(dá)式的值賦給〈內(nèi)存變量名表〉中的多個(gè)內(nèi)存變量,即給多個(gè)內(nèi)存變量賦以同一個(gè)值.
2.數(shù)組
數(shù)組是內(nèi)存中連續(xù)的一片存儲(chǔ)區(qū)域,它由一系列元素組成,每個(gè)數(shù)據(jù)元素可通過數(shù)組名及相應(yīng)
的下標(biāo)來訪問.
數(shù)組必須先定義后使用
定義數(shù)組:dimension/declarev數(shù)組名>(<卜標(biāo)上限1>,[<卜-標(biāo)上限2>])
例:dinmensionxy(l0)
定義一個(gè)XY數(shù)組,有多10個(gè)元素。分別是xy(l)……xy(10)
declarem(2,3)
定義一個(gè)M二維數(shù)組。它有2行3歹!I,共6個(gè)元素。
M(1,1)M(1,2)M(l,3)
M(2,1)M(2,2)M(2,3)
(三)內(nèi)存變量常用命令
1.內(nèi)存變量的顯示
list/displaymemory[likev通酉己符〉]
list代表滾動(dòng)顯示,display代表分屏顯示
通配符有兩個(gè)*,?。*代表任意多個(gè)字符,?代表任意一個(gè)字符
listmemorylikex*
顯示所有以X開頭的內(nèi)存變量
2.內(nèi)存變量的清除
格式1:clearmemoryOreleaseall
功能:清除所有內(nèi)存變量
格式2:release〈內(nèi)存變量名表》
功能:僅清除〈內(nèi)存變量名表》中所列的內(nèi)存變量
格式3:releaseall[like<通配符>|except〈通配符》]
例:releasealllikex*
清除所有的以X開頭的內(nèi)存變量
releaseallexceptX*
清除所有的除X開頭的內(nèi)存變量
作業(yè):
1.x=100
2.y=20
3.z="123”
4,將XI,X2,X3賦值為40
5.定義一個(gè)XY數(shù)組,有20個(gè)元素
6.定義一個(gè)YZ的二維數(shù)組,有3行,2列
7.分屏顯示所有內(nèi)存變量
8.將XY數(shù)組集體賦值為7
9.將YZ數(shù)組集體賦值為“ABCD”
10.只顯示以X開頭的內(nèi)存變量
11.清除x2,x3變量
12.清除所有以Y開頭的內(nèi)存變量
13.清除所有的內(nèi)存變量只保留,以X開頭
14.分屏顯示內(nèi)存變量
15.清除所有的內(nèi)存變量
字符串比較
“0”“9”“A”"Z”“a”“z”
4857659097122
子串包含測(cè)試
格式:<字串1>$〈字串2>
功能:字串1若能在字串2找到,結(jié)果就為1,否則為.F.
二.設(shè)置字符的排序次序
字符串比較,從左向右比較,一旦發(fā)現(xiàn)不同,判斷這兩個(gè)字符的大小.
1.人機(jī)對(duì)話方式
“工具/選項(xiàng)“在“數(shù)據(jù)”選項(xiàng)卡下.
2.命令方式設(shè)置:
setcollateto”<排序次序名〉”
machine機(jī)器:機(jī)內(nèi)碼空格-數(shù)字<---大寫字母小寫字母
Pinyin拼音:按照拼音次序排序,對(duì)于西文字符來說,空格,〈小字字母〈,大寫字母
Stroke筆劃:書寫筆劃多少進(jìn)行排序
三.邏輯表達(dá)式
邏輯運(yùn)算符:.not.或!(邏輯非).AND.(邏輯與)-一并且.or.(邏輯或)——或者
邏輯表達(dá)式的結(jié)果為邏輯型
四.運(yùn)算符優(yōu)先級(jí)
算術(shù)一_一一字符串一一一日期時(shí)間關(guān)系一一一邏輯
五.函數(shù)
函數(shù)格式:函數(shù)名(卜表達(dá)式習(xí))
第四章VFP數(shù)據(jù)庫(kù)及其操作
一.基本概念
1.數(shù)據(jù)庫(kù)是個(gè)邏輯上的概念和手段,通過一組系統(tǒng)文件將相互聯(lián)系的數(shù)據(jù)庫(kù)表及其相關(guān)
的數(shù)據(jù)庫(kù)對(duì)象統(tǒng)一組織和管理。
數(shù)據(jù)庫(kù)中可以有多張表或多個(gè)數(shù)據(jù)庫(kù)對(duì)象
2.數(shù)據(jù)庫(kù)文件的擴(kuò)展名DBC,與之相關(guān)的還會(huì)自動(dòng)建立一個(gè)擴(kuò)展名DCT的數(shù)據(jù)庫(kù)備注文
件和一個(gè)擴(kuò)展名為DCX的數(shù)據(jù)庫(kù)索引文件。
3.包含在數(shù)據(jù)庫(kù)中的數(shù)據(jù)表的擴(kuò)展名DBF
二.建立數(shù)據(jù)庫(kù)
方法三種
1.在項(xiàng)目管理器中建立數(shù)據(jù)庫(kù)
2.“文件/新建”彈出新建對(duì)話框,選擇“數(shù)據(jù)庫(kù)”
3.使用命令createdatabase[databasename/?]
注意:當(dāng)命令動(dòng)詞多于四個(gè)字母時(shí),可以只用前四個(gè)字母來表示。
三.使用數(shù)據(jù)庫(kù)
方法三種
1.在項(xiàng)目管理器中打開數(shù)據(jù)庫(kù)
2.“文件/打開”
3.使用命令opendatabasse[filename/?][exclusive][shared][noupdate][validate]
(1)exclusive獨(dú)占方式打開
(2)shared以共享方式打開
(3)noupdate以只讀方式打開
(4)validate檢查在數(shù)據(jù)庫(kù)中引用的對(duì)象是否合法
注意:
可以同時(shí)打開多個(gè)數(shù)據(jù)庫(kù),但在同一時(shí)刻只有一個(gè)當(dāng)前數(shù)據(jù)庫(kù)
1.setdatabaseto[datebasename]指定當(dāng)前的數(shù)據(jù)庫(kù)
2.常用工具欄的下拉框中,選擇當(dāng)前數(shù)據(jù)庫(kù)
四.修改數(shù)據(jù)庫(kù)
修改數(shù)據(jù)庫(kù)實(shí)際是打開數(shù)據(jù)庫(kù)設(shè)計(jì)器,用戶可在數(shù)據(jù)庫(kù)設(shè)計(jì)器中完成各種數(shù)據(jù)庫(kù)對(duì)象的建
立,修改和刪除等操作
打開數(shù)據(jù)庫(kù)設(shè)計(jì)器的三種方法
1.項(xiàng)目管理器中
2.文件/打開
3.命令:modifydatabase[databasename/?]
五.刪除數(shù)據(jù)庫(kù)
1.在項(xiàng)目管理器中選中數(shù)據(jù)庫(kù),單擊“移動(dòng)”的按鈕
2.命令:deletedatabase[databasename/?]
六.關(guān)閉數(shù)據(jù)庫(kù)
closedatabase關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)
closealldatabase關(guān)閉所有數(shù)據(jù)庫(kù)
例:
1.使用項(xiàng)目管理建立“學(xué)院”數(shù)據(jù)庫(kù)
2.使用文件菜單建立“二級(jí)VFP”數(shù)據(jù)庫(kù)
3.使用命令建立“學(xué)生”數(shù)據(jù)庫(kù)
3.使用不同的方法分別打開上述三個(gè)數(shù)據(jù)庫(kù)
4.使用不同的方法分別打開上述三個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)設(shè)計(jì)器
5.刪除“學(xué)生”數(shù)據(jù)庫(kù)
8.刪除“學(xué)院”數(shù)據(jù)庫(kù)
第二節(jié)建立數(shù)據(jù)庫(kù)表
在VFP中,表有兩種,包含中數(shù)據(jù)庫(kù)中的叫數(shù)據(jù)表,不包含在數(shù)據(jù)庫(kù)中叫自由表。
一.在數(shù)據(jù)庫(kù)中建立表
1.在項(xiàng)目管理器中,選中相應(yīng)的數(shù)據(jù)庫(kù),在選中“表”,單擊“新建”按鈕
2.在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,右擊彈出快捷菜單,選擇“新建表”或在數(shù)據(jù)庫(kù)設(shè)計(jì)工具欄上單擊
“新建表”的按鈕
一些基本內(nèi)容和概念
1.字段名:字段變量
字段名即關(guān)系的屬性名或表的列名。字段名可以是漢字或合法的西文字符。
規(guī)定:
(1)自由表的字段名最長(zhǎng)為10個(gè)字符
(2)數(shù)據(jù)庫(kù)表的字段名最長(zhǎng)為128個(gè)字符
(3)字段名必須必須以字母或漢字開頭,由字母,漢字,數(shù)字和下劃線組成
(4)字段名中不包含空格
2.字段類型和寬度
字段的數(shù)據(jù)類型決定存儲(chǔ)在字段中的值的數(shù)據(jù)類型,數(shù)據(jù)類型通過寬度限制可以決定存儲(chǔ)數(shù)
據(jù)的數(shù)量或精度。
(1)字符型:C
(2)貨幣型:Y
(3)數(shù)值型:N
(4)浮點(diǎn)型:F:類似于N,但其長(zhǎng)度最長(zhǎng)可達(dá)20位
(5)日期型:D固定長(zhǎng)度為8
(6)日期時(shí)間型:T
(7)邏輯型:L只有T和F兩個(gè)值,固定長(zhǎng)度為1
(8)備注型:M,它在表中只有4個(gè)字節(jié)的長(zhǎng)度,他的值存儲(chǔ)在與表文件名同名,但擴(kuò)展
名為FPT的備注文件中。
(9)通用型:G用來標(biāo)記電子表格、文檔、圖片等OLE對(duì)象。如照片是通用型,固定長(zhǎng)度
為4個(gè)字節(jié)的寬度
3.空值
用“NULL“選項(xiàng),它表示是否允許字段為空值。
4.字段有效性組框
可定義字段的有效性
5.顯示組框:可定義字段顯示的格式,輸入的掩碼和字段的標(biāo)題
6.字段注釋:對(duì)字段添加注釋,便于以后或其他人對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)
三.用命令建立表
1.打開數(shù)據(jù)庫(kù)
2.使用create命令建立表
注意:
新建的表當(dāng)時(shí)處于打開狀態(tài),可以對(duì)其進(jìn)行任何的操作,如果以后再對(duì)表進(jìn)行操作,必須先
要打開表:
USE〈表文件名〉打開〈表文件名〉所指的表
USE關(guān)閉當(dāng)前表
四.修改表結(jié)構(gòu)表頭,在表設(shè)計(jì)器中進(jìn)行修改.
1.項(xiàng)目管理器中,選中相應(yīng)的表,點(diǎn)''修改”,打開表設(shè)計(jì)器
2.在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,右擊要修改表,選擇“修改”
3.用命令
(1)首先必須用USR打開要修改的表
(2)modifystructure
五.使用瀏覽器操作表
在交互工作方式下,最簡(jiǎn)單,方便的方法就是使用BROWSE瀏覽器
打開瀏覽器的方法
1.在項(xiàng)目管理器中,選擇相應(yīng)的表,點(diǎn)“瀏覽"按鈕
2.在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,選擇表,然后從“數(shù)據(jù)庫(kù)/瀏覽”或右擊,“瀏覽”
3.在命令方式:
(1)先要用USE命令打開表
(2)BROWSE
(一)瀏覽操作
1.下一記錄:下箭頭鍵
2.前一記錄:上箭頭鍵
3.下一頁(yè):PAGEDOWN
4.前一頁(yè):PAGEUP
5.下一字段:TAB
6.前一字段SH1FT+TAB
7.添加記錄:
(1)CTRY+Y
(2)"表/追加新記錄”或"顯示/追加方式”
(二)刪除記錄
在VFP中刪除記錄有邏輯刪除和物理刪除兩種.邏輯刪除只是給記錄加刪除標(biāo)記,物理刪除
是將加刪除標(biāo)記的記錄真正的刪除掉.
都在表菜單下.
切換刪除標(biāo)記:ctrl+t
作業(yè):建立圖書管理數(shù)據(jù)庫(kù),其中有圖書,讀者,借閱三個(gè)表
1.圖書表如下
總編號(hào)分類號(hào)書名作者
445501Tp3/2數(shù)據(jù)庫(kù)導(dǎo)論DATE
445502Tp3/2數(shù)據(jù)庫(kù)導(dǎo)論DATE
445503Tp3/2數(shù)據(jù)庫(kù)概論王珊
332211Tp5/10計(jì)算機(jī)基礎(chǔ)李偉
112266Tp3/2數(shù)據(jù)庫(kù)FOXPRO張學(xué)軍
665544TP7/21高等數(shù)學(xué)劉明
114455TP9/12線性代數(shù)孫業(yè)
113388TP7/90大學(xué)英語(yǔ)胡明
(1)總編號(hào)字段的掩碼為“999999”9代表可以輸入任意的數(shù)字44
(2)分類號(hào)字段的掩碼“TP9/99”
(3)追加一條記錄
115566TP8/9數(shù)據(jù)結(jié)構(gòu)徐玉蓮
(4)將最后一條刪除掉,真正刪除掉
(5)將第3和第5條加刪除標(biāo)記,再去掉
2.讀者表如下
借書證號(hào)單位姓名性別職稱地址
111物理系王維利女教授212
112會(huì)計(jì)系李立威男副教授121
113經(jīng)濟(jì)系張大龍男講師101
114金融系周華男講師312
115數(shù)學(xué)系趙正義女工程師456
116信息系李明男副教授412
117金融系劉大成男講師302
118化學(xué)系張曉華女副教授308
(1)借書證號(hào)字段的掩碼設(shè)置為“119”
(2)性別字段的規(guī)則設(shè)置為“性別="男”.or.性別="女…’,默認(rèn)值““男””
(3)職稱字段的規(guī)則設(shè)置為“職稱=”教授or.職稱="副教授”.or.職稱="講師”.or.職稱="
工程師叫默認(rèn)值““副教授””
(4)地址字段的掩碼設(shè)置為“999”
3.借閱表如下
借書證號(hào)總編號(hào)借書日期
11344550111/01/99
11211445512/12/99
11211338810/12/99
11533221108/11/99
11544550309/11/99
11144550309/11/99
二.對(duì)表的命令操作
(?)追加記錄命令
格式一append在當(dāng)前表的尾部追加新記錄
格式二appendblank在當(dāng)前表的尾部追加空記錄(記錄存在,但沒有內(nèi)容)
相當(dāng)于”顯示/追加方式"或“表/追加新記錄”
(二)記錄的插入命令
insert[before][blank]
不帶任何參數(shù)時(shí),為在當(dāng)前記錄之后插入一條新記錄.
Before在當(dāng)前記錄之前blank代表空記錄
Insert在當(dāng)前記錄之后插入?條新記錄
Insertblank在當(dāng)前記錄之后插入一條空記錄
Insertbefore在當(dāng)前記錄之前插入一條新記錄
Insertbeforeblank--在當(dāng)前記錄之前插入一和空記錄
(三)記錄的范圍對(duì)哪些記錄進(jìn)行操作.有四種
1.all對(duì)表中的所有記錄
2.nextn從當(dāng)前記錄開始往下N條記錄
3.rest從當(dāng)前記錄開始直到表結(jié)束的所有記錄
4.recordn只對(duì)記錄號(hào)為N的記錄進(jìn)行操作
注意:每個(gè)表都有一個(gè)記錄指針,記錄指針?biāo)傅挠涗洖楫?dāng)前記錄
當(dāng)打開一張表時(shí),記錄指針指向的第一條記錄
(四)記錄刪除的命令
刪除一條記錄時(shí),先邏輯刪除,再物理刪除
1.邏輯刪除命令
delete卜范圍>][fbr<條件習(xí)
對(duì)當(dāng)前表中指定范圍內(nèi)的滿足的條件的記錄加上刪除標(biāo)記.默認(rèn)范圍為當(dāng)前記錄
相當(dāng)于“表徹?fù)Q刪除標(biāo)記”或ctrl+t
例:
1.打開圖書管理數(shù)據(jù)庫(kù)opendatabase?
2.打開“圖書表"use圖書表
3.用命令在當(dāng)前表的尾部追加一條空記錄appendblank
4.用命令當(dāng)當(dāng)前表的尾部追加一條新記錄append
998877TP9/20Authorware付紅英
5.打開“讀者表”use讀者表
6.將所有的性別為女的記錄加刪除標(biāo)記
deleteallfor性別="女"
7.將所有的性別為男,并且職稱為講師的記錄加刪除標(biāo)記
deleteallfor性別="男”.and.職稱="講師”
3.恢復(fù)記錄的命令--去掉刪除標(biāo)記
recall[<范圍習(xí)[for<條件習(xí)
對(duì)當(dāng)前表中指定范圍內(nèi)的滿足的條件的記錄去掉刪除標(biāo)記.默認(rèn)范圍為當(dāng)前記錄
相當(dāng)于”表/切換刪除標(biāo)記”或ctrl+t
4.物理刪除加刪除標(biāo)記的記錄
pack將當(dāng)前表中所有加刪除標(biāo)記的記錄真正刪除
相當(dāng)于”表/徹底刪除”
5.物理刪除表的的全部記錄ZAP
ZAP將當(dāng)前表中所有記錄真正的刪除掉
Deleteallzap
pack
五.查詢定位命令
1.絕對(duì)定位命令
go/goto〈數(shù)值表達(dá)式>/top/bottom
gotop將記錄指針定位到首記錄
gobottom——將記錄指針定位到尾記錄
g。〈數(shù)值表達(dá)式〉一一將記錄指針定位到〈數(shù)值表達(dá)式>值的記錄號(hào)上
2.相對(duì)定位命令
skip卜數(shù)值表達(dá)式刁相對(duì)于當(dāng)前記錄將記錄指針向上(值為負(fù)),或向下(值為正)移動(dòng)值
的若干記錄
SKIP——相對(duì)于當(dāng)前記錄向下移一條
Skip=skip1
3.返回當(dāng)前記錄號(hào)函數(shù)——recno()
例:
8.將表中所有的女性記錄去掉刪除標(biāo)記recallallfbr性別=?女”
9.將表中加刪除標(biāo)記錄真正的刪除掉pack
1.將記錄指針定位到第4條記錄go4
2.在第4條記錄后插入一條空記錄insertblank
3.將記錄指針定位到最一條記錄gobottom
4.在最后一條記錄之前插入一條空記錄insertbeforeblank
5.將記錄指針定位到第2條記錄go2
6.在第2條記錄之前插入?條新記錄,自己編記錄insertbefore
7.在第5條記錄之后插入一要新記錄,自己編記錄go5/go6
insert/insertbefore
8.填空:
go3
skip-2
?recno()
(1)
skip3
?recno()
(4)
skip
?recno()
(5)
六.修改記錄命令
1.edit
2.change
對(duì)于當(dāng)前表以交互式的進(jìn)行記錄的修改與編輯
3.記錄的替換命令
replace[范圍]v字段名>with〈表達(dá)式〉[for條件]
將指定范圍內(nèi)的滿足條件的記錄的〈字段名〉所指字段的值替換為〈表達(dá)式〉的值.
默認(rèn)范圍為當(dāng)前記錄
〈表達(dá)式〉可以是變量(字段變量,內(nèi)存變量),常量和運(yùn)算符組成.
例
9.打開”:級(jí)VFP”數(shù)據(jù)庫(kù),打開”學(xué)員成績(jī)表”
10.計(jì)算總分和平均分
replaceall總分with星期二成績(jī)+星期三成績(jī)+星期四成績(jī)
replaceall平均分with總分/3
相當(dāng)于“表/替換字段”但必須在瀏覽表的狀態(tài)下
七.顯示記錄的命令
list/display[范圍][fields字段名表][fbr條件][off]
顯示當(dāng)前表指定范圍內(nèi)指定字段滿足條件的記錄。
[fields字段名表]-一只顯示字段名表中所列字段
[off]不顯示記錄號(hào)
list默認(rèn)范圍是all,display默認(rèn)范圍是當(dāng)前記錄
list不等于displayall,list是滾動(dòng)顯示,displayall分屏顯示
八.查找滿足條件的記錄的命令
locatefor條件
將記錄指針定位到第一條滿足條件的記錄
continue接著往下找下一條滿足條件記錄
例:
20.顯示當(dāng)前表中的所有記錄list/displayall
21.顯示所有的女性記錄并且職稱必須是教授listfbr性別=,女,.and.職稱='教授'
22.顯示第三條記錄list/displayrecord3go3
display
23.將記錄指針定位到第一條男性記錄,并顯示locatefbr性別="男”
display
24.接著顯示下?條男性記錄continue
display
25.顯示所有記錄,但只要“姓名,職稱,地址”三個(gè)字段
listfields姓名,職稱,地址
26.顯示所有記錄,但不顯示記錄號(hào)listoff
4.4索引
一.基本概念:
索引文件是一個(gè)指向DBF文件的指針文件,它必須依賴于表文件。
索引文件并沒有改變記錄的物理順序,只是改變了它的邏輯順序。記錄號(hào)不變,顯示的順序
變了。
倉(cāng)庫(kù)表的順序原來如此:
記錄號(hào)倉(cāng)庫(kù)城市面積
1WK1北京370
2WH2上海500
3WH3廠州200
4WH4武漢400
5WH8昌吉450
若將倉(cāng)庫(kù)表按面毛的降序進(jìn)行索引,索引的文件就是弊樣的:
2|5|4|||3.
建立索引的目的就是為了提高查詢速度。
索引是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序.
索引文件和表的dbf文件分別存儲(chǔ),并且不改變表中記錄的物理順序.索引文件依賴于表文件.
索引的種類
1.主索引:在指定字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引.建立主索引的字段可看作是主
關(guān)鍵字,一個(gè)表只能有一個(gè)主關(guān)鍵字,所以只能有一個(gè)主索引.
2.候選索引:與主索引具有相同的特性,建立候選索引的字段可看作是候選關(guān)鍵字.一個(gè)表可
以建立多個(gè)候選索引.
3.唯一索引:是指索引項(xiàng)的唯一,而不是字段值唯一.即出現(xiàn)相同字段值,只要一個(gè).
4.普通索引:可決定記錄的順序,它不僅允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重
復(fù)值一個(gè)表可以建立多個(gè)普通索引
注意:數(shù)據(jù)表四種索引都可以建,而自由表不能建立主索引.
二.在表設(shè)計(jì)器中建立索引
1.單項(xiàng)索引
(1)在表設(shè)計(jì)器的“字段”選項(xiàng)卡中,建立索引
(2)在''索弓I”選項(xiàng)卡中,選擇類型,或更改“索引名“
2.復(fù)合字段索引在多個(gè)字段上的索引
(1)在“索弓I”選項(xiàng)卡中,單擊插入按鈕
(2)選擇索引類型,輸入索引名,單擊表達(dá)式欄右側(cè)的帶個(gè)三個(gè)點(diǎn)省略號(hào)按鈕即可
三.用命令建立索引
indexon索引表達(dá)式to索引文件名/tag索引名
to索引文件名,建立是一個(gè)擴(kuò)展名為IDX的單索引文件
tag索引名——建立在一個(gè)與表文件名同名,擴(kuò)展名為cdx的結(jié)構(gòu)化復(fù)合索引文件中.
四.使用索引
設(shè)置當(dāng)前索引
setorderto索引名
五.使用索引快速定位--seek
seek表達(dá)式
查找與索引關(guān)鍵字表達(dá)式相同的記錄
例:
1.打開二級(jí)VFP庫(kù),將學(xué)員成績(jī)改按序號(hào)的升序建立主索引,按總分降序建立普通索引
2.設(shè)置總分為當(dāng)前索引,并顯示
3.查找總分為255分的記錄
建立訂貨管理數(shù)據(jù)庫(kù),有如下的表:
MicrosoftVisualFoxPro-lQ|x|
文件⑹編輯⑹顯示M工具(D程序?表??a(w)幫助電)
□I謝口I-IJIx隨匕ILJ_LLJ[ffsis~~3后制回復(fù)_d^JU
姻供性府
西
安
:振華電子廠
S3元-
京
一
二二工華通電至廣用
S2用
S6訪廣
京
S7—.…:愛華電手廣北
職工(訂貨管理I職工)記錄:1/5Exclus1ve
4.6自由表
--數(shù)據(jù)庫(kù)表和自由表
a)自由表是那些不屬于任何數(shù)據(jù)庫(kù)的表。擴(kuò)展名DBF
2.數(shù)據(jù)庫(kù)表與自由表相比,數(shù)據(jù)表具有如下特點(diǎn):
i.數(shù)據(jù)庫(kù)表可使用長(zhǎng)表名(128),在表中可以使用長(zhǎng)字段名(254)自由表(10)
ii.數(shù)據(jù)庫(kù)表中字段可以添加注釋和字段規(guī)則,輸入掩碼等
iii.數(shù)據(jù)表可建立四種索引,而自由表不能建立主索引。
二.自由表在數(shù)據(jù)庫(kù)中的添加與移去
1.在項(xiàng)目管理器中
2.數(shù)據(jù)庫(kù)設(shè)計(jì)器中
4.7多個(gè)表的同時(shí)使用
在VFP中一次可打開多個(gè)數(shù)據(jù)庫(kù),在每個(gè)數(shù)據(jù)庫(kù)都可打開多個(gè)表,另外可打開多個(gè)自由表。
多工作區(qū)的概念
工作區(qū)是VFP在內(nèi)存中一個(gè)臨時(shí)區(qū)域,每個(gè)工作區(qū)只能打開一張表,則同時(shí)打開多張表,
要在不同的工作區(qū)中打開。
工作區(qū)有32767個(gè),序號(hào)就是從1-32767,VFP指定一個(gè)系統(tǒng)別名A-J-Wl1-W32757
選擇工作區(qū)
SELECT工作區(qū)號(hào)/別名
USEv表名〉in〈工作區(qū)號(hào)/別名>在指定的工作區(qū)中打開指定《表名》
當(dāng)前正在使用的工作區(qū)叫當(dāng)前工作區(qū),在此工作區(qū)上打開的表叫當(dāng)前表。沒有選擇工作區(qū)時(shí),
默認(rèn)是1號(hào)工作區(qū)
opendatabase?
use倉(cāng)庫(kù)in1
use職工inb
use訂購(gòu)單in3
use供應(yīng)商in4
list
select2
list
select3
list
select4
list
—,排序
排序是對(duì)當(dāng)前表按指定的字段進(jìn)行排序后,形成?個(gè)新的表
$0舊0〈表名>011<字段名>[倒/<!/<:][而條件Hfields字段名表]
對(duì)當(dāng)前表按指定的〈字段名〉的升序(/A,默認(rèn))或降序(/D)或不區(qū)分字母大小寫(/C)進(jìn)行排序,
排序的結(jié)果保存在指定〈表名〉中,擴(kuò)展名仍為.DBF
例:
1.將倉(cāng)庫(kù)表按面積的降序進(jìn)行排序,結(jié)果保存在“倉(cāng)庫(kù)面積''表中
select1
sortto倉(cāng)庫(kù)面積on面積/D
use倉(cāng)庫(kù)面積in5
select5
list
2.將訂購(gòu)單表按職工號(hào)進(jìn)行排序,結(jié)果保存在“訂購(gòu)單職工”表中
select3
sortto訂購(gòu)單職工on職工號(hào)
use訂購(gòu)單職工in6
select6
list
3.對(duì)訂購(gòu)單表按訂購(gòu)單號(hào)進(jìn)行降序的排序,只要職工號(hào)、訂購(gòu)單號(hào)、和訂購(gòu)日期三個(gè)字段,
排序的結(jié)果至『'訂購(gòu)單號(hào)”表中
select3
sortto訂購(gòu)單號(hào)on訂購(gòu)單號(hào)/dfields職工號(hào),訂購(gòu)單號(hào),訂購(gòu)日期
use訂購(gòu)單號(hào)in7
select7
list
第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL
-.SQL概述
1.SQL結(jié)構(gòu)化查詢語(yǔ)言StructureQueryLanguage
2.SQL語(yǔ)言的特點(diǎn)
(l)SQL是一種一體化語(yǔ)言,它包括了數(shù)據(jù)定義,數(shù)據(jù)查詢,數(shù)據(jù)操縱和數(shù)據(jù)控制等方面的功能,
它可以完成數(shù)據(jù)庫(kù)活動(dòng)中的全部工作.
(2)SQL語(yǔ)言是一種高度非過程化的語(yǔ)言,它沒有必要一步步地告訴計(jì)算機(jī)“如何”去做,而只
需要描述清楚用戶“做什么'SQL語(yǔ)言就可將要求交給系統(tǒng),自動(dòng)完成全部工作
(3)SQL語(yǔ)言非常簡(jiǎn)潔.只有為數(shù)不多的幾條命令
(4)SQL語(yǔ)言可以直接以命令方式交互使用,也可嵌入到程序設(shè)計(jì)語(yǔ)言中以程序方式使用.
SQL功能命令動(dòng)詞
數(shù)據(jù)查詢select
數(shù)據(jù)定義Create,drop,alter
數(shù)據(jù)操縱Insert,update,delete
數(shù)據(jù)控制Grant,revoke
三.查詢功能
SQL的核心是查詢。
基本形式:select-from-where
(?)簡(jiǎn)單查詢
1.從職工關(guān)系中檢索所有工資值
select工資from職工
可看到結(jié)果有重復(fù)值,如果要去掉重復(fù)值只需要指定distinct短語(yǔ)
selectdistinct工資from職工
2.檢索倉(cāng)庫(kù)關(guān)系中的所有元組
select*from倉(cāng)庫(kù)
其中“*”是通配符,表示所屬性,即字段,這里的命令等同于
select倉(cāng)庫(kù)號(hào),城市,面積from倉(cāng)庫(kù)
3.檢索工資多于1230元的職工號(hào)
select職工號(hào)from職工where工資>1230
這里的where短語(yǔ)指定了查詢條件,查詢條件可是任意復(fù)雜的邏輯表達(dá)式.
注意:工資字段必須是數(shù)值型的
4.檢索哪些倉(cāng)庫(kù)有工資多于1210元的職工
selectdistinct倉(cāng)庫(kù)號(hào)from職工where工資>1210
5.給出在倉(cāng)庫(kù)WH1或WH2工作,并且工資少于1250元的職工號(hào)
select職工號(hào)from職工;
where工資<1250.and.(倉(cāng)庫(kù)號(hào)=”\¥111''.01<.倉(cāng)庫(kù)號(hào)="WH2")
注意:這里的分號(hào)是續(xù)行符號(hào).
前面的幾個(gè)例子在FROM之后只指定了一個(gè)關(guān)系,也就是說檢索只基于一個(gè)關(guān)系,一個(gè)表.
(二)簡(jiǎn)單的聯(lián)接查詢
聯(lián)接是關(guān)系的基本操作之一,聯(lián)接查詢是-一種基于多個(gè)關(guān)系的查詢.
1.找出工資多于1230的職工號(hào)和他們所在的城市
這里的檢索查詢的信息分別出自職工(職工號(hào)屬性)和倉(cāng)庫(kù)(城市屬性)兩個(gè)關(guān)系,這樣的檢索
肯定是基于多個(gè)關(guān)系的,此類查詢一般用聯(lián)接查詢來實(shí)現(xiàn)
select職工號(hào),城市from職工,倉(cāng)庫(kù);
where(工資>1230).AND.(職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào))
這里的“職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)''是聯(lián)接條件
若在檢索命令的FROM之后有兩個(gè)關(guān)系,那么這兩個(gè)關(guān)系之間肯定有一種聯(lián)系,否則無法構(gòu)
成檢索表達(dá)式.
當(dāng)FROM之后的多個(gè)關(guān)系中含有相同的屬性名時(shí),這時(shí)必須用關(guān)系前綴直接指明屬性所屬的
關(guān)系,職職工.倉(cāng)庫(kù)號(hào),".”前面是關(guān)系名,后面是屬性名
2.找出工作在面積大于400的倉(cāng)庫(kù)的職工號(hào)以及這些職工工作所在的城市
select職工號(hào),城市from倉(cāng)庫(kù),職工;
where(血積>400).AND.(職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào))
(三)嵌套查詢
討論另一種基于多個(gè)關(guān)系的查詢,這類查詢所要求的結(jié)果出自一個(gè)關(guān)系,但相關(guān)的條件卻涉及
多個(gè)關(guān)系.
1.哪些城市至少有一個(gè)倉(cāng)庫(kù)的職工工資為1250元?
要求查詢倉(cāng)庫(kù)表中的城市信息,而查詢條件是職工表的工資字段值,為此可使用如下的嵌套查
詢
select城市from倉(cāng)庫(kù)where倉(cāng)庫(kù)in;
(select倉(cāng)庫(kù)號(hào)from職工where工資=1250)
在這個(gè)命令中含有兩個(gè)select-from-where查詢塊,即內(nèi)層查詢塊和外層查詢塊,內(nèi)層查詢塊檢
索到的倉(cāng)庫(kù)號(hào)值是WH1和WH2,這樣就可寫出等價(jià)的命令:
select城市from倉(cāng)庫(kù)where倉(cāng)庫(kù)號(hào)in("WHl","WH2")
這里的IN相當(dāng)于集合運(yùn)算符G,意思是屬于
2.查詢所有職工的工資都多于1210的倉(cāng)庫(kù)的信息
相當(dāng)于沒有一個(gè)職工的工資少于或等于1210元的倉(cāng)庫(kù)的信息
select*from倉(cāng)庫(kù)where倉(cāng)庫(kù)號(hào)notin;
(select倉(cāng)庫(kù)號(hào)from職工where工資〈=1210)
第六章查詢與視圖
6.1查詢
一.查詢?cè)O(shè)計(jì)器
1.查詢的概念:
(1)實(shí)際上,查詢就是預(yù)先定義好的一個(gè)SQLSELECT語(yǔ)句。
(2)查詢是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向
輸出查詢結(jié)構(gòu),諸如瀏覽器,報(bào)表,表,標(biāo)簽等。查詢文件擴(kuò)展名qpr
2.查詢?cè)O(shè)計(jì)器
(1)使用命令cteatequery
(2)“文件/新建“選擇“查詢”在單擊“新建文件”的按鈕
(3)在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中,選擇“查詢”然后單擊“新建”按鈕
(4)SQLSELECT
注意:當(dāng)一個(gè)查詢是基于多個(gè)表時(shí),這些表之間必須是有聯(lián)系的。表的相同字段建立聯(lián)接。
四.建立查詢
1.建立一個(gè)含有倉(cāng)庫(kù)號(hào),職工號(hào),城市和工資信息的查詢
select倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào),職工號(hào),城市,工資from倉(cāng)庫(kù),職工where倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)=職工.倉(cāng)庫(kù)
號(hào)
三.查詢?cè)O(shè)計(jì)器的局限性
只能建立一些比較規(guī)則的查詢,而復(fù)雜的查詢它就無能為力了.
查詢嵌套
seleteout.職工號(hào),out.供應(yīng)商號(hào),out.訂購(gòu)單號(hào),out.訂購(gòu)日期,out.總金額;
from訂購(gòu)單outwhere總金額=;
(selectmax(總金額)fiwn訂購(gòu)單inner1;
whereout.職工號(hào)=innerl.職工號(hào))
四.運(yùn)行查詢
1.命令
do查詢文件名
2.”程序/運(yùn)行”
注意:查詢?nèi)ハ蛴卸噻姡诓樵冊(cè)O(shè)計(jì)器的查詢?cè)O(shè)計(jì)器工具欄上有“查詢?nèi)ハ颉钡陌粹o
“文件/打開”查詢,就可打開查詢?cè)O(shè)計(jì)器
查詢?nèi)ハ蛉羰菆D形,在運(yùn)行時(shí)將會(huì)彈出圖形向?qū)?,按向?qū)Э梢越D形,圖形文件是一個(gè)表單
文件,擴(kuò)展名為SCX
例:
(1)將查詢1的查詢?nèi)ハ蚨閳D形,保存,程序/運(yùn)行,按圖形向?qū)ё霰韱?/p>
(2)按倉(cāng)庫(kù)表新建一個(gè)查詢,只要倉(cāng)庫(kù)號(hào)和面積,在做圖形
(3)文件/打開,查詢號(hào),將去向選為表,程序/運(yùn)行.先打開表,再用list
6.2視圖
一.視圖的概念
視圖兼有‘'表‘'和''查詢”的特點(diǎn),與查詢相類似的地方是,可用來從一個(gè)或多個(gè)相關(guān)聯(lián)的表中提
取有用信息.與表相類似的地方是,可用來更新其中的信息,并將更新的結(jié)果永久保存在磁盤
上.
二.建立視圖
1.建立視圖的方法
(1)用來命令
createview
(2)”文件/新建”彈出新建對(duì)話框,選擇“視圖“,再單擊“新建文件”的按鈕
(3)在項(xiàng)目管理器中,在數(shù)據(jù)的選項(xiàng)中,選擇“本地視圖”
(4)SQL中,createview,,AS-"
2.視圖設(shè)計(jì)器
視圖與查詢區(qū)別
(1)查詢的結(jié)果在一個(gè)查詢文件中,擴(kuò)展名為“QPR”,而視圖信賴于數(shù)據(jù)庫(kù)表文件,結(jié)果
保存在數(shù)據(jù)庫(kù)中
(2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度幼兒園園服定制與校園安全管理服務(wù)合同3篇
- 2024年中醫(yī)藥產(chǎn)業(yè)投資基金合作購(gòu)銷合同范本3篇
- 2024年度中小企業(yè)貸款擔(dān)保服務(wù)協(xié)議3篇
- 2024年度房產(chǎn)中介租賃市場(chǎng)拓展與房地產(chǎn)金融合同3篇
- 2024年度地毯行業(yè)會(huì)展與合作簽約合同3篇
- 2024年度校企合作綠色專業(yè)建設(shè)與發(fā)展框架協(xié)議3篇
- 2024年度醫(yī)療設(shè)備采購(gòu)、安裝、維修一體化合同3篇
- 2024員工個(gè)人入股合作協(xié)議范本:股權(quán)激勵(lì)制度實(shí)施3篇
- 2024年房地產(chǎn)買賣貸款合同范本(含稅費(fèi)處理)3篇
- 2024年度魚池轉(zhuǎn)讓及生態(tài)養(yǎng)殖項(xiàng)目合作框架協(xié)議3篇
- 廣東省廣州海珠區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 2024年《論教育》全文課件
- 生命安全與救援學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- (2024年)面神經(jīng)炎課件完整版
- 華電行測(cè)題庫(kù)及答案2024
- 馬工程版《中國(guó)經(jīng)濟(jì)史》各章思考題答題要點(diǎn)及詳解
- 大學(xué)語(yǔ)文莊子·秋水(課堂)課件
- 尋覓沉睡的寶船 南海一號(hào) 華光礁一號(hào)
- DB32-T 2948-2016水利工程卷?yè)P(yáng)式啟閉機(jī)檢修技術(shù)規(guī)程-(高清現(xiàn)行)
- 公司治理(馬連福 第2版) 課后答案及案例分析 第2章
- 繪本brown bear教案及反思
評(píng)論
0/150
提交評(píng)論