版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
管理系統(tǒng)中計(jì)算機(jī)應(yīng)用
實(shí)訓(xùn)
1.數(shù)據(jù)模型數(shù)據(jù)模型是用來(lái)描述現(xiàn)實(shí)世界中的事物及其聯(lián)系的,它將數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照一定的結(jié)構(gòu)組織起來(lái),以能反映事物本身及事物之間的各種聯(lián)系層次模型有僅有一個(gè)根節(jié)點(diǎn)無(wú)父節(jié)點(diǎn),其他節(jié)點(diǎn)有且僅有一個(gè)父節(jié)點(diǎn)。學(xué)生學(xué)號(hào)姓名性別出生日期籍貫社會(huì)關(guān)系學(xué)籍稱呼姓名工作單位專業(yè)班級(jí)課程名成績(jī)個(gè)人簡(jiǎn)歷學(xué)校入學(xué)時(shí)間畢業(yè)時(shí)間政治面貌個(gè)人鑒定網(wǎng)狀模型
可以有多個(gè)節(jié)點(diǎn)但無(wú)父節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)可以有多個(gè)父節(jié)點(diǎn)。學(xué)生課程網(wǎng)狀模型學(xué)號(hào)姓名性別出生日期籍貫課程號(hào)課程名學(xué)時(shí)學(xué)分社會(huì)關(guān)系學(xué)籍稱呼姓名工作單位專業(yè)班級(jí)個(gè)人簡(jiǎn)歷成績(jī)學(xué)校入學(xué)時(shí)間畢業(yè)時(shí)間政治面貌個(gè)人鑒定課程號(hào)成績(jī)關(guān)系模型操作對(duì)象和結(jié)果都是二維表學(xué)號(hào)系部姓名性別出生年月入學(xué)成績(jī)籍貫050101電子朱明明女88
/06/20590湖北050102管理張曉男87/03/20580江蘇050103信息王偉男87/09/01589江蘇050104旅游李曉云女86/01/03587浙江2.1VF6.0的功能、特點(diǎn)2.2VF6.0安裝和運(yùn)行2.3
VF6.0的文件類型2.VisualFoxPro6.0簡(jiǎn)介2.1VF6.0的功能特點(diǎn)
自1989年推出VF1.0至今,VF已成為最優(yōu)秀的數(shù)據(jù)庫(kù)管理系統(tǒng)之一。目前最新版本是VF9.0,但VF6.0版本是使用最廣泛的,也是最成熟的版本。特點(diǎn):面向?qū)ο蟆⒖梢暬?、容易使用、事件?qū)動(dòng)2.2VF6.0安裝和啟動(dòng)安裝步驟:第一步:解壓rar文件第二步:在解壓的文件中找到setup.exe,雙擊打開(kāi)第三步:按照安裝向?qū)У奶崾?,輸入序列?hào):11111111,單擊下一步按鈕。第四步:選擇典型安裝。下一步直到結(jié)束。標(biāo)題欄狀態(tài)欄命令區(qū)窗口工作區(qū)窗口菜單欄工具欄啟動(dòng)VF6.0方法:?jiǎn)螕簟伴_(kāi)始”“
程序”“MicrosoftVisualFoxPro6.0”雙擊桌面上的VisualFoxPr圖標(biāo)雙擊VisualFoxPro的相關(guān)文件,如項(xiàng)目、表、表單等文件。
2.3VF6.0的文件類型擴(kuò)展名文件類型擴(kuò)展名文件類型.DBF表文件.HLP圖形方式幫助文件.CDX、.IDX符合索引文件、單索引文件.PJX、.PJT項(xiàng)目、項(xiàng)目備注文件.FPT表備注文件.FRX、.FRT報(bào)表文件、報(bào)表備注文件.DBC數(shù)據(jù)庫(kù)文件.LBX、.LBT標(biāo)簽文件、標(biāo)簽備注文件.DCT、.DCX數(shù)據(jù)庫(kù)備注文件/索引文件.MNX、.MNT菜單文件、菜單備注文件.MEM內(nèi)存變量文件.MPR、.MPX菜單程序文件、編譯后的菜單程序文件.DLLWindows動(dòng)態(tài)鏈接庫(kù)文件.OCXOLE控件文件.ERR編譯錯(cuò)誤文件.QPR、.QPX查詢程序文件、編譯后的查詢程序文件.ESLVFP支持的庫(kù)文件.SCX、.SCT表單文件、表單備注文件.FLLFoxPro動(dòng)態(tài)鏈接庫(kù)文件.SPR、.SPX表單程序文件、編譯后的表單程序文件.PRG解釋執(zhí)行的程序文件.TXT文本文件.FXP編譯后的程序文件.VCX、.VCT可視類庫(kù)文件、可視類庫(kù)備注文件.APP生成的應(yīng)用程序文件.VUEFoxPro2.X視圖文件.EXE可執(zhí)行程序文件.H頭文件(VFP或C/C++程序需要包含的)任務(wù)1:安裝visualfoxpro6.0啟動(dòng)visualfoxpro6.03.VF數(shù)據(jù)庫(kù)、表的基本操作3.1項(xiàng)目和項(xiàng)目管理器3.2創(chuàng)建數(shù)據(jù)庫(kù)3.3創(chuàng)建數(shù)據(jù)表FVP項(xiàng)目組織簡(jiǎn)圖查詢(.QPR)項(xiàng)目(.PJX)文檔數(shù)據(jù)代碼類其他自由表(.DBF)數(shù)據(jù)庫(kù)(.DBC)庫(kù)表(.DBF)備注(.FTP)索引(.IDX)3.1項(xiàng)目和項(xiàng)目管理器
項(xiàng)目是文件、數(shù)據(jù)、文檔和VFP對(duì)象的集合。利用“項(xiàng)目管理器”可以很方便地組織和管理項(xiàng)目中的各類數(shù)據(jù)和對(duì)象用戶在開(kāi)發(fā)一個(gè)應(yīng)用系統(tǒng)時(shí),通常都是先從創(chuàng)建項(xiàng)目開(kāi)始的項(xiàng)目文件擴(kuò)展名為.PJX;項(xiàng)目備注的擴(kuò)展名為.PJT項(xiàng)目(.PJX)文檔數(shù)據(jù)代碼類其他
創(chuàng)建項(xiàng)目的步驟:1.建立工作目錄:組織和管理磁盤(pán)中的各類文件2.建立項(xiàng)目文件選擇“文件/新建”菜單命令,在“新建”對(duì)話框中選擇“項(xiàng)目”項(xiàng)3.打開(kāi)項(xiàng)目文件選擇“文件/打開(kāi)”菜單命令,或按工具欄的“打開(kāi)”按鈕,在“打開(kāi)”對(duì)話框中選擇項(xiàng)目文件(*.PJX)
3.2創(chuàng)建數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是表的集合,即在一個(gè)數(shù)據(jù)庫(kù)中可以包含若干個(gè)通過(guò)關(guān)鍵字段相互關(guān)聯(lián)的表。一個(gè)數(shù)據(jù)庫(kù)文件(.DBC)中存儲(chǔ)了所包含的表與表之間的聯(lián)系,數(shù)據(jù)庫(kù)建立后就會(huì)在指定文件夾生成三個(gè)文件,即數(shù)據(jù)庫(kù)文件(擴(kuò)展名為.DBC)、數(shù)據(jù)庫(kù)的備注文件(擴(kuò)展名為.DCT)、數(shù)據(jù)庫(kù)的索引文件(擴(kuò)展名為.DCX)數(shù)據(jù)庫(kù)(.DBC)庫(kù)表(.DBF)備注(.FTP)索引(.IDX)數(shù)據(jù)庫(kù)的創(chuàng)建步驟:1.建立數(shù)據(jù)庫(kù)項(xiàng)目管理器:“新建:數(shù)據(jù)庫(kù)”2.在項(xiàng)目中添加數(shù)據(jù)庫(kù)在項(xiàng)目管理器中按“添加”按鈕,在“打開(kāi)”對(duì)話框中選擇需要添加的數(shù)據(jù)庫(kù)文件.數(shù)據(jù)庫(kù)的基本操作1.打開(kāi)數(shù)據(jù)庫(kù)項(xiàng)目管理器:選定要打開(kāi)的數(shù)據(jù)庫(kù),按“打開(kāi)”按鈕2.關(guān)閉數(shù)據(jù)庫(kù)
項(xiàng)目管理器:選定要關(guān)閉的數(shù)據(jù)庫(kù),按“關(guān)閉”按鈕3.刪除數(shù)據(jù)庫(kù)
項(xiàng)目管理器:選定數(shù)據(jù)庫(kù)后,按“移去”按鈕,將從項(xiàng)目中移去選定的庫(kù)文件;按“刪除”按鈕,則將選定的庫(kù)文件從磁盤(pán)上刪除3.3創(chuàng)建數(shù)據(jù)表1.數(shù)據(jù)表的類型⑴自由表:不屬于任何數(shù)據(jù)庫(kù)而獨(dú)立存在的表⑵數(shù)據(jù)庫(kù)表:屬于某一數(shù)據(jù)庫(kù)的表2.數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)表形式上是二維表格,用來(lái)描述一個(gè)實(shí)體3.創(chuàng)建表的步驟:創(chuàng)建表結(jié)構(gòu)和輸入記錄值創(chuàng)建表的步驟:追加記錄記錄瀏覽記錄瀏覽有兩種方式:編輯和瀏覽3.3創(chuàng)建數(shù)據(jù)表INSERTAPPENDAPPENDFROMBROWSEEDITCHANGEREPLACEDELETERECALLPACKZAPLISTDISPLAYBROWSELOCATECONTINUEFINDSEEKCOUNTSUMAVERAGETOTALCOPYLISTSTRUMODISTRUCOPYSTRUCREATEUSESQRTINDEX顯示結(jié)構(gòu)編輯結(jié)構(gòu)復(fù)制結(jié)構(gòu)統(tǒng)計(jì)數(shù)據(jù)數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)表記錄新建表打開(kāi)/關(guān)閉增加記錄刪除記錄顯示記錄修改記錄檢索記錄排序索引復(fù)制表創(chuàng)建如上表格
任務(wù)二:建立“教學(xué)管理”數(shù)據(jù)庫(kù),其中有“學(xué)生”、“課程”和“成績(jī)”三個(gè)表
4.關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQLSQL是結(jié)構(gòu)化查詢語(yǔ)言功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制。SQL語(yǔ)言使用方式靈活、語(yǔ)句簡(jiǎn)潔、功能齊全等特點(diǎn),幾乎所有的關(guān)系型數(shù)據(jù)庫(kù)型系統(tǒng)都支持它。VisualFoxPro自身在安全方面的缺陷,使得它沒(méi)有提供數(shù)據(jù)控制功能。SQL雖然使用廣泛,但各種數(shù)據(jù)庫(kù)在使用它時(shí),在語(yǔ)法、功能方面均有差異。注意:書(shū)寫(xiě)時(shí)應(yīng)該注意各個(gè)子句之間以空格分隔,子句內(nèi)部各個(gè)項(xiàng)目之間使用逗號(hào)分隔。通常每個(gè)句子寫(xiě)一行,每行后用“;”結(jié)束4.1操作命令
創(chuàng)建數(shù)據(jù)庫(kù)createdatabasedatabasename刪除數(shù)據(jù)庫(kù)deletedatabasedatabasename創(chuàng)建表createtable|dbf
tablename
刪除表droptabletablename修改表結(jié)構(gòu)altertabletabelname1add[colunmn]fieldname1fieldtype[(nfieldwidth[,nprecision])]【例1】在數(shù)據(jù)庫(kù)“成績(jī)管理”中創(chuàng)建數(shù)據(jù)庫(kù)表XS。命令如下:OPENDATABASE成績(jī)管理CREATETABLE學(xué)生(XHC(2),XMC(10),XBC(2),CSRQD,SFTYL,XBBHC(2))&&在成績(jī)管理數(shù)據(jù)庫(kù)中建立學(xué)生表,如圖6.3所示。圖6.3VF表中的數(shù)據(jù)類型字段類型代號(hào)字段類型代號(hào)字符型C浮點(diǎn)型F貨幣型Y整型I日期型D通用型G日期時(shí)間型T字符型C邏輯型L備注型M數(shù)值型N雙精度型B【例2】為學(xué)生表添加NL字段,NL大于零。命令如下:ALTERTABLEXSADDNLN(2)CHECKNL>0ERROR”年齡必須大于零”命令執(zhí)行后進(jìn)入學(xué)生表的表設(shè)計(jì)器,如圖6.5所示。圖6.5【例3】將學(xué)生表添加到數(shù)據(jù)庫(kù)“成績(jī)管理”中。命令如下:OPENDATABASE成績(jī)管理MODIFYDATABASEADDTABLE學(xué)生命令執(zhí)行后數(shù)據(jù)庫(kù)設(shè)計(jì)器如圖6.8所示。圖6.84.2SQL的數(shù)據(jù)操作功能4.2.1數(shù)據(jù)的插入4.2.2數(shù)據(jù)的更新4.2.3數(shù)據(jù)的刪除SQL的數(shù)據(jù)操作功能只要是對(duì)已有表中數(shù)據(jù)的操作,主要包括記錄的插入、更新和刪除三大方面的操作。從本節(jié)開(kāi)始將要使用“成績(jī)管理”數(shù)據(jù)庫(kù)中的表的數(shù)據(jù),其具體數(shù)據(jù)如圖6.9所示:圖數(shù)據(jù)的插入
INSERTINTOTableName[(FieldName1[,FieldName2,…])]VALUES(eExpression1[,eExpression2,…])【命令說(shuō)明】(1)TableName指所要插入記錄的表名。(2)FieldName1[,FieldName2,…]指插入記錄所要用到的字段。該參數(shù)可以不選,默認(rèn)為對(duì)所有字段都需要插入值。(3)eExpression1[,eExpression2,…]指插入記錄對(duì)應(yīng)字段的值。(4)所插入字段的值必須和該對(duì)應(yīng)的字段的數(shù)據(jù)要求一致,包括數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度的范圍、數(shù)據(jù)小數(shù)位數(shù)。(5)所插入的記錄字段的值必須和字段的個(gè)數(shù)保持一致,不能多也不能少,否則會(huì)出錯(cuò)?!纠?】給課程表插入一條記錄。命令如下:INSERTINTO課程(課程號(hào),課程名稱,學(xué)分)VALUES(’C6’,’桌面程序設(shè)計(jì)’,5)由于該命令是對(duì)表中所有字段都插入一個(gè)值,還可以使用下面命令進(jìn)行操作:INSERTINTO課程VALUES(’C6’,’桌面程序設(shè)計(jì)’,5)命令執(zhí)行結(jié)果如圖6.10所示。圖數(shù)據(jù)的更新【命令格式】UPDATETableNameSETColumnName1=eExpression1[,ColumnName2=eExpression2…])][WHEREConditon]【命令說(shuō)明】(1)ColumnName1、ColumnName2…指對(duì)所要修改的字段名。(2)eExpression1、eExpression2…指對(duì)所要修改字段更新的數(shù)據(jù)值。可以是常量和表達(dá)式。(3)WHEREConditon
指對(duì)滿足條件的數(shù)據(jù)進(jìn)行更新。(4)所更新字段和新的值必須保持一致?!纠?】把課程表中政治課程的課程名更改為“思想道德”,學(xué)分改為4。命令如下:UPDATE課程;SET課程名稱=’思想道德’,學(xué)分=4;WHERE課程名稱=’政治’命令執(zhí)行結(jié)果如圖6.12所示。
圖數(shù)據(jù)的刪除【命令格式】DELETEFROMTableName[WHEREConditon]【命令說(shuō)明】(1)該命令是對(duì)指定表的記錄進(jìn)行邏輯刪除,需要物理刪除還要借助PACK命令。(2)WHEREConditon
指對(duì)滿足條件的數(shù)據(jù)進(jìn)行刪除?!纠?】刪除課程表中課程號(hào)為“C6”課程記錄。命令如下:DELETEFROM課程WHERE課程號(hào)=’C6’命令執(zhí)行結(jié)果如圖6.13所示。圖中的黑色方塊表示作了刪除標(biāo)記,但記錄并沒(méi)有真正刪除,還保留在表中。如果要去掉刪除標(biāo)記和物理刪除該條記錄,可以參見(jiàn)第三章所講解的表數(shù)據(jù)刪除方法。
圖6.134.4SQL的數(shù)據(jù)查詢功能4.4.1數(shù)據(jù)庫(kù)的簡(jiǎn)單查詢4.4.2數(shù)據(jù)庫(kù)的復(fù)雜查詢
SQL的數(shù)據(jù)查詢功能是數(shù)據(jù)庫(kù)中最常用、最重要的數(shù)據(jù)操作,它可以在指定的表中查詢滿足條件的數(shù)據(jù),該命令應(yīng)用廣泛,但格式比較復(fù)雜。4.4.1數(shù)據(jù)庫(kù)的簡(jiǎn)單查詢數(shù)據(jù)列查詢條件查詢簡(jiǎn)單計(jì)算查詢分組查詢查詢結(jié)果排序查詢結(jié)果保存【命令格式】SELECT[ALL|DISTINCE][Alias.][Select_Item1[ASColumn1_Name][,[Alias.][Select_Item2[ASColumn2_Name]…]FROM[DatabaseName!]Table[[AS]Local_Alias]【命令說(shuō)明】(1)ALL|DISTINCE:指查詢表中所有數(shù)據(jù)或去掉重復(fù)的記錄。(2)[Alias.][Select_Item1[ASColumn1_Name]:從指定的表中(可以使用別名)引用相關(guān)的字段或著表達(dá)式,ASColumn1_Name對(duì)查詢結(jié)果的列名重新命名。(3)FROM[DatabaseName!]Table[[AS]Local_Alias]:指從指定的表(可以是數(shù)據(jù)庫(kù)中的表)查詢數(shù)據(jù),這里可以給表指定一個(gè)別名,在所有字句中都可以應(yīng)用。1.數(shù)據(jù)列查詢(4)該命令是從指定表中查詢表中的所有或者部分列的數(shù)據(jù)?!纠?】查詢學(xué)生表中所有數(shù)據(jù)。命令如下:SELECT*FROM學(xué)生&&這里*代表所有字段
結(jié)果如圖6.14所示。【例8】查詢學(xué)生表的學(xué)號(hào)和姓名。命令如下:SELECT學(xué)號(hào)AS學(xué)生的編號(hào),姓名ASXMFROM學(xué)生結(jié)果如圖6.15所示。圖6.14圖6.15【例9】查詢選課表中有選課的學(xué)生的學(xué)號(hào)。命令如下:SELECTDISTINCT學(xué)號(hào)FROM選課結(jié)果如圖6.16所示。
圖6.16【主要命令格式】SELECT…FROM…WHERECondition【命令說(shuō)明】該命令是查詢滿足條件的數(shù)據(jù),Condition為條件表達(dá)式。具體應(yīng)用如下:(1)使用關(guān)系和邏輯表達(dá)式的條件查詢?!纠?0】查詢成績(jī)不及格的情況。命令如下:SELECT*FROM選課
WHERE成績(jī)<60結(jié)果如圖所示。2.條件查詢(2)使用范圍查詢BETWEEN…AND…或者NOTBETWEEN…AND…。【例11】查詢成績(jī)?cè)?0到100之間的情況。命令如下:SELECT*FROM選課
WHERE成績(jī)
BETWEEN80AND100結(jié)果如圖6.18所示。圖6.18(3)使用字符匹配查詢LIKE…或NOTLIKE…。%:代表任意長(zhǎng)度的字符串。_:代表任意單個(gè)字符。【例12】查詢所以姓王的學(xué)生情況。命令如下:SELECT*FROM學(xué)生
WHERE姓名
LIKE'王%'結(jié)果如圖所示。(4)空值查詢ISNULL或ISNOTNULL?!纠?3】查詢學(xué)生表系部編號(hào)不為NULL的情況。命令如下:SELECT*FROM學(xué)生WHERE系部編號(hào)ISNOTNULL結(jié)果如圖所示。
(5)確定集合查詢IN或NOTIN?!纠?4】查詢系部編號(hào)為”2”或”3”的學(xué)生情況。命令如下:SELECT*FROM學(xué)生WHERE系部編號(hào)IN('2','3')結(jié)果如圖所示?!局饕罡袷健縎ELECT...FROM…[WHERECondition]【命令說(shuō)明】(1)SELECT短語(yǔ)后主要書(shū)寫(xiě)計(jì)算表達(dá)式和函數(shù)。(2)計(jì)算檢索的函數(shù)主要有:COUNT(DISTINCT|ALL)*)——統(tǒng)計(jì)記錄個(gè)數(shù)。SUM(DISTINCT|ALL)<ColumnName>)——計(jì)算一數(shù)值列的總和。AVG(DISTINCT|ALL)<ColumnName>)——計(jì)算一數(shù)值列的平均值。MAX(DISTINCT|ALL)<ColumnName>)——求一列的最大值。MIN(DISTINCT|ALL)<ColumnName>)——求一列的最小值。3.簡(jiǎn)單計(jì)算查詢【例15】統(tǒng)計(jì)學(xué)生表中的記錄個(gè)數(shù)。命令如下:SELECTCOUNT(*)AS學(xué)生人數(shù)
FROM學(xué)生【例16】計(jì)算選課表的成績(jī)總和、平均分、最大分、最小分。命令如下:SELECTSUM(成績(jī))AS總和,AVG(成績(jī))AS平均分,MAX(成績(jī))AS最大分,MIN(成績(jī))AS最小分
FROM選課【主要命令格式】SELECT…FROM….GROUPBYGroupColumn[,GroupColumn...][HAVINGFilterCondition]【命令說(shuō)明】(1)GroupColumn是指分組的標(biāo)志列。(2)HAVINGFilterCondition是指限制分組的條件?!纠?-27】分別統(tǒng)計(jì)學(xué)生表中的男女生人數(shù)。命令如下:SELECT性別,COUNT(*)AS人數(shù)
FROM學(xué)生GROUPBY性別結(jié)果如圖6.24所示。4.分組查詢【例6-28】統(tǒng)計(jì)成績(jī)有兩門(mén)以上在70分的情況。命令如下:SELECT學(xué)號(hào),COUNT(課程號(hào))AS課程門(mén)數(shù)
FROM選課;WHERE成績(jī)>=70;GROUPBY學(xué)號(hào)
HAVINGCOUNT(*)>=2結(jié)果如圖6.25所示。圖6.24圖6.25【主要命令格式】、SELECT[TOPnExpr[PERCENT]]…FROM….ORDERBYOrder_Item[ASC|DESC][,Order_Item[ASC|DESC]...]【命令說(shuō)明】(1)Order_Item:指的選定的對(duì)查詢結(jié)果排序的列。(2)ASC|DESC:指的是排序的順序。ASC指升序,默認(rèn)為升序。DESC指的是降序。(3)TOPnExpr[PERCENT]:指查詢結(jié)果顯示特定數(shù)目的記錄。TOPnExpr表示現(xiàn)在最前面的N條記錄。TOPnExprPERCENT表示顯示查詢結(jié)果記錄數(shù)目的百分比。這里必須和排序結(jié)合使用,不能單獨(dú)使用。5.查詢結(jié)果排序【例6-29】對(duì)學(xué)生表數(shù)據(jù)按出生日期的升序降序排序。命令如下:SELECT*FROM學(xué)生;ORDERBY出生日期
DESC&&結(jié)果如圖6.26所示?!纠?-30】查詢課程號(hào)為“C1”,成績(jī)最高的前三名情況。命令如下:SELECT*TOP3FROM選課
WHERE課程號(hào)=’C1’;ORDERBY成績(jī)
DESC&&結(jié)果如圖6.27所示。
圖6.26圖6.27【主要命令格式】SELECT…FROM….INTOTABLE[|CURSOR]Destination|TOFILEFileName[ADDITIVE]|TOPRINTER[PROMPT]|TOSCREEN]【命令說(shuō)明】(1)INTOTABLE[|CURSOR]Destination:指查詢結(jié)果保存到新表。將結(jié)果永久保存在表中則使用INTOTABLE;如果接查詢結(jié)果保存到臨時(shí)表中則使用INTOCURSOR,臨時(shí)表的不永久保存,關(guān)閉后不在存在。(2)TOFILEFileName:[ADDITIVE]指查詢結(jié)果保存到文本文件。(3)TOPRINTER[PROMPT]:指查詢結(jié)果輸出到打印機(jī)。(4)TOSCREEN:指查詢結(jié)果到屏幕。6.查詢結(jié)果保存【例6-31】查詢成績(jī)不及格的情況,將結(jié)果保存到表BJGQK。命令如下:SELECT*FROM選課
;WHERE成績(jī)<60;INTOTABLEBJGQKSELECT*FROMBJGQK表BJGQK的記錄數(shù)據(jù)如圖6.28所示。圖6.284.4.2數(shù)據(jù)的復(fù)雜查詢聯(lián)接查詢子查詢1)自然聯(lián)接查詢自然聯(lián)接查詢也叫等值聯(lián)接查詢或者內(nèi)聯(lián)接查詢,一般用于查詢結(jié)果須從兩個(gè)表或兩個(gè)以上表中去獲取?!疽话忝罡袷健縎ELECT…FROMTable1INNERJOINTable2ONTable1.Column=Table2.Column…或者SELECT…FROMTable1,Table2…
WHERETable1.Column=Table2.Column[AND…]…1.聯(lián)接查詢【命令說(shuō)明】(1)命令格式中我們一般使用第二種。指的是從多個(gè)表中查詢滿足條件的數(shù)據(jù)。要求多個(gè)表中互相之間有聯(lián)系保證有同名字段。(2)Table1.Column=Table2.Column指兩個(gè)有聯(lián)系的表中具有的相同字段名。這是建立聯(lián)接查詢的基本條件。(3)該命令給多表建立連接后,可以和前面所有講的簡(jiǎn)單查詢一起結(jié)合使用,查詢滿足條件的數(shù)據(jù)?!纠?-32】查詢學(xué)生李小明所選課的情況。命令如下:SELECTA.學(xué)號(hào),姓名,課程名稱,成績(jī)
FROM學(xué)生
A,選課
B,課程
C;WHEREA.學(xué)號(hào)=B.學(xué)號(hào)
ANDC.課程號(hào)=B.課程號(hào)
AND姓名=”李小明”結(jié)果如圖6.29所示?!纠?-33】統(tǒng)計(jì)每門(mén)課程選課學(xué)生的人數(shù)。命令如下:SELECT課程.課程號(hào),課程名稱,COUNT(學(xué)號(hào))AS學(xué)生人數(shù)FROM課程,選課;WHERE課程.課程號(hào)=選課.課程號(hào);GROUPBY1結(jié)果如圖6.30所示。命令中的1指的是查詢結(jié)果所包含的第一列,也就是課程.課程號(hào)。圖6.29圖6.302.子查詢【一般命令格式】SELECT…FROM…WHERE…(SELECT…FROM…)【命令說(shuō)明】(1)子查詢適合用于查詢結(jié)果必須先從一個(gè)查詢中來(lái)得來(lái)。(2)子查詢可以使用IN、NOTIN、關(guān)系運(yùn)算符等。【例6-37】查詢沒(méi)有選課的學(xué)生情況。命令如下:SELECT*FROM學(xué)生
WHERE學(xué)號(hào)
NOTIN;(SELECTDIST學(xué)號(hào)
FROM選課)結(jié)果如圖6.34所示?!纠?-38】統(tǒng)計(jì)學(xué)生表中的記錄個(gè)數(shù)。命令如下:SELECT姓名
FROM學(xué)生
WHERE學(xué)號(hào)
IN;(SELECT學(xué)號(hào)
FROM選課
GROUPBY1HAVINGCOUNT(課程號(hào))>4)結(jié)果如圖6.35所示。圖6.34圖6.35本章實(shí)訓(xùn)實(shí)驗(yàn)?zāi)康模赫莆誚isualFoxPro6.0的安裝與啟動(dòng)掌握VisualFoxPro6.0的界面操作(項(xiàng)目、數(shù)據(jù)庫(kù)、數(shù)據(jù)表)熟練掌握SQL數(shù)據(jù)庫(kù)表的增、刪、改的命令使用根據(jù)下面提供的數(shù)據(jù),用SQL完成以下的操作。1.創(chuàng)建數(shù)據(jù)庫(kù)TSGL,并打開(kāi)。建立程序61.prg,并輸入以下命令:createdatabasetsglopendatabasetsgl2.在數(shù)據(jù)庫(kù)TSGL中創(chuàng)建以下表。表的結(jié)構(gòu)如下:TS(SSHC(10),SMC(30),ZZC(6),TSDJHC(10),CBSC(10),JGN(6.2))JYZ(JSZHC(5),XMC(10),XBMC(8),BJC(4))JYDJ(JSZHC(5),TSDJHC(6),JSRQD)建立程序62.prg,并輸入以下命令:createtablets(sshc(2),smc(30),zzc(6),tsdjhc(10),cbsc(10),jgn(6.2))createtablejyz(jszhc(5)primarykey,xmc(10),xbmc(8),bjc(4))createtablejydj(jszhc(5),tsdjhc(6),jsrqd)實(shí)驗(yàn)內(nèi)容:3.給數(shù)據(jù)庫(kù)TSGL中所創(chuàng)建表輸入數(shù)據(jù),具體數(shù)據(jù)如下:表TS的數(shù)據(jù)如下表:sshsmzztsdjhcbsjgTP311.138VisualFoxPro程序設(shè)計(jì)教程匡松T00101川大29TP311.138VisualFoxPro程序設(shè)計(jì)教程匡松T00102川大29TP311.138數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)周察金T00201高等20.90TP311.138SQLServer2000實(shí)例教程楊學(xué)全T00301電子25C931.6管理信息系統(tǒng)李永平C00101科學(xué)18表JYZ的數(shù)據(jù)如下表:jszhxmxbmbj01101揚(yáng)揚(yáng)電子系01-101201田田計(jì)算機(jī)系02-101202同同計(jì)算機(jī)系02-201102天天電子系01-2表jydj的數(shù)據(jù)如下表:jszhtsdjhjsrq01201C002012005-03-2001101T001012005-03-1601202T002012005-04-2101102T002012005-03-2001101T002012005-03-1601102T003012005-03-0501101T003012005-04-1601202T001012005-03-0601201T002012005-03-20建立程序63.prg,并輸入以下命令:opendatabasetsgl*給表TS插入數(shù)據(jù)*insertintotsvalues("TP311.138","VisualFoxPro程序設(shè)計(jì)教程","匡松","T00101","川大",29)insertintotsvalues("TP311.138","VisualFoxPro程序設(shè)計(jì)教程","匡松","T00102","川大",29)insertintotsvalues("TP311.138","數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)","周察金","T00201","高等",20.90)insertintotsvalues("TP311.138","SQLServer2000實(shí)例教程","楊學(xué)全","T00301","電子",25)insertintotsvalues("C931.6","管理信息系統(tǒng)","李永平","C00101","科學(xué)",18)*代碼接下頁(yè)*給表JYZ插入數(shù)據(jù)*insertintojyzvalues("01001","揚(yáng)揚(yáng)","電子系","01-1")insertintojyzvalues("01201","田田","計(jì)算機(jī)系","02-1")insertintojyzvalues("0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介如何保障房屋買(mǎi)賣合同安全
- 建筑施工基坑開(kāi)挖分包合同
- 國(guó)慶節(jié)期間安全書(shū)
- 直播廣告推廣協(xié)議
- 學(xué)校器材采購(gòu)合同
- 春運(yùn)出行全程攻略
- 購(gòu)銷數(shù)碼相機(jī)合同
- 2024年度水泥產(chǎn)品短期供貨與行業(yè)趨勢(shì)研究合同模板3篇
- 評(píng)選方案集合6篇
- 2024-2030年超聲理療設(shè)備行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資研究報(bào)告
- 修改留言條(課堂PPT)
- 壓鑄過(guò)程原理及壓鑄工藝技術(shù)培訓(xùn)
- 3500常用字帶拼音
- 巴赫作品 《C大調(diào)前奏曲》Prelude in C major,BWV846;J. S. Bach古典吉他譜
- plc課程設(shè)計(jì)模壓機(jī)控制
- 出境竹木草制品生產(chǎn)企業(yè)衛(wèi)生防疫管理手冊(cè)
- VDA63過(guò)程審核案例
- FP21表說(shuō)明書(shū)
- 【方案】樁基靜載檢測(cè)方案
- 東西方分封制起因的對(duì)比
- 勞動(dòng)人事?tīng)?zhēng)議仲裁申請(qǐng)書(shū) - Wuhan
評(píng)論
0/150
提交評(píng)論