版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、全國計算機等級考試二級Visual Foxpro教案National Computer Rank ExaminationVisual Foxpro Teaching Planning興龍計算機教育中心內(nèi)部教材作者: 鄒莫泊Copyright版權(quán)所有全國計算機等級考試二級Visual Foxpro教案第一章 Visual FoxPro 數(shù)據(jù)庫基礎(chǔ)第1課知識點一計算機數(shù)據(jù)管理階段1 人工管理階段2 文件系統(tǒng)階段3 數(shù)據(jù)庫系統(tǒng)階段知識點二數(shù)據(jù)庫系統(tǒng)構(gòu)成1 數(shù)據(jù)庫(DATABASE)2 數(shù)據(jù)庫管理系統(tǒng)(DBMS)3 數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS)4 數(shù)據(jù)庫管理員(DBA)知識點三數(shù)據(jù)庫系統(tǒng)主要特點1 實現(xiàn)
2、數(shù)據(jù)共享、減少數(shù)據(jù)冗余2 采用特定的數(shù)據(jù)模型3 具有較高的數(shù)據(jù)獨立性4 有統(tǒng)一的數(shù)據(jù)控制功能知識點四實體和實體間聯(lián)系1 實體(對客觀事物的描述) 例如: 教師、計算機、汽車等都是實體2 實體的屬性(指實體的一些特性) 例如: 學(xué)生的相關(guān)屬性(學(xué)號、姓名、性別等)3 實體間的聯(lián)系 一對一聯(lián)系/一對多聯(lián)系/多對多聯(lián)系 例如: 部門和職工之間的聯(lián)系屬于一對多聯(lián)系。 練習(xí)題1 班級和班長之間的聯(lián)系屬于( )聯(lián)系。2 顧客和商品之間的聯(lián)系屬于( )聯(lián)系。知識點五數(shù)據(jù)庫模型1 層次數(shù)據(jù)模型 用樹型結(jié)構(gòu)表示實體間的聯(lián)系2 網(wǎng)狀數(shù)據(jù)模型 主要優(yōu)點: 表達多對多聯(lián)系很靈活3 關(guān)系數(shù)據(jù)模型 用二維表來表示實體和實
3、體間的聯(lián)系知識點六關(guān)系數(shù)據(jù)模型1 關(guān)系(指一張二維表格) Visual FoxPro中關(guān)系為一個表文件,擴展名為.DBF。 例如: 學(xué)生表就是一個關(guān)系,VF表示為學(xué)生表.DBF。2 元組(指二維表的一行) 例如: 學(xué)生表中學(xué)號為”1103”的記錄即為一個元組因為學(xué)號唯一,所以這樣的元組只有一個。3 屬性(指二維表垂直方向的列) 例如: 學(xué)生表的學(xué)號、姓名、性別等都是屬性屬性在VF中又稱為字段名4 域(指屬性的取值范圍) 例如: 月份取值范圍是1至125 關(guān)鍵字(指能夠唯一標(biāo)識一個元組的屬性) 例如: 學(xué)號是關(guān)鍵字,而姓名不是。 通常在VF中稱這種關(guān)鍵字為主關(guān)鍵字知識點七專門的關(guān)系運算1 選擇(
4、指水平方向的運算) 從關(guān)系中找出滿足條件的元組稱為選擇 例如: 從學(xué)生表找出所有男生的記錄(條件: 性別=”男”)2 投影(指垂直方向的運算) 從關(guān)系中指定若干個屬性組成新的關(guān)系稱為投影 例如: 從學(xué)生表中列舉所有學(xué)生的姓名和家庭住址3 連接(指兩個表進行連接)4 自然連接(指去掉重復(fù)屬性的等值連接)練習(xí)題3 從學(xué)生表中找出所有學(xué)生的身份證號屬于( )運算。4 從學(xué)生表中找出所有姓王的女生屬于( )運算。第2課知識點一Visual FoxPro系統(tǒng)概述1 Visual FoxPro 6.0是一個32位數(shù)據(jù)庫管理系統(tǒng)2熟悉Visual FoxPro 6.0工作界面知識點二Visual FoxPr
5、o 6.0上機主要考點1 項目管理器2 向?qū)?設(shè)計器/生成器/命令窗口3 數(shù)據(jù)庫設(shè)計4 查詢和視圖5 程序設(shè)計6 表單設(shè)計7 菜單設(shè)計8 報表設(shè)計9 連編應(yīng)用程序第二章 Visual FoxPro程序設(shè)計基礎(chǔ)第1課知識點一常量的類型1 數(shù)值型常量 例如: 3、-6.78、1.6E-12(表示1.6x10-12)2 字符型常量 用單引號/雙引號/方括號將字符串包含 例如: “計算機”、123、ABC 注意: “”稱為空串,而” “稱為空格字符串。3 日期型常量 嚴(yán)格日期格式: yyyy-mm-dd 例如: 2008-08-08表示2008年8月8日4 日期時間型常量 完整格式: <日期&g
6、t;,<時間> 時間部分格式: hh:mm:ss AM|PM 例如: 2001-03-22,03:25:30 PM 表示2001年3月22日下午3點25分30秒5 邏輯型常量 只有邏輯真和邏輯假兩個值。 VF中,。 例如: 學(xué)生表中<是否黨員>字段類型為邏輯型知識點二變量的定義和使用1 變量必須以字母、漢字或下劃線開頭 例如: A、姓名、S_NO等都是合法的變量 而3AB、A+B則是非法變量2 變量的賦值 格式一: 變量名=表達式 例如: A=3 和 A=B+C*D都是合法的語句 而A+B=C則是非法的,左邊A+B并不是變量。格式二: STORE 表達式 TO 變量列表
7、例如: STORE 5 TO X1,X2,X3 表示同時給X1,X2,X3賦值5知識點三數(shù)組的定義和使用格式: DIMENSION 數(shù)組名 或DECLARE 數(shù)組名例如: DIMENSION X(3) 上述數(shù)組包含3個元素X(1),X(2),X(3) DECLARE Y(2,3) 上述數(shù)組是一個二維數(shù)組,共包含Y(1,1),Y(1,2),Y(1,3),Y(2,1),Y(2,2),Y(2,3) 6個元素。知識點四表達式值的顯示格式一: ?<表達式>例如: ?3+4*5將顯示結(jié)果23格式二: ?<表達式>例如: ?計算機將顯示結(jié)果計算機上述兩種格式的區(qū)別:?每輸出一個結(jié)果就
8、自動換行,而?不會換行。第2課知識點一常規(guī)表達式1 數(shù)值表達式 例如: 3+5*6 3+52 3+20/3 3+15%2 3+MOD(100,3) (%和MOD均表示求余數(shù))2 字符表達式 字符串運算符: + 前后兩個字符串首尾連接- 連接前后兩個字符串,前字符串尾部空格移至最后。 例如: a=”Hello “ 尾部有一個空格 b=”everyone!” a+b=”Hello everyone!” a-b=”Helloeveryone! “ 尾部有一個空格3 日期時間表達式 運算符有兩個: +和- 例如: 2001-03-19+10結(jié)果為2001-03-29 2001-03-19-2000-0
9、3-19結(jié)果為365知識點二關(guān)系表達式例如: a>b a<=3 a<>b a#b a!=b (<> # != 均表示不等于) “計算機”$”計算機等級考試”($表示子串包含測試) 標(biāo)準(zhǔn)信息交換碼(ASCII碼)大寫字母 A 65 B 66 依此類推小寫字母 a 97 b 98 依此類推數(shù)字0-9 0 48 1 49 依此類推空格 32 常見的比較規(guī)則:1)越早的日期越小,越晚的日期越大。例如: 2002-01-10>2001-12-282)邏輯型數(shù)據(jù)比較 規(guī)則是 .T. 大于 .F.3)字符串的比較(默認(rèn)按拼音方式比較)例如: “bcd”>”ab
10、cd” “計算機”>”電腦”知識點三邏輯表達式邏輯運算符: NOT(非) AND(與) OR(或)優(yōu)先級 NOT>AND>OR 運算規(guī)則表 NOT操作數(shù) 結(jié)果 .T. .F.F. .T. AND 操作數(shù)1 操作數(shù)2 結(jié)果 .T. .T. .T. .T. .F. .F.F. .T. .F.F. .F. .F. OR 操作數(shù)1 操作數(shù)2 結(jié)果 .T. .T. .T. .T. .F. .T.F. .T. .T. .F. .F. .F.例如: 6>5 OR 5<>5 AND 10<=10 最終結(jié)果為 .T.例如: 用邏輯表達式表示年齡大于18的男同學(xué) 年齡&g
11、t;18 AND 性別=”男”練習(xí)題1 將A和B的平方和賦給C,請寫出兩種表達式。2 定義一個3行4列的矩陣XYZ,請寫出表達式。3 判斷表達式A>5 AND 6>=6 OR NOT A=”A”。 4 用邏輯表達式表示年齡在18,20的學(xué)生或計算機專業(yè)的女生。 第3課知識點一數(shù)學(xué)函數(shù)1 絕對值函數(shù) ABS(表達式)例如: ABS(-6)=62 符號函數(shù) SIGN(表達式)當(dāng)表達式為正時,結(jié)果為1當(dāng)表達式為負(fù)時,結(jié)果為-1當(dāng)表達式為0時,結(jié)果為0例如: SIGN(5*5)=1 SIGN(-4)=-13 平方根函數(shù) SQRT(表達式)例如: SQRT(SQRT(81)=34 求余函數(shù)
12、MOD例如: MOD(10,3)=1 而MOD(3,10)=35 最大值MAX和最小值MIN例如: MAX(15*15,224,226)=226 MIN(“汽車”,”飛機”,”輪船”)=”飛機”知識點二字符函數(shù)1 字符串長度函數(shù) LEN(表達式)例如: LEN(“STUDENT”)=7 而LEN(“學(xué)生”)=42 刪除前后空格函數(shù) ALLTRIM(表達式)例如: ALLTRIM(“ STUDENT “)=”STUDENT”3 取子串函數(shù)左字符串函數(shù) LEFT(表達式,長度)例如: LEFT(“STUDENT”,3)=”STU”右字符串函數(shù) RIGHT(表達式,長度)例如: RIGHT(“STU
13、DENT”,4)=”DENT”中間字符串函數(shù) SUBSTR(表達式,起始位置,長度)例如: SUBSTR(“VISUAL FOXPRO”,8,3)=”FOX” SUBSTR(“VISUAL FOXPRO”,8)=”FOXPRO”4 求子串位置函數(shù) AT(表達式1,表達式2)返回表達式1首字符在表達式2中的位置,若表達式1不是表達式2的子串則返回0。例如: AT(”FOX”,”VISUAL FOXPRO”)=8 而AT(”fox”,”VISUAL FOXPRO”)=05 字符串匹配函數(shù) LIKE(表達式1,表達式2)若兩個表達式對應(yīng)字符都匹配返回 .T. 否則返回 .F.表達式1中可包含通配符*
14、和?例如: LIKE(“ABC”,”ABC”)=.T. 知識點三日期和時間函數(shù)1 系統(tǒng)日期和時間函數(shù)DATE() 返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型TIME() 返回當(dāng)前系統(tǒng)時間,函數(shù)值為字符型DATETIME() 返回當(dāng)前系統(tǒng)日期時間2 年份/月份/天數(shù)函數(shù)YEAR(日期表達式) 返回指定日期中的年份MONTH(日期表達式) 返回指定日期中的月份DAY(日期表達式) 返回指定日期中的天數(shù)3 小時/分鐘/秒函數(shù)HOUR(日期時間表達式) 返回時間的小時數(shù)MINUTE(日期時間表達式) 返回時間的分鐘數(shù)SEC(日期時間表達式) 返回時間的秒數(shù)知識點四數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1 數(shù)值轉(zhuǎn)換字符串 STR(數(shù)值
15、表達式)例如: STR(123)=”123”2 字符串轉(zhuǎn)換數(shù)值 VAL(字符表達式)例如: VAL(“123”)=1233 字符串轉(zhuǎn)換日期 CTOD(字符表達式)例如: CTOD(“2008/08/08”)=2008-08-084 日期轉(zhuǎn)換字符串 DTOC(日期表達式)例如: DTOC(2008-08-08)=”2008/08/08”知識點五測試函數(shù)1 值域測試函數(shù)BETWEEN(表達式T,表達式L,表達式H)若T>=L AND T<=H 函數(shù)返回 .T. 否則返回 .F.若L為NULL或H為NULL 函數(shù)返回 NULL2 表文件尾測試函數(shù) EOF()若記錄指針指向表尾 函數(shù)返回
16、.T. 否則返回 .F.3 表文件首測試函數(shù) BOF()若記錄指針指向表頭 函數(shù)返回 .T. 否則返回 .F.4 條件測試函數(shù)IIF(邏輯表達式,表達式1,表達式2)若邏輯表達式為.T. 函數(shù)返回表達式1的值,否則返回表達式2的值。例如: 假設(shè)X的值是5 則IIF(X>=5,X+5,X-5)的最后結(jié)果是10練習(xí)題5 計算表達式3+50+SIGN(16-SQRT(257)。6 用VF表達式表示一元二次方程的兩根。7 用邏輯表達式表示所有姓王或末字為軍的學(xué)生。8 用IIF函數(shù)表示A和B中的較大者。第4課知識點一順序語句1 輸入語句 格式: INPUT 字符表達式 TO 變量例如: 從鍵盤上輸
17、入一個整數(shù)并保存到變量A INPUT “請輸入一個整數(shù)” TO A2 輸出語句 用?或?在屏幕上顯示結(jié)果例如: 計算上例中A的平方并顯示出結(jié)果 ?A*A 或 ?A*A知識點二條件語句格式1: IF <條件> THEN 語句序列ENDIF若條件為真則執(zhí)行語句序列,否則結(jié)束。 格式2:IF <條件> THEN語句序列1ELSE語句序列2ENDIF若條件為真則執(zhí)行語句序列1,否則執(zhí)行語句序列2。例如: 輸入一整數(shù),若能被3整除則輸出它的平方;否則輸出它的2倍。 INPUT “請輸入一個整數(shù)” TO A IF MOD(A,3)=0 THEN ?A*A ELSE ?A*2 END
18、IF知識點三分支語句語法格式:DO CASE CASE 條件1 語句序列1 CASE 條件n 語句序列n OTHERWISE 語句序列ENDCASE分別對條件1-n判斷,若某個條件成立則執(zhí)行相應(yīng)的語句序列;若條件1-n均不成立,則執(zhí)行OTHERWISE后的語句序列。例如: 輸入一個分?jǐn)?shù),并根據(jù)此分?jǐn)?shù)顯示相應(yīng)等級。 90到100 優(yōu)秀 80到 89 良 70到79 一般 其余 差 INPUT “請輸入一個分?jǐn)?shù)” TO A DO CASE CASE A>=90 AND A<=100 GRADE=”優(yōu)秀” CASE A>=80 AND A<=89 GRADE=”良” CASE
19、 A>=70 AND A<=79 GRADE=”一般” OTHERWISE GRADE=”差” ENDCASE ?”此分?jǐn)?shù)對應(yīng)的等級為”+GRADE知識點四循環(huán)語句語法格式:DO WHILE 條件 語句序列ENDDO若條件為真則執(zhí)行語句序列,然后再判斷條件,若仍為真則重復(fù)執(zhí)行語句序列直到條件為假時循環(huán)結(jié)束。例如: 編程計算S=1+2+.+100的值。 S=0 K=1 DO WHILE K<=100 S=S+K K=K+1 ENDDO ?S練習(xí)題9 輸入一個年份,若是閏年則輸出”yes”;否則輸出”no”。10 輸入一個整數(shù)x,輸出下列表達式的值。 x2+1 (x>0)s
20、= 2x+3 (x=0) x2-1 (x<0)11 計算1至999之間所有能被7整除的數(shù)之和。 第三章 Visual FoxPro數(shù)據(jù)庫及其操作第1課知識點一建立數(shù)據(jù)庫通常有三種方法:1 在項目管理器中建立數(shù)據(jù)庫2 在新建對話框中建立數(shù)據(jù)庫3 使用命令建立數(shù)據(jù)庫 命令窗口中輸入: CREATE DATABASE 數(shù)據(jù)庫名知識點二打開數(shù)據(jù)庫通常有三種方法:1 在項目管理器中打開數(shù)據(jù)庫2 在打開對話框中打開數(shù)據(jù)庫3 使用命令打開數(shù)據(jù)庫 命令窗口中輸入: OPEN DATABASE 數(shù)據(jù)庫名知識點三刪除數(shù)據(jù)庫通常有兩種方法:1 在項目管理器中刪除數(shù)據(jù)庫 刪除時有兩個選項: 移去和刪除 移去:
21、從項目管理器中刪除數(shù)據(jù)庫,但對應(yīng)數(shù)據(jù)庫文件仍然存在。 刪除: 從項目管理器中刪除數(shù)據(jù)庫,同時對應(yīng)文件也被刪除。2 使用命令刪除數(shù)據(jù)庫 命令窗口中輸入: DELETE DATABASE 數(shù)據(jù)庫名 知識點四建立數(shù)據(jù)庫表通常有兩種方法:1 在數(shù)據(jù)庫設(shè)計器中新建表2 使用命令新建表 在命令窗口中依次輸入: OPEN DATABASE 數(shù)據(jù)庫名 CREATE 表名知識點五修改表結(jié)構(gòu)表結(jié)構(gòu)修改主要包括: 增加字段、刪除字段、修改字段。通常有兩種方法:1 在數(shù)據(jù)庫設(shè)計器中修改表結(jié)構(gòu)2 使用命令修改表結(jié)構(gòu) 在命令窗口中依次輸入: USE 表名 MODIFY STRUCTURE知識點六數(shù)據(jù)庫表的相關(guān)概念1 字段
22、名指關(guān)系的屬性名。例如: 學(xué)號、姓名等。2 字段類型和寬度 常見的類型及符號定義 字符型 C 數(shù)值型 N 浮點型 F 整 型 I日期型 D 日期時間型 T邏輯型 L 貨幣型 Y3 空值(記作NULL) 在數(shù)據(jù)庫中表示暫未確定的值,它和數(shù)值0含義不同。 注意: 數(shù)據(jù)庫中某些字段不允許空值。(例如: 學(xué)號)4 數(shù)據(jù)庫表和自由表 數(shù)據(jù)庫表: 在數(shù)據(jù)庫設(shè)計器中創(chuàng)建的表。自由表: 指那些不屬于任何數(shù)據(jù)庫的表??梢詫⒆杂杀硖砑拥綌?shù)據(jù)庫中使之成為數(shù)據(jù)庫表,也可以將數(shù)據(jù)庫表從數(shù)據(jù)庫中移出使之成為自由表。第2課知識點一瀏覽表記錄通常有兩種方法:1 在數(shù)據(jù)庫設(shè)計器中瀏覽表記錄2 使用命令瀏覽表記錄命令窗口中依次輸
23、入:USE 表名BROWSE知識點二增加記錄1 APPEND命令在表的尾部增加記錄,有兩種格式。APPEND 和 APPEND BLANKAPPEND一次可連續(xù)輸入多條新記錄APPEND BLANK在表的尾部增加一條空白記錄2 INSERT 命令在表的任意位置插入新記錄INSERT BEFORE若不指定BEFORE,則在當(dāng)前記錄之后插入一條新記錄;否則在當(dāng)前記錄之前插入一條新記錄。知識點三刪除記錄1 邏輯刪除(指作刪除標(biāo)記)DELETE FOR 條件若省略FOR 條件則只刪除當(dāng)前一條記錄;否則刪除滿足條件的所有記錄。例如: 邏輯刪除學(xué)生表中年齡為20的學(xué)生記錄 USE 學(xué)生 DELETE FO
24、R 年齡=202 物理刪除(指真正刪除記錄)PACK 記錄徹底被刪除并且不能恢復(fù)。3 物理刪除表的全部記錄ZAP 全部記錄被刪除并且不能恢復(fù),但表仍然存在。 知識點四修改記錄REPLACE ALL 字段名 WITH 表達式 若省略ALL則只修改當(dāng)前記錄,否則修改全部記錄。例如: 將當(dāng)前表中所有學(xué)生的年齡加1 REPLACE ALL 年齡 WITH 年齡+1知識點五定位記錄1 GO命令GO 記錄號 | TOP | BOTTOMTOP是表頭 BOTTOM是表尾例如: 定位至第5條記錄 GO 52 SKIP 命令SKIP 偏移量若偏移量為正,表示向后移動;否則向前移動。若省略偏移量,表示向后移動1條
25、記錄。例如: 將指針定位至倒數(shù)第3條記錄的位置 GO BOTTOM SKIP -23 LOCATE 命令LOCATE FOR 條件將指針定位在滿足條件的第1條記錄上,若沒有滿足條件的記錄則指向文件結(jié)束位置。LOCATE 命令常用的結(jié)構(gòu)是:LOCATE FOR 條件DO WHILE FOUND()語句序列CONTINUEENDDO例如: 輸出學(xué)生表中所有女生的姓名和年齡 USE 學(xué)生 LOCATE FOR 性別=”女” DO WHILE FOUND() ?姓名,年齡 CONTINUE ENDDO練習(xí)題1 創(chuàng)建兩個數(shù)據(jù)庫表,并輸入至少5條記錄。 學(xué)生(學(xué)號 8 姓名 10 性別 年齡) 銷售(商品
26、號 5 商品名 20 價格 10.2)2 用VF命令將銷售表中所有商品價格提高12.88%。3 輸出學(xué)生表中所有姓王的男同學(xué)的姓名和年齡。第3課知識點一索引的分類1 主索引字段中不允許出現(xiàn)重復(fù)值,起主關(guān)鍵字作用。一個表只能建立一個主索引。2 候選索引候選索引和主索引具有相同的特性。一個表可以建立多個候選索引。3 唯一索引唯一索引保持同早期版本的兼容性,其唯一是指索引項唯一,并不是字段值的唯一。一個表可以建立多個唯一索引。4 普通索引普通索引允許字段有重復(fù)值。一個表可以建立多個普通索引。知識點二索引的建立和刪除建立索引有兩種方法:1 在表設(shè)計器中建立索引2 使用命令建立索引INDEX ON 索引
27、表達式 TAG 索引名 UNIQUE | CANDIDATE UNIQUE 指明建立唯一索引CANDIDATE 指明建立候選索引若上述兩個都省略,表示建立普通索引。例如: 在學(xué)生表中建立一個名稱為姓名的普通索引INDEX ON 姓名 TAG 姓名 刪除索引DELETE TAG 索引名刪除全部索引DELETE TAG ALL例如: 在學(xué)生表中刪除前面建立的姓名索引 DELETE TAG 姓名 知識點三數(shù)據(jù)完整性1 實體完整性實體完整性是保證表中記錄唯一的特性。Visual FoxPro中用主關(guān)鍵字保證數(shù)據(jù)的實體完整性。2 域完整性域完整性通常限定數(shù)據(jù)類型、取值范圍、有效性規(guī)則等。例如: 年齡為整
28、型,月份取值為1至12等。3 參照完整性參照完整性反映表和表之間的關(guān)聯(lián)。參照完整性規(guī)則包括更新規(guī)則、刪除規(guī)則和插入規(guī)則。 練習(xí)題4 創(chuàng)建兩個數(shù)據(jù)庫表: 學(xué)生(學(xué)號 8 姓名 10) 選課(學(xué)號 8 課程號 5 成績 3.1) 5 為學(xué)生表創(chuàng)建一個主索引(學(xué)號),再為選課表創(chuàng)建一個普通索引(學(xué)號),最后建立兩個表的關(guān)聯(lián)。第四章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL 第1課 知識點一SQL語言概述SQL全稱為Structured Query Language(結(jié)構(gòu)化查詢語言)知識點二SQL基本格式 SELECT 字段1,字段2,字段n FROM 表名1,表名2,表名n WHERE 條件 GROUP BY 分組
29、字段 HAVING 分組條件 ORDER BY 排序字段 ASC | DESC INTO TABLE 表名知識點三單表查詢首先建立以下四個表,本章所有例子均對此操作。 倉庫(倉庫號,城市,面積)職工(倉庫號,職工號,工資)訂購單(職工號,供應(yīng)商號,訂購單號,訂購日期)供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)例1 從職工表中查詢所有職工的工資 SELECT 工資 FROM 職工例2 從倉庫表中查詢所有記錄 SELECT * FROM 倉庫例3 查詢工資多于1230元的職工號 SELECT 職工號 FROM 職工WHERE工資>1230知識點四多表查詢例1 查詢工資多于1230元的職工號和他們所在
30、城市方法一 SELECT 職工號,城市 FROM 職工,倉庫; WHERE 職工.倉庫號=倉庫.倉庫號;AND 工資>1230 方法二 SELECT 職工號,城市 FROM; 職工 INNER JOIN倉庫; ON 職工.倉庫號=倉庫.倉庫號;WHERE 工資>1230例2 查詢工資多于1230元的職工向北京的供應(yīng)商發(fā)出的 訂購單號。 方法一 SELECT 訂購單號FROM 職工,訂購單,供應(yīng)商; WHERE 職工.職工號=訂購單.職工號; AND 訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號; AND 工資>1230 AND 地址=”北京” 方法二 SELECT 訂購單號 FROM;
31、 職工 INNER JOIN 訂購單 INNER JOIN 供應(yīng)商; ON 訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號; ON 職工.職工號=訂購單.職工號; WHERE 工資>1230 AND 地址=”北京”知識點五嵌套查詢例1 查詢哪些城市至少有一個倉庫的職工工資為1250元 SELECT 城市 FROM 倉庫 WHERE 倉庫號; IN(SELECT 倉庫號 FROM 職工; WHERE 工資=1250) 例2 查詢所有職工的工資都多于1210元的倉庫信息 SELECT * FROM 倉庫 WHERE倉庫號; NOT IN(SELECT倉庫號 FROM 職工; WHERE工資<=12
32、10) AND倉庫號; IN(SELECT 倉庫號 FROM 職工)練習(xí)題1 查詢在北京的供應(yīng)商的名稱。2 查詢向供應(yīng)商S3發(fā)過訂購單的職工的職工號和倉庫號。3 查詢和職工E1、E3都有聯(lián)系的北京的供應(yīng)商信息。第2課知識點一特殊運算符BETWEENAND 表示在一定范圍內(nèi)查詢例1 查詢工資在1220元到1240元范圍內(nèi)的職工信息 SELECT * FROM 職工 WHERE 工資; BETWEEN 1220 AND 1240 上述語句的等價寫法是: SELECT * FROM 職工; WHERE 工資>=1220 AND 工資<=1240 LIKE 表示模糊查詢,通常和%一起使用。
33、 例2 查詢供應(yīng)商名中最后兩字為公司的供應(yīng)商信息 SELECT * FROM 供應(yīng)商; WHERE 供應(yīng)商名 LIKE “%公司” 上述語句的等價寫法是: SELECT * FROM 供應(yīng)商; WHERE RIGHT(供應(yīng)商名,4)=”公司”知識點二字段排序 ORDER BY 例1 查詢所有職工信息并按工資升序排序 SELECT * FROM 職工 ORDER BY 工資例2 查詢所有職工信息,先按倉庫號升序再按工資降序。 SELECT * FROM 職工;ORDER BY 倉庫號,工資 DESC知識點三計算查詢COUNT(計數(shù)) SUM(求和) AVG(平均值)MAX(最大值) MIN(最小
34、值)例1 查詢供應(yīng)商所在地的數(shù)目 SELECT COUNT(DISTINCT 地址); FROM 供應(yīng)商 上述語句中DISTINCT表示去掉重復(fù)值例2 求所有職工的工資總數(shù) SELECT SUM(工資) FROM 職工例3 求在WH2倉庫工作的職工的最高工資 SELECT MAX(工資) FROM 職工; WHERE 倉庫號=”WH2” 知識點四分組查詢 GROUP BY例1 求每個倉庫的職工的平均工資和倉庫號 SELECT 倉庫號,AVG(工資) FROM 職工; GROUP BY 倉庫號例2 求至少有兩個職工的每個倉庫的平均工資和倉庫號 SELECT 倉庫號,AVG(工資) FROM 職工
35、; GROUP BY 倉庫號 HAVING COUNT(*)>=2知識點五SQL的幾個特殊短語1 只顯示前幾項記錄 TOP n例如: 顯示工資最高的3位職工信息 SELECT * TOP 3 FROM 職工;ORDER BY 工資 DESC 注意: 此短語必須和ORDER BY一起使用2 將查詢結(jié)果存放到數(shù)組 INTO ARRAY例如: 查詢所有職工信息并存放到數(shù)組A中 SELECT * FROM 職工 INTO ARRAY A 3 將查詢結(jié)果存放到表中 INTO TABLE 例如: 查詢所有職工信息并存放到WORKER表中 SELECT * FROM 職工; INTO TABLE WO
36、RKER 練習(xí)題4 查詢所有倉庫的平均面積。5 查詢每個倉庫中工資多于1220元的職工個數(shù)。6 查詢工資低于本倉庫平均工資的職工信息。第3課知識點一插入數(shù)據(jù)格式一:INSERT INTO 表名 VALUES(字段1值,字段2值,)例1 往倉庫表中增加記錄(“WH45”,”天津”,4500) INSERT INTO倉庫VALUES(“WH45”,”天津”,4500)格式二:INSERT INTO 表名 FROM ARRAY 數(shù)組名例2 有一空表ZG,將前面數(shù)組A的數(shù)據(jù)插入到ZG中。INSERT INTO ZG FROM ARRAY A知識點二更新數(shù)據(jù)格式: UPDATE 表名 SET 字段=表達
37、式 WHERE 條件例1 將WH1倉庫的職工工資提高10%UPDATE 職工 SET 工資=工資*1.1;WHERE 倉庫號=”WH1”例2 將所有學(xué)生的年齡增加1歲 UPDATE 學(xué)生 SET 年齡=年齡+1知識點三刪除數(shù)據(jù)格式: DELETE FROM 表名 WHERE 條件例1 刪除倉庫表中WH2倉庫的信息 DELETE FROM 倉庫 WHERE 倉庫號=”WH2”例2 刪除職工表的全部信息DELETE FROM 職工練習(xí)題7 插入一個新的供應(yīng)商元組(S9,智通公司,沈陽)。8 刪除目前沒有任何訂購單的供應(yīng)商。9 將低于所有職工平均工資的職工提高5%的工資。第4課 知識點一創(chuàng)建表格式:
38、 CREATE TABLE 表名(字段1類型,字段2類型,)例如: 按如下要求創(chuàng)建一個學(xué)生表 學(xué)號 字符型 10 成績 數(shù)值型 2.1CREATE TABLE 學(xué)生(學(xué)號 C(10),成績 N(2,1)知識點二修改表格式: ALTER TABLE 表名 ADD|ALTER 字段CHECK 表達式例1 為訂購單表增加一個總金額N(8,2)字段 ALTER TABLE 訂購單 ADD 總金額N(8,2)例2 將訂購單表的訂購單號字段寬度改為10 ALTER TABLE 訂購單 ALTER 訂購單號 C(10)例3 為訂購單表總金額增加有效性規(guī)則(總金額>100) ALTER TABLE 訂購
39、單 ALTER 總金額; SET CHECK 總金額>100知識點三創(chuàng)建視圖: CREATE VIEW 視圖名 AS SELECT語句例1 創(chuàng)建一個視圖MyView,包含WH1倉庫職工信息。 CREATE VIEW MyView AS; SELECT * FROM 職工; WHERE 倉庫號=”WH1”刪除視圖: DROP VIEW 視圖名例2 刪除前面創(chuàng)建的MyView視圖 DROP VIEW MyView練習(xí)題10 為教師表的教師號增加有效性規(guī)則: 教師號最左邊三位字符是110。11 為學(xué)院表增加一個字段: 教師人數(shù)(整數(shù)),同時設(shè)置有效性規(guī)則: 教師人數(shù)>=0。12 創(chuàng)建一個
40、視圖SView,包含工資不在1000,1300的職工信息。第五章 SQL綜合實例例1 學(xué)生(學(xué)號,姓名,出生日期) 選課(學(xué)號,課程號,成績) 課程(課程號,課程名,學(xué)時)1)查詢18歲以上的學(xué)生的學(xué)號和姓名。2)查詢最年長的三位學(xué)生的姓名。3)查詢所有含有"程序設(shè)計"四個字的課程名。4)查詢選修了"數(shù)據(jù)庫原理"且成績在85分以上的學(xué)生的學(xué)號和姓名,按學(xué)號升序和姓名降序保存至STU中。5)查詢每門課程的課程名和最高分。6)查詢沒有選修任何課程的學(xué)生的姓名。7)查詢至少選修了兩門課程的學(xué)生的學(xué)號和姓名。8)查詢選修了課程的學(xué)生人數(shù)。9)將所有末字為&quo
41、t;軍"的學(xué)生出生日期更改為1983/5/12。10)為學(xué)生表增加字段"實交學(xué)費"(整數(shù)),同時設(shè)置規(guī)則實交學(xué)費>0。解答:1) SELECT 學(xué)號,姓名 FROM 學(xué)生; WHERE YEAR(DATE()-YEAR(出生日期)>182) SELECT TOP 3 姓名 FROM 學(xué)生; ORDER BY 出生日期3) SELECT 課程名 FROM 課程; WHERE 課程名 IN(“程序設(shè)計”)4)方法一 SELECT 學(xué)生.學(xué)號,姓名 FROM 學(xué)生,選課,課程; WHERE 學(xué)生.學(xué)號=選課.學(xué)號; AND 選課.課程號=課程.課程號; AN
42、D 課程名=”數(shù)據(jù)庫原理” AND 成績>85; ORDER BY 學(xué)生.學(xué)號,姓名 DESC; INTO TABLE STU 方法二 SELECT 學(xué)生.學(xué)號,姓名 FROM; 學(xué)生 INNER JOIN 選課 INNER JOIN 課程; ON 選課.課程號=課程.課程號; ON 學(xué)生.學(xué)號=選課.學(xué)號; WHERE 課程名=”數(shù)據(jù)庫原理” AND 成績>85; ORDER BY 學(xué)生.學(xué)號,姓名 DESC; INTO TABLE STU5) SELECT 課程名,MAX(成績) 最高分; FROM 選課,課程; WHERE 選課.課程號=課程.課程號; GROUP BY 選課
43、.課程號6) SELECT 姓名 FROM 學(xué)生 WHERE 學(xué)號; NOT IN(SELECT 學(xué)號 FROM 選課)7) SELECT 學(xué)號,姓名 FROM 學(xué)生; WHERE 學(xué)號 IN(SELECT 學(xué)號 FROM 選課; GROUP BY 學(xué)號 HAVING COUNT(課程號)>=2)8) SELECT COUNT(DISTINCT 學(xué)號) FROM 選課9) UPDATE 學(xué)生 SET 出生日期=1983-05-12; WHERE RIGHT(姓名,2)=”軍”10) ALTER TABLE 學(xué)生 ADD 實交學(xué)費 I; CHECK 實交學(xué)費>0例2 工程(工程號,工
44、程名,費用)開工(工程號,零件號,數(shù)量)零件(零件號,零件名,顏色)1)查詢所有和紅色相關(guān)的工程的工程號。2)查詢同時使用了P2、P3、P4三種零件的工程名。3)查詢至少使用了兩種零件的工程的工程名和費用。4)查詢費用低于所有工程平均費用的工程名。5)創(chuàng)建視圖SVIEW,包含每種零件的零件號和使用數(shù)量。1) SELECT 工程號 FROM 開工; WHERE 零件號 IN(SELECT 零件號 FROM 零件; WHERE 顏色=”紅”)2) SELECT 工程名 FROM 工程; WHERE 工程號 IN(SELECT 工程號 FROM 開工; WHERE 零件號=”P2”) AND 工程號
45、 IN; (SELECT 工程號 FROM 開工WHERE 零件號=”P3”); AND 工程號 IN(SELECT 工程號 FROM 開工; WHERE 零件號=”P4”)3) SELECT 工程名,費用 FROM 工程; WHERE 工程號 IN(SELECT 工程號 FROM 開工; GROUP BY 工程號 HAVING COUNT(零件號)>=2)4) SELECT 工程名 FROM 工程; WHERE 費用<(SELECT AVG(費用) FROM 工程)5) CREATE VIEW SVIEW AS;SELECT 零件號,SUM(數(shù)量) 使用數(shù)量; FROM 開工 G
46、ROUP BY 零件號第六章 表單設(shè)計與應(yīng)用第1課 知識點一對象和類1 對象客觀世界里任何實體都被看作是對象。例如: 一臺計算機,一個學(xué)生都可作為對象。2 類類是由一系列相同特征的對象構(gòu)成的集合。例如: 學(xué)生類、汽車類、電視機類等。知識點二屬性和事件1 屬性屬性是指對象具有的相關(guān)特征。例如: 學(xué)生相關(guān)屬性有學(xué)號、姓名、興趣愛好等。2 事件事件是指在特定環(huán)境下產(chǎn)生的過程。例如: 鼠標(biāo)單擊、鍵盤按鍵等都是事件。知識點三創(chuàng)建表單和運行表單1創(chuàng)建表單通常有兩種方法:1)使用表單設(shè)計器創(chuàng)建表單2)使用表單向?qū)?chuàng)建表單2 運行表單通常有兩種方法:1)打開表單設(shè)計器,單擊工具欄上運行按鈕2)在命令窗口中輸入
47、: DO FORM 表單文件名 第2課知識點一標(biāo)簽控件Label通常在表單上用來顯示靜態(tài)文本。主要屬性:1 Name屬性表示標(biāo)簽的名稱,每個標(biāo)簽的名稱是唯一的。2 Caption屬性表示標(biāo)簽上顯示的文本。例1 在表單上畫一個名為Mylab的標(biāo)簽并顯示文字“計算機等級考試”操作: 1)將標(biāo)簽Name屬性改為Mylab2)將標(biāo)簽Caption屬性改為”計算機等級考試”知識點二命令按鈕 Command通常用來完成某個特定功能如關(guān)閉表單、打印報表等。主要屬性:1 Name屬性和Caption屬性 這兩個屬性和標(biāo)簽控件中含義完全相同。2 Enabled屬性表示當(dāng)前按鈕是否可用,簡稱可用性。若,3 Visible屬性表示當(dāng)前按鈕是否可見,簡稱可見性。,例1 表單上有一個名稱為Mylab的標(biāo)簽和一個名稱為Mycmd的命令按鈕。點擊命令按鈕后標(biāo)簽中顯示”大家好”,同時命令按鈕隱藏。操作: 1)將標(biāo)簽Name屬性改為Mylab2)將命令按鈕Name屬性改為Mycmd3)雙擊命令按鈕,進入到Click事件中。 Thisform.Mylab.Capti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械行業(yè)采購工作總結(jié)
- 婚慶行業(yè)品牌推廣案例
- 安防保安行業(yè)美工工作總結(jié)
- 金融行業(yè)員工培訓(xùn)
- 探索自我提升之路計劃
- 財務(wù)會計前臺工作總結(jié)
- 音樂錄制委托合同三篇
- 神經(jīng)內(nèi)科護理工作感悟
- 2024年瓦斯抽放管理制度
- 2024年稅務(wù)師題庫及參考答案(完整版)
- 排水管渠及附屬構(gòu)筑物
- 養(yǎng)豬場施工噪聲環(huán)境影響分析
- Windows-Server-2012網(wǎng)絡(luò)服務(wù)架構(gòu)課件(完整版)
- 2022版義務(wù)教育語文課程標(biāo)準(zhǔn)(2022版含新增和修訂部分)
- 形位公差_很詳細(xì)(基礎(chǔ)教育)
- 手榴彈使用教案
- 600MW機組除氧器水位控制系統(tǒng)
- 史上最全的涉稅風(fēng)險
- 初中數(shù)學(xué)問題情境的創(chuàng)設(shè)
- 電力設(shè)備典型消防規(guī)程.ppt
- 北京興昌達博房地產(chǎn)開發(fā)有限公司重整計劃
評論
0/150
提交評論