《數(shù)據(jù)庫應(yīng)用基礎(chǔ)》PPT課件.ppt
《《數(shù)據(jù)庫應(yīng)用基礎(chǔ)》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫應(yīng)用基礎(chǔ)》PPT課件.ppt(72頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第7章數(shù)據(jù)庫應(yīng)用基礎(chǔ)VFP,7.1數(shù)據(jù)庫的基本概念,日常生活工作中,我們每天都要接觸大量的信息,比如學(xué)生成績、人事檔案、工資表、貨物清單等。那么,它們都可以表示為數(shù)據(jù)的形式,這么多的數(shù)據(jù),單靠紙、筆、算盤進行統(tǒng)計幾乎是不可能的,計算機的出現(xiàn)解決了這個復(fù)雜的問題,它將大批量的數(shù)據(jù)信息存儲在大容量磁盤上,并方便地進行管理。那么,這些數(shù)據(jù)是怎樣存儲的,怎樣被訪問、修改和刪除呢?這就用到了數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫技術(shù)將各種各樣的數(shù)據(jù)分門別類地存儲起來,用戶可以很容易地查看、管理、操作這些數(shù)據(jù)。,數(shù)據(jù)不僅僅是文本,多媒體數(shù)據(jù)庫的發(fā)展可以讓數(shù)據(jù)是圖片、聲音、視頻等內(nèi)容。7.1.1數(shù)據(jù)庫系統(tǒng)的特點、數(shù)據(jù)模型7.1.1.1數(shù)據(jù)庫系統(tǒng)的特點a.數(shù)據(jù)的共享性b.數(shù)據(jù)的獨立性c.數(shù)據(jù)的完整性d.數(shù)據(jù)的集中性7.1.1.2數(shù)據(jù)模型,1、層次數(shù)據(jù)模型,,,,,,系名系號系主任,,,專業(yè)號專業(yè)名,,教師號姓名職稱,,,學(xué)號姓名性別年齡,課程號課程名學(xué)分,,,,,,,,,,系教務(wù)管理層次模型,2、網(wǎng)狀數(shù)據(jù)模型,3、關(guān)系數(shù)據(jù)模型關(guān)系模型中每個關(guān)系對應(yīng)一張二維表,它由一些行和列組成。關(guān)系模型中,實體和實體之間的聯(lián)系都使用關(guān)系(二維表)來表示的。關(guān)系模型結(jié)構(gòu)單一、操作方便,容易被用戶接收,且有堅實的數(shù)學(xué)理論基礎(chǔ),因而得到了廣泛的應(yīng)用,成為目前最流行的一種數(shù)據(jù)模型。當(dāng)前的一些數(shù)據(jù)庫,從Oracle到SQLServer,以及Access和VFP,都毫無例外地采用了關(guān)系模型。,7.1.2了解數(shù)據(jù)類型1、字符型(C)由字母(漢字)、數(shù)字、空格等任意字符串組成。每個字符占1字節(jié),漢字占2字節(jié)。長度0-254。2、貨幣型(Y)存儲與貨幣有關(guān)的數(shù)據(jù),如工資、價格等。3、日期型(D)保存不帶時間的日期,存儲格式為“yyyymmdd”。字段寬度8字節(jié)。4、日期時間型(T)包括年、月、日、時、分、秒。,5、邏輯型(L)用于存儲只有兩個值的數(shù)據(jù),存入的值只有(.T.)和(.F.)兩種狀態(tài),占一個字節(jié)。如婚否,及格否等。6、數(shù)值型(N)用來存儲由數(shù)字、小數(shù)點和正負號組成的,可以進行計算的數(shù)據(jù),如成績、重量、體積、訂貨數(shù)量等。7、雙精度型(B)存儲高精度的試驗數(shù)據(jù)。8、浮點型(F)9、整型(I)存放由數(shù)字和正負號構(gòu)成的整數(shù)型數(shù)據(jù)。其字段寬度為4字節(jié)。使用整型比使用其它類型節(jié)省空間,運算速度也快。,10、備注型(M)占用10個字節(jié)的空間,單獨存在于一個備注文件中,備注文件擴展名為.DBT。7.1.3掌握VFP中常量與變量的概念1、常量值不變的數(shù)據(jù)項。數(shù)值型常量:5、2.345、-100。字符型常量:“XUV”、“歡迎!”、‘Hello’。邏輯型常量:.T.和.F.。日期型常量和日期時間型常量:{^2008-11-11}、{^2009-1-1211:11am}。,2、變量可以變化,有名字的數(shù)據(jù)。命名規(guī)則:變量名只能由字母、數(shù)字、下劃線組成。以字母或下劃線開頭,長度為1-128個字符。不能使用VFP的保留字。每個漢字占2字符?!癆_XX”、“_UU”、“運算結(jié)果”?!?abc”、“IF”、“ELSE”、“A@2”、“{2}”、“8開始”。,7.1.4掌握VFP表達式的使用1、算術(shù)運算符2、字符串運算符3、日期時間運算符4、關(guān)系運算符5、邏輯運算符,求值:2+3>1+4.AND..NOT.6<8,算數(shù)運算符的優(yōu)先級為()→^或**→*和/→%→+和-。,1、算術(shù)運算符,表達式的書寫規(guī)則:每個符號占1格,所有符號都必須排在同一橫線上,不能出現(xiàn)上標(biāo)或下標(biāo)。例如:102寫為10^2或10**2、3xy寫為3*x*y、2[x+5(y+z)]寫為2*(x+5*(y+z))、∏r2寫為pi()*r^2。練習(xí):將下式寫為VFP算術(shù)表達式。2、字符串運算符,字符串表達式:“ab123”+”88xy”結(jié)果為:“ab12388xy”?!皻g迎光臨”+“謝謝惠顧!”結(jié)果為:“歡迎光臨謝謝惠顧!”?!癮bc“+”123“+”xyz“結(jié)果為:”abc123xyz“?!癆BC“+”DEF”結(jié)果為:”ABCDEF”。3、日期時間運算符日期之間只能進行加減運算,有下面3種情況:(1)日期相減,得到相差的天數(shù)。(2)日期加數(shù)值,得到新的日期。(3)日期減數(shù)值,得到以前某個日期。,例如:{^2008/11/11}–{2008/11/1}結(jié)果為數(shù)值10。{^2008/11/11}+5結(jié)果為日期型數(shù)據(jù):{^2008/11/16}。{^2008/11/11}-3結(jié)果為日期型數(shù)據(jù):{^2008/11/8}。4、關(guān)系運算符,說明:關(guān)系運算符兩邊的表達式只能是數(shù)值型、字符串型、日期型,不能是邏輯型的表達式或值。字符型數(shù)據(jù)按其ASCII碼值進行比較,ASCII碼大的字符所在的串值大。(ASCII碼用0-127的數(shù)字表示字母和一些符號,其中空格(的ASCII碼)<0<1<2<…<9<…=0。,閏年的條件是:年號(year)能被4整除,但不能被100整除;或者能被400整除。結(jié)果為:(y%4=0.AND.Y%1000).OR.(y%400=0)7.1.5VFP常用函數(shù)1、數(shù)學(xué)函數(shù)MAX(表達式1,表達式2,…)求各表達式中的最大值。MIN()求各表達式中最小值。MOD(表達式1,表達式2)求表達式1除以表達式2的余數(shù)。?BETWEEN(15,10,30)&&結(jié)果顯示.T.score=80?IIF(score>=90,”優(yōu)”,”合格”)&&顯示:合格。2、字符串函數(shù)LEN(表達式)求字符串表達式長度。SUBSTR(表達式,n[,m])從字符串表達式中提取從n開始的m個字符的字符串,若省略m,則取n開始的所有字符串。,SUBSTR(“11/30/03”,7,2)=“03"LOWER(表達式)將字符串表達式中的大寫字母轉(zhuǎn)化為小寫字母,其余不變。UPPER(表達式)與上相反。3、日期時間函數(shù)DATE()取系統(tǒng)當(dāng)前日期。TIME()取系統(tǒng)當(dāng)前時間。DATETIME()YEAR(日期表達式)取日期表達式的年份值,返回整數(shù)。MONTH(日期表達式)取日期表達式的月份值,返回整數(shù)。DAY(日期表達式)取日期表達式的月份值,返回整數(shù)。LISTYEAR(出生日期),4、類型轉(zhuǎn)化函數(shù)STR(數(shù)值表達式)轉(zhuǎn)換數(shù)值表達式為數(shù)字字符串。CTOD(表達式)將字符串轉(zhuǎn)化為日期型。DTOC(表達式)將日期型表達式轉(zhuǎn)化為字符串。86年出生的表達式:SUBSTR(DTOC(出生時間),7,2)="86"等價于:YEAR(出生時間)=1986出生時間必須為日期型。,1、求3的10次方。2、求199除以5得的余數(shù)。3、"1995"+"年"+"8"+"月"+"日"結(jié)果為什么?4、"聞雞起舞"+"枕戈待旦"5、"聞雞起舞"-"枕戈待旦"6、{^2008/11/11}-3結(jié)果為?7、3#9結(jié)果為?(或、!=)8、"菊"$"采菊東籬下"結(jié)果為?9、陶潛==陶精確匹配,結(jié)果為?10、(1>8).AND.(28).OR.(2=480&&顯示入學(xué)成績大于480的所有記錄。Go2RECALLALL&&取消當(dāng)前表中所有記錄的刪除標(biāo)記。FIELDS子句:后面可以跟字段名和表達式。LISTFIELDS姓名,性別,出生時間,入學(xué)成績&&后跟字段名LISTFIELDS“姓名”+姓名,”性別”,性別,FOR子句:LISTFOR性別.AND.入學(xué)成績>=480LISTFIELDS姓名,入學(xué)成績FOR性別.AND.入學(xué)成績>=480LISTFIELDS“姓名”+姓名,”性別”,性別FOR.NOT.性別LISTALLFIELDS學(xué)號,入學(xué)成績FOR入學(xué)成績>=460.AND.性別DISPLAYFOR出生時間的作用是:在規(guī)定的中,按檢查全部記錄。即從第1條記錄開始,,滿足條件的就執(zhí)行該命令,不滿足條件就跳過去繼續(xù)搜索,直到最后一條記錄。若省略,則默認為ALL。,命令書寫規(guī)則:1)每條命令必須以一個命令動詞開頭。2).T..F.兩個邏輯值中的小數(shù)點與字母間不能有空格。3)一個命令行的最大長度是254個字符,空格數(shù)也包括在內(nèi)。4)如果一個命令太長,一行寫不下,可以使用續(xù)行符“;”。5)不區(qū)分大小寫。6)命令動詞和子句中的短語可以用其前4個字符縮寫表示。如DISPLAYSTRUCTURE可簡寫為DISPSTRU。7)不要用A到I之間的單個字母作為表名,因為它們已被保留作數(shù)據(jù)庫工作區(qū)的名稱。8)不要用VFP的保留字作文件名、字段名、變量名等。9)一行只能寫一條命令,每條命令的結(jié)束標(biāo)志是回車鍵。10)數(shù)據(jù)庫文件后綴為.DBC、表文件名后綴為.DBF、備注文件.FPT。,7.2VFP數(shù)據(jù)表7.2.1數(shù)據(jù)表的基本概念數(shù)據(jù)表:一些有組織數(shù)據(jù)的集合,由行、列組成的二維表格。簡稱表(Table)。一個數(shù)據(jù)庫包含一個或多個二維表,表表示現(xiàn)實世界的關(guān)系或?qū)嶓w,各個數(shù)據(jù)表之間可能存在某種關(guān)系。字段:數(shù)據(jù)表中的每一列稱為一個字段,它對應(yīng)表格中的數(shù)據(jù)項,每個數(shù)據(jù)項的名稱稱為字段名(屬性),如“年齡”、“性別”、“學(xué)號”、“入學(xué)時間”等都是字段名。記錄:表中每一數(shù)據(jù)行成為一條記錄,每條記錄由許多字段組成,如“2006001、趙小霞、女、1987年6月12日、490、計算機、程家吉”。,St.dbf數(shù)據(jù)表,7.2.2啟動VFP7.2.3建立數(shù)據(jù)表可以在VFP中建立兩種表:數(shù)據(jù)表和自由表。數(shù)據(jù)表是數(shù)據(jù)庫的一部分,自由表可以獨立存在于任何數(shù)據(jù)庫之外。數(shù)據(jù)庫文件后綴為.DBC、表文件名后綴為.DBF、備注文件.FPT。1)利用“表設(shè)計器”創(chuàng)建新表。2)追加記錄。3)使用命令創(chuàng)建新表CREATETABLE(()[,()],字符型(C)由字母(漢字)、數(shù)字、空格等任意字符串組成。每個字符占1字節(jié),漢字占2字節(jié)。長度0-254。貨幣型(Y)存儲與貨幣有關(guān)的數(shù)據(jù),如工資、價格等。日期型(D)保存不帶時間的日期,存儲格式為“yyyymmdd”。字段寬度8字節(jié)。日期時間型(T)包括年、月、日、時、分、秒。邏輯型(L)用于存儲只有兩個值的數(shù)據(jù),存入的值只有(.T.)和(.F.)兩種狀態(tài),占1個字節(jié)。如婚否,及格否等。,數(shù)值型(N)用來存儲由數(shù)字、小數(shù)點和正負號組成的,可以進行計算的數(shù)據(jù),如成績、重量、體積、訂貨數(shù)量等。整型(I)存放由數(shù)字和正負號構(gòu)成的整數(shù)型數(shù)據(jù)。其字段寬度為4字節(jié)。使用整型比使用其它類型節(jié)省空間,運算速度也快。備注型(M)占用10個字節(jié)的空間,單獨存在于一個備注文件中,備注文件擴展名為.DBT。1、創(chuàng)建新表命令CREATETABLESt_1(學(xué)號c(7),姓名C(6),性別L(1),出生時間d(8),入學(xué)成績n(6,1),所在系c(10),系負責(zé)人c(8)),2、打開表命令USESt3、關(guān)閉表命令USE4、添加記錄命令A(yù)PPEND7.2.4瀏覽數(shù)據(jù)表USESt(如果當(dāng)前表不在默認路徑下,一定要加路徑)BROWSEUSE“d:\vfp\st.dbf”顯示數(shù)據(jù)還可以使用LIST和DISPLAY命令。命令格式如下:LIST或DISPLAY[][FIELDS][FOR][OFF](DISPLAY若沒有FOR語句,則只顯示當(dāng)前行。若不指定FIELDS,則輸出所有字段。加上OFF,則顯示系統(tǒng)加上的記錄號,反之,不顯示。),顯示所有數(shù)據(jù):LIST或DISPLAYALL。顯示當(dāng)前記錄:DISPLAY不帶記錄號現(xiàn)實當(dāng)前記錄:DISPOFF顯示男同學(xué)的姓名和出生時間:DISPLAY姓名,出生時間FOR性別或LIST姓名,出生時間FOR性別,顯示入學(xué)成績在480分以上的女生的學(xué)號、姓名、性別、入學(xué)成績。LISTOFF“學(xué)號:”+學(xué)號,姓名,性別,入學(xué)成績FOR.not.性別.and.入學(xué)成績>=480顯示女同學(xué)的姓名和年齡:DISP姓名,year(date())-year(出生時間)FOR性別編輯模式:EDIT與CHANGE命令等價。例如:修改當(dāng)前記錄EDIT修改第n條記錄EDITn修改包括當(dāng)前記錄在內(nèi)的n條記錄:EDITNEXTn,,列出8月份出生的女同學(xué)的姓名和出生時間?列出年齡大于等于20歲的學(xué)生紀(jì)錄,要求不顯示記錄號?,記錄指針的移動:①絕對定位:GOTOP、GOBOTTOM、GO。②相對定位:SKIP。n>0下移、n19)。INDEXON學(xué)號toxhforyear(date())-year(出生時間)>=22LIST4、查詢記錄使用普通索引、候選索引或主索引,可以進行記錄排序,以便提高顯示、查詢或打印的速度。①字符查找例:在已經(jīng)建立的索引文件的基礎(chǔ)上,查找姓名為“李才”和學(xué)號為“2006011”的記錄。,SETORDERTOxmFIND李才DISPSETORDERTOxhFIND2006011DISPFIND2006001DISP注意:使用SETORDER命令,可以改變表單中記錄的順序。格式為:SETORDERTO(索引名為已存在的索引)。FIND字符查找命令,查找關(guān)鍵字與所給字符串相匹配的第一個記錄。若找到,指針指向該記錄,否則指向文件尾。FIND|,②表達式查找:例:以性別為關(guān)鍵字建立索引,并查找第一個男生記錄和第一個女生記錄.INDEXON性別TOxbSETORDERTOxbLISTSEEK.T.DISPSEEK.F.DISPSEEK命令查找關(guān)鍵字與所給字符串相匹配的第一個記錄。若找到,指針指向該記錄,否則指向文件尾,給出信息“沒找到”。語法格式為:SEEK刪除所有索引:DELETETAGALL。刪除索引:DELETETAG索引名。,說明:只能找出符合條件的第一條記錄,該命令可以查找字符、數(shù)值、日期和邏輯型索引關(guān)鍵字。若為字符串,則必須用界限符號括起來(‘’,“”,[])。若是找到了符合條件的首記錄,則函數(shù)FOUND()的值為.T.,否則為.F.。順序查詢例:在數(shù)據(jù)表中依次查找86年出生的學(xué)生記錄。USESTLISTLOCATEFORSUBSTR(DTOC(出生時間),7,2)=“86”DISPCONTINUEDISPCONTINUEDISP,將記錄指針定位在第一條中文系學(xué)生紀(jì)錄上?將記錄指針定位在第一條成績大于500分的學(xué)生紀(jì)錄上?,LOCATE命令是在不建立索引的條件下,查找當(dāng)前數(shù)據(jù)表中滿足條件的第一條記錄。語法格式為:LOCATE[][FOR]④統(tǒng)計記錄建立數(shù)據(jù)表后,常常要對數(shù)據(jù)表中數(shù)值型字段的記錄進行統(tǒng)計。統(tǒng)計記錄數(shù)COUNT:例:分別統(tǒng)計女生人數(shù)和入學(xué)成績>480分的學(xué)生記錄。USEstLISTCOUNTFOR.NOT.性別TOnCOUNTFOR入學(xué)成績>=480TOx?n,x,統(tǒng)計函數(shù)使用COUNT命令,格式為:COUNT[][FOR][TO]求和SUM:例:求女生入學(xué)成績之和。SUM入學(xué)成績FOR.NOT.性別TOnu求平均值A(chǔ)VERAGE:例:求86年出生的學(xué)生的平均入學(xué)成績,以及中文系男學(xué)生的平均入學(xué)成績。AVERAGE入學(xué)成績FORSUBSTR(DTOC(出生時間),7,2)=“86”TOpjcj,AVERAGE入學(xué)成績FORSUBSTR(DTOC(出生時間),7,2)=“86”另外一種寫法:AVERAGE入學(xué)成績FORYEAR(出生時間)=1986LISTYEAR(出生時間)&&返回4位數(shù)整數(shù)。LISTFORYEAR(出生時間)>=1987,AVERAGEFOR所在系=“中文”TOpjszx?“86年出生的學(xué)生的平均入學(xué)成績?yōu)椋骸?str(pjcj)?“中文系學(xué)生的平均入學(xué)成績?yōu)椋骸?str(pjszx)AVERAGE命令格式為:AVERAGE[][][FOR][TO],補充內(nèi)容:①索引的降序處理:如果是數(shù)字,可直接在前面加“-”號。如果是字符串,則格式如下:INDEXON出生時間TAGsjDESC②求最大值最小值函數(shù)(MAX和MIN函數(shù)的使用)。CALCULATESUM(入學(xué)成績),MAX(入學(xué)成績),MIN(入學(xué)成績),AVG(入學(xué)成績)CALCULATEMAX(入學(xué)成績)TOmaxcj,③復(fù)制數(shù)據(jù)到新文件命令如下:COPYTOFIELDSFORCOPYTO學(xué)生2.dbfFIELDS姓名,補助,出生日期FOR專業(yè)="計算機",對計算機專業(yè)的學(xué)生按年齡的降序排列,生產(chǎn)新表table1.dbf,且只包含姓名、性別、出生時間3字段?將1986年出生的同學(xué)按分數(shù)升序排列,并生成新表table2?,常用的操作命令總結(jié):子句4種情況:ALL操作對象為表中全部數(shù)據(jù)。NEXT操作包括當(dāng)前記錄在內(nèi)的以下n條記錄。RECORD只操作第n個數(shù)據(jù)。REST操作從當(dāng)前到結(jié)尾的記錄。顯示表中記錄LIST、DISPLAYLIST[][FIELDS][FOR][OFF]LISTALLFIELDS學(xué)號,語文FOR語文>=85.AND.性別DISPLAYFOR出生日期=480TOx?n,xSUM入學(xué)成績FOR.NOT.性別TOnuSUM入學(xué)成績FOR所在系="計算機"TOnumberAVERAGE入學(xué)成績FORSUBSTR(DTOC(出生時間),7,2)="86"TOpjcj(或YEAR(出生時間)=1986)AVERAGE入學(xué)成績FOR所在系="中文"TOpjszx,,,,⑦用命令建立索引INDEXON[FOR]INDEXON學(xué)號TOxhLISTINDEXON-入學(xué)成績TOcjLISTINDEXON姓名TAGxmDESC按姓名的降序建立索引(默認為升序)。LIST,復(fù)制數(shù)據(jù)到新文件命令如下:COPYTOFIELDSFORCOPYTO學(xué)生2.dbfFIELDS姓名,補助,出生日期FOR專業(yè)="計算機",- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫應(yīng)用基礎(chǔ) 數(shù)據(jù)庫 應(yīng)用 基礎(chǔ) PPT 課件
鏈接地址:http://m.kudomayuko.com/p-13094794.html