




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章數(shù)據(jù)庫的高級(jí)操作*
5.1SQL語言5.2查詢5.3報(bào)表5.4標(biāo)簽學(xué)習(xí)目標(biāo)了解SQL語言,熟悉SQL的查詢命令;掌握查詢的創(chuàng)建和使用查詢多樣化輸出;掌握報(bào)表設(shè)計(jì)步驟和運(yùn)行方法;了解標(biāo)簽的設(shè)計(jì)與使用。重點(diǎn)與難點(diǎn)重點(diǎn)在于SQL的查詢命令、查詢輸出和報(bào)表設(shè)計(jì);難點(diǎn)在于報(bào)表的設(shè)計(jì)。
5.1SQL語言SQL是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言(StructuredQureyLanguage,SQL),其功能并不僅僅是查詢,還具備數(shù)據(jù)定義等功能,支持關(guān)系數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu),其中外模式對應(yīng)于視圖和部分基本表,模式對應(yīng)于基本表,而內(nèi)模式對應(yīng)于存儲(chǔ)文件。SQL語言的特點(diǎn)(1)類似于英語自然語言,容易學(xué);(2)是一種非過程語言;(3)是一種面向集合的語言;(4)既可獨(dú)立使用,又可嵌入到宿主語言中使用;(5)具有查詢、操縱、定義和控制一體化功能。注意:VFP所支持的SQL語言并不是全部的SQL語言。5.1.1SQL數(shù)據(jù)定義功能1.定義基本表2.定義視圖1.定義基本表SQL語句如下:createtable<表名>(字段名1,類型([寬度[,小數(shù)點(diǎn)位數(shù)]])[null|notnull][check<邏輯表達(dá)式>[error<出錯(cuò)提示信息>]][primarykey|unique][,字段名2……])[foreignkey字段名tag索引標(biāo)識(shí)名references表名1]其中,null子句表示該字段中是否允許空值。check子句給出字段有效性規(guī)則,以及違背規(guī)則的出錯(cuò)信息。primary子句給出是主索引,還是候選索引,用于數(shù)據(jù)庫表的定義。foreignkey子句指出關(guān)聯(lián)表的外碼。【例5.1】定義一個(gè)學(xué)生表,并顯示表的結(jié)構(gòu)。c-字符型,d-日期型,n-數(shù)值型。xh:學(xué)號(hào)、xm:姓名、xb:性別;csrq:出生日期;sg:身高。
createtablestudent(xhc(4),xmc(8),xbc(2),csrqd,sgn(3))usestudentliststructure2.定義視圖SQL語句基本格式如下:createsqlview[視圖名]asselect語句其中,“視圖名”指出定義的視圖名?!皊elect語句”是一個(gè)定義視圖的Select查詢語句,編程方式使用。注意:定義視圖要求數(shù)據(jù)庫已經(jīng)被打開。【例5.2】定義視圖testview。opendatabase學(xué)生成績管理createsqlviewtestview
&&執(zhí)行該命令進(jìn)入“視圖設(shè)計(jì)器”。3.修改表結(jié)構(gòu)表結(jié)構(gòu)的字段的增加、刪除或更改就是修改表結(jié)構(gòu)的操作。SQL語句基本格式如下:(1)修改字段屬性altertable表名alter字段名1類型([寬度[,小數(shù)點(diǎn)位數(shù)]])[null|notnull][alter字段名2類型([寬度[,小數(shù)點(diǎn)位數(shù)]])[null|notnull]……](2)刪除字段altertable表名drop字段名1[drop字段名2……](3)增加字段altertable表名add字段名1類型([寬度[,小數(shù)點(diǎn)位數(shù)]])[null|notnull][add字段名2類型([寬度[,小數(shù)點(diǎn)位數(shù)]])[null|notnull]……](4)更改字段名altertable表名rename原字段名1to新字段名1[rename原字段名2to新字段名2……]【例5.3】在例5.1定義表的基礎(chǔ)上,增加一個(gè)邏輯型sfdy(是否黨員)的字段和一個(gè)字符型的tmp字段,再修改tmp字段為數(shù)值型字段,再將tmp字段名改為temp。最后刪除temp字段。
altertablestudentaddsfdyLaddtmpc(10)&&增加字段liststructurealtertablestudentaltertmpn(6,2)&&修改字段liststructurealtertablestudentrenametmptotemp&&字段更名liststructurealtertablestudentdroptemp&&刪除字段liststructureuse5.1.2SQL數(shù)據(jù)查詢功能VFP系統(tǒng)提供了Select-SQL查詢語句,提供了簡便、快捷和靈活多樣的各種查詢功能。Select語句功能是創(chuàng)建一個(gè)指定范圍內(nèi)、滿足條件、按某字段分組、按某字段排序的指定字段組組成的記錄集。Select-SQL查詢語句select[all|distinct]<字段名1>|<函數(shù)>[,<字段名2>……]from<表或查詢>[[left]|[right]|[inner]join<表或查詢>on〈條件表達(dá)式1〉][where〈條件表達(dá)式2〉][groupby<分組字段名>[Having<條件表達(dá)式3>]][orderby<關(guān)鍵字表達(dá)式>[[ascending]|[dscending]]]其中:all:全部記錄,distinct:查詢結(jié)果不包含重復(fù)的行。函數(shù):查詢計(jì)算函數(shù)。from:指定查詢數(shù)據(jù)源。[left]|[right]|[inner]join<表或查詢>on〈條件表達(dá)式1>:查詢結(jié)果來自多個(gè)表。where:查詢結(jié)果是數(shù)據(jù)源表中滿足條件表達(dá)式2的記錄集。groupby:查詢結(jié)果按分組字段命分組。having:是將指定表滿足條件表達(dá)式3,并且按分組字段名分組結(jié)果組成的記錄集。orderby:查詢結(jié)果按關(guān)鍵字表達(dá)式的值排序。asc:升序,des:降序?!纠?.4】在4.3.4節(jié)中創(chuàng)建了一個(gè)“學(xué)生成績管理”數(shù)據(jù)庫,其中有三個(gè)表:學(xué)生表、課程表和選課表。使用Select命令完成下面的查詢:從學(xué)生表中創(chuàng)建一個(gè)查詢,結(jié)果包括學(xué)號(hào)、姓名和入學(xué)年份三個(gè)字段的所有女同學(xué)。再創(chuàng)建一個(gè)查詢,結(jié)果中包含學(xué)號(hào)、姓名、課程名和分?jǐn)?shù),并且按分?jǐn)?shù)降序。select學(xué)號(hào),姓名,入學(xué)年份from學(xué)生表SELECT選課表.學(xué)號(hào),學(xué)生表.姓名,學(xué)生表.性別,課程表.課程名稱,;
選課表.分?jǐn)?shù);FROM學(xué)生成績管理!課程表INNERJOIN學(xué)生成績管理!選課表;INNERJOIN學(xué)生成績管理!學(xué)生表;ON選課表.學(xué)號(hào)=學(xué)生表.學(xué)號(hào);ON選課表.課程號(hào)=課程表.課程號(hào);orderby分?jǐn)?shù)desc5.1.3SQL數(shù)據(jù)操縱功能SQL數(shù)據(jù)操縱是指對表中記錄的插入、更新或刪除等操作。(1)插入命令:實(shí)現(xiàn)在一個(gè)表的末尾追加新記錄,并給新記錄的字段賦值。格式如下:insertinto<表名>(<字段名1>[,<字段名2>……])values(<表達(dá)式1>[,<表達(dá)式2>……])(2)更新命令:實(shí)現(xiàn)對所有記錄或符合條件記錄的字段值的更新。格式如下:update<表名>set<字段名1>=<表達(dá)式1>[,<字段名2>=<表達(dá)式2>……][where<條件表達(dá)式>](3)刪除命令:實(shí)現(xiàn)對表中所有記錄或滿足條件的記錄進(jìn)行邏輯刪除操作。格式如下:deletefrom<表名>[where<條件表達(dá)式>]【例5.5】在“學(xué)生信息表”中,添加一條編號(hào)為“88888888”記錄,更新添加記錄的字段值,刪除添加的這條記錄。insertinto學(xué)生信息表(編號(hào),姓名,性別)values("88888888","哈羅","男")browupdate學(xué)生信息表set出生日期={^1980-10-3},是否黨員=.t.;where編號(hào)="88888888"browdeletefrom學(xué)生信息表where編號(hào)="88888888"brow5.2查詢查詢(Query)是一種功能強(qiáng)大且相對獨(dú)立,能夠?qū)崿F(xiàn)結(jié)果輸出多樣化的操作,它可以實(shí)現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的瀏覽、篩選、排序、檢索、統(tǒng)計(jì)等功能。同視圖相比,雖然視圖能夠?qū)崿F(xiàn)數(shù)據(jù)更新而查詢沒有該項(xiàng)功能,但查詢結(jié)果輸出形式的多樣化是視圖所不及的。5.2.1查詢的創(chuàng)建查詢的創(chuàng)建可以直接使用SQL的Select的語句;也可以使用VFP提供的創(chuàng)建查詢的功能實(shí)現(xiàn),即使用“查詢設(shè)計(jì)器”,查詢的創(chuàng)建過程與視圖創(chuàng)建類似?!安樵冊O(shè)計(jì)器”創(chuàng)建查詢命令格式:createquery<查詢文件名>查詢:分單表查詢和多表查詢。5.2.2使用查詢多樣化輸出查詢創(chuàng)建完畢,保存在.qpr的文件中,如何使用呢?可以使用VFP系統(tǒng)“文件”菜單,選擇打開查詢文件,再單擊工具欄中間的紅色感嘆(?。┌粹o就可以運(yùn)行,或在“查詢”菜單中選擇“運(yùn)行查詢”。除了菜單方式外,還可以使用命令方式來執(zhí)行查詢,命令格式如下:do查詢文件主名.qpr其中,文件的類型名.qpr不能缺省。譬如:執(zhí)行分?jǐn)?shù)查詢可以在命令窗口輸入:do分?jǐn)?shù)查詢qpr↙,之后可以看到查詢結(jié)果了。查詢?nèi)ハ蛟O(shè)置查詢的實(shí)質(zhì)VFP的查詢功能其實(shí)質(zhì)也是SQL的查詢語句,從“查詢”菜單中選擇“查看SQL”菜單項(xiàng)或單擊工具欄的“SQL”按鈕可以查看到上述查詢設(shè)計(jì)的SQL語句:SELECT學(xué)生表.姓名,選課表.分?jǐn)?shù);FROM學(xué)生成績管理!學(xué)生表INNERJOIN學(xué)生成績管理!選課表;INNERJOIN學(xué)生成績管理!課程表;ON課程表.課程號(hào)=選課表.課程號(hào);ON學(xué)生表.學(xué)號(hào)=選課表.學(xué)號(hào);WHERE選課表.課程號(hào)="01";INTOCURSORSYS(2015)&&存入系統(tǒng)臨時(shí)表
DO(_GENGRAPH)WITH'QUERY'&&圖形輸出形式5.3報(bào)表在使用數(shù)據(jù)庫管理系統(tǒng)管理數(shù)據(jù),經(jīng)常遇到使用各種報(bào)表,報(bào)表匯集用戶所需的重要信息并且按照特定的格式,因此常常被作為一種信息輸出手段。在VFP中,報(bào)表具有數(shù)據(jù)源和布局兩個(gè)基本組成部分,數(shù)據(jù)源是指數(shù)據(jù)庫中的表、視圖、查詢或臨時(shí)表,而布局是定義報(bào)表的輸出格式。報(bào)表的設(shè)計(jì)通常使用“報(bào)表設(shè)計(jì)器”。5.3.1報(bào)表設(shè)計(jì)器命令格式如下:createreport報(bào)表文件名
報(bào)表的典型帶區(qū)帶區(qū)類型打印效果設(shè)置方法用途標(biāo)題每表一次從“報(bào)表”菜單中選擇“標(biāo)題/總結(jié)”命令封面頁、說明標(biāo)題和介紹頁標(biāo)頭每頁一次默認(rèn)報(bào)表的日期、時(shí)間、頁數(shù)、信封頭、列表題列標(biāo)頭每列一次選擇“文件”菜單下的“頁面設(shè)置”命令,設(shè)置列數(shù)大于1列標(biāo)題組標(biāo)頭每組一次從“報(bào)表”菜單中選擇“數(shù)據(jù)分組”命令組的說明、組標(biāo)識(shí)等細(xì)節(jié)帶區(qū)每記錄一次默認(rèn)字段、文字、表達(dá)式的值組注腳每組一次從“報(bào)表”菜單中選擇“數(shù)據(jù)分組”命令組的說明、組的標(biāo)識(shí)符、組統(tǒng)計(jì)小結(jié)等列注腳每列一次選擇“文件”菜單下的“頁面設(shè)置”命令,設(shè)置列數(shù)大于1列統(tǒng)計(jì)小結(jié)頁注腳每頁面一次默認(rèn)報(bào)表的日期、時(shí)間、頁數(shù)和打印人等總結(jié)每報(bào)表一次從“報(bào)表”菜單中選擇“標(biāo)題/總結(jié)”命令總的統(tǒng)計(jì)結(jié)果、結(jié)論等工具欄報(bào)表控件及其功能控件功能選擇對象。單擊可以選定一個(gè)對象,按住shift鍵單擊可以選定多個(gè)對象標(biāo)簽控件。顯示文本信息,常用作域控件的提示信息。域控件。與報(bào)表表達(dá)式關(guān)聯(lián),報(bào)表表達(dá)式可以就是數(shù)據(jù)表的字段名。用于顯示表達(dá)式的值或字段值線條控件。用于畫水平或垂直的線條。矩形控件。用于畫直角矩形。圓角矩形控件。用于畫圓角矩形OLE綁定控件。用于在報(bào)表中嵌入或鏈接對象,譬如:公司Logo選擇按鈕鎖定方式,方便添加同類型的多個(gè)控件,而不必反復(fù)單擊工具欄中的按鈕5.3.2報(bào)表的設(shè)計(jì)1.報(bào)表頁面設(shè)置2.?dāng)?shù)據(jù)環(huán)境設(shè)置3.插入報(bào)表控件1.報(bào)表頁面設(shè)置從“文件”菜單中選擇“頁面設(shè)置”命令,打開“頁面設(shè)置”窗口2.?dāng)?shù)據(jù)環(huán)境設(shè)置報(bào)表的數(shù)據(jù)環(huán)境確定了報(bào)表中數(shù)據(jù)的來源。在數(shù)據(jù)環(huán)境設(shè)計(jì)器中空白處右擊鼠標(biāo),從出現(xiàn)的快捷菜單中選擇“添加”命令,可以添加數(shù)據(jù)表或視圖??梢詫?shù)據(jù)表或視圖中的字段從“數(shù)據(jù)環(huán)境設(shè)計(jì)器”中拖動(dòng)到報(bào)表的帶區(qū)。3.插入報(bào)表控件在報(bào)表中可以插入標(biāo)簽、域、圖形或圖片等控件,控件的插入操作比較簡單,這里僅介紹插入域控件。單擊報(bào)表控件工具欄中的域控件圖標(biāo)后,將鼠標(biāo)指針移到報(bào)表設(shè)計(jì)中需要的位置上單擊一下,就會(huì)打開“報(bào)表表達(dá)式”對話框
5.3.3報(bào)表的運(yùn)行設(shè)計(jì)好的報(bào)表可以通過“報(bào)表”菜單中的“運(yùn)行報(bào)表”來運(yùn)行,也可以單擊紅色的“!”按鈕來運(yùn)行。在報(bào)表正式打印前最好選擇“文件”菜單中“打印預(yù)覽”命令或單擊工具欄的預(yù)覽圖標(biāo)()來預(yù)覽一下設(shè)計(jì)效果。
使用命令來運(yùn)行報(bào)表命令格式如下:reportform<報(bào)表文件名>|<?>[范圍][for<條件表達(dá)式>][NoConsole][plain][rangenStartPage[,nEndPage]][preview[[in]windowwindowname|inscreen][NoWait]][toprinter[prompt]|tofile文件名[ASCII]]其中,NoConsole子句表示報(bào)表被打印或輸出到一個(gè)文件時(shí)不顯示在VFP主窗口中。Plain
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024食品質(zhì)檢員考試準(zhǔn)備指南及試題及答案
- 2024年古代文學(xué)史考試范圍試題及答案
- 小學(xué)一年級(jí)語文考試練習(xí)試題及答案
- 2024年漢語言文學(xué)的風(fēng)格特征分析與試題及答案
- 計(jì)算機(jī)基礎(chǔ)考試的相關(guān)知識(shí)問答試題及答案
- 2024美容師考試期間設(shè)置的考場規(guī)則及答案
- 計(jì)算機(jī)基礎(chǔ)考試難點(diǎn)解析與試題答案
- 2024年計(jì)算機(jī)基礎(chǔ)考試背誦要點(diǎn)試題及答案
- 幼師急救知識(shí)培訓(xùn)
- 2024年汽車維修工考試的循環(huán)學(xué)習(xí)
- 大連市歷年居民收入及職工工資統(tǒng)計(jì)數(shù)據(jù)
- 厭氧氨氧化ppt
- 基于PLC的污水處理控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)
- 總監(jiān)巡視工作記錄
- ups并機(jī)工作原理及擴(kuò)容方案
- 壓力容器制造檢驗(yàn)驗(yàn)收制度14
- 北師大版七年級(jí)下冊實(shí)驗(yàn)通知單
- 《工程款結(jié)算單》
- 成衣加工合同(共3頁)
- 關(guān)于提高航空公司輪椅旅客服務(wù)的對策研究
- 新編日語第二冊(全)
評(píng)論
0/150
提交評(píng)論