計算機等級考試越來越受到同學們的重視,下面是小編為大家整理的2016計算機二級《VF》衝關練習及答案,歡迎學習!
單選題
1.下面命令的輸出結果是( )。
?VARTYPE(TIME())
A.D
B.T
C.N
D.C
2.執行下列程式後,變數s的值是( )。
SET TALK OFF
CLEAR
x=〝l2345〞
s=〝〞
1=LEN(x)
DO WHILE l>1
x1=SUBSTR(x,1-1,2)
s=s+x1
1=l-2
ENDD0
?s
A.2345
B.4523
C.54321
D.45231
3.一F列關於查詢的說法,不正確的是( )。
A.查詢是預先定義好的SQL SELECT語句
B.查詢是從指定的表或檢視中提取滿足條件的記錄,然後按照希望輸出的型別輸出查詢結果
C.在用命令使用查詢時,必須首先開啟資料庫
D.查詢設計器中沒有“更新條件”選項卡
4.在SQL語句中,有可能將多個查詢結果合併成一個查詢結果的運算子是( )。
0N
5.在當前資料庫中根據“學生”表建立檢視viewone,正確的SQL語句是( )。
NE VIEW viewone AS SELECT*FROM學生
NE VIEW viewone SELECT*FRoM學生
TE VIEW viewone AS SELECT*FROM學生
TE VIEW viewone SELECT*FRoM學生
6.執行下列程式後,變數y的值是( )。
SET TALK OFF
CLEAR
X=2000
Do CASE
CASE x<=1000
y=x*0.1
CASE x>1000
y=x*0.2
CASE x>1500
y=x*0.3
CASE x>2500
y—x*0.4
ENDCASE
?Y
A.200
B.400
C.600
D.800
7.在資料庫設計過程中,如果表A和表B之間是一對多聯絡。下列進行的資料庫設計方法中,最合理的是( )。
A.將表A的主關鍵字欄位新增到表B中
B.將表B的主關鍵字欄位新增到表A中
C.建立一個新表,該表包含表A和表B的主關鍵字
D.將表A和表B合併,這樣可以減少表的個數,便於管理和維護
8.在Visual FoxPro中,如果在表之間的聯絡中設定了參照完整性規則,並在更新規則中選擇了“級聯”,當更新父表中記錄的被參照欄位時,系統的反應是( )。
A.不做參照完整性檢查
B.若子表中有相關參照記錄,則同時自動更新子表中記錄的參照欄位
C.若子表中有相關參照記錄,則禁止更新父表中的記錄
D.不做參照完整性檢查,可以隨意更新父表中的連線欄位值
9.在Visual FoxPro中,命令“INDEX ON姓名TO xm”的功能是( )。
A.建立一個名為的索引檔案
B.建立一個名為的索引檔案
C.在結構索引檔案中建立一個名為xm的索引
D.在非結構索引檔案中建立一個名為xm的索引
10.如果病人和病人家屬2個表建立了“級聯”參照完整性的刪除規定,下列選項正確的是( )。
A.刪除病人表中的記錄時,病人家屬表中的相應記錄系統自動刪除
B.刪除病人表中的記錄時,病人家屬表中的相應記錄不變
C.無論病人家屬表中是否有相關的記錄,病人表中的記錄都不允許刪除
D.病人家屬表中的記錄不允許刪除.
11.假設會員表中包含會員號、姓名和電話欄位。現在希望通過建立合適的索引來保證會員號的值唯一,下面選項中能夠保證會員號的值是唯一的語句是( )。
X ON會員號TO hyh CANDIDATE
X ON會員號TO hyh UNIQUE
X ON會員號TAG hyh CANDIDATE
X ON會員號TAG hyh UNIQUE
12.設教師表儲存的是教師資訊,教師表的表結構為(教師編號,姓名,職稱)i圖書出版表儲存的是教師出版圖書的情況,圖書出版表的表結構為(ISBN號,教師編號,圖書名,出版社,出版年份)。如果希望查詢從來沒有出版過圖書的教師編號和姓名,正確的SQL語句是( )。
CT教師表.教師編號,姓名FROM教師表JOIN圖書出版表; 0N教師表.教師編號一圖書出版表.教師編號WHERE教師表.教師編號IS NULL
CT教師表.教師編號,姓名FROM教師表LEFT JOIN圖書出版表; ON教師表.教師編號一圖書出版表.教師編號WHERE圖書出版表.教師編號IS NULL
CT教師表.教師編號,姓名FROM教師表INNER JOIN圖書出版表; ON教師表.教師編號一圖書出版表.教師編號WHERE圖書出版表.教師編號IS NULL
CT教師表.教師編號,姓名FROM教師表RIGHT JOIN圖書出版表; ON教師表.教師編號一圖書出版表.教師編號WHERE圖書出版表.教師編號IS NULL
13.使用SQL的UPDATE語句更新資料表中的資料時,以下說法正確的是( )。
A.如果沒有資料項被更新,將提示錯誤資訊
B.更新資料時,必須帶有WHERE子句
C.不能更新主關鍵欄位的值
D.一次可以更新多行資料或多個欄位的值
14.“SELECT*FROM投稿表TO FILE temp WHERE審稿結果=ˋ通過ˊ”語句的功能是( )。
A.將查詢結果儲存到臨時檔案中
B.將查詢結果儲存到文字檔案中
C.將查詢結果儲存到temp表中
D.將查詢結果儲存到陣列temp中
15.設R和S是兩個基本表,“R RIGHT JOIN S ON R.某列=s.某列”表示( )。
A.在連線結果中會將R中不滿足連線條件的資料保留下來
B.在連線結果中會將S中不滿足連線條件的資料保留下來
C.在連線結果中會將R和S中都不滿足連線條件的資料保留下來
D.在連線結果中,R和S的資料都必須滿足連線條件
16.有如下職員表:
職員(職員9(C,3),姓名(C,6),t哇N(C,2),職務(C,10))要在該表中插入一條記錄,正確的SQL語句是( )。
RT T0職員VALUES(〝666〞,〝楊軍〞,〝男〞,〝組員〞)
RT INTO職員VALUES(〝666〞,〝楊軍〞,.T.,〝組員〞)
ND T0職員VALUES(〝666〞,〝楊軍〞,.T.,〝組員〞)
RT INTO職員VALUES(〝666〞,〝楊軍〞,〝男〞,〝組員〞)
17.有如下訂單表:
訂單(訂單號(C,4),客戶號(C,4),職員號(C,3),簽訂日期(D.,金額(N,6,2))統計2012年各月份簽訂的訂單的總金額,正確的SQL語句是( )。
CT MONTH(簽訂日期)月份,SUM(金額)總金額FROM訂單GROUP BY月份WHHRE
YEAR(簽訂日期)=2012
CT MONTH(簽訂日期)月份,SUM(金額)總金額FROM訂單GROUP BY月份HAVING
YEAR(簽訂日期)=2012
CT簽訂日期H( )月份,SUM(金額)總金額FROM訂單GROUP:BY月份WHERE
簽訂日期( )=2012
CT簽訂日期H( )月份,SUM(金額)總金額FROM訂單GROUP BY月份HAⅥNG
簽訂日期( )=2012
18.有如下職員表和訂單表:職員(職員號(C,3),姓名(C,6),性別(C,2),職務(C,10))訂單(訂單號(C,4),客戶號(C,4),職員號(C,3),簽訂日期(D),金額(N,6,2))查詢職工〝李麗〞簽訂的訂單訊息,正確的SQL.語句是( )。
CT訂單號,客戶號,簽訂日期,金額FROM訂單WHERE姓名=〝李麗〞
CT訂單號,客戶號,簽訂日期,金額FROM職員,訂單WHERE姓名=〝李麗〞;
AND職員.職員號一訂單.職員號
CT訂單號,客戶號,簽訂日期,金額FROM職員JOIN訂單;
WHERE職員.職員號=訂單.職員號AND姓名=〝李麗〞
CT訂單號,客戶號,簽訂日期,金額FROM職員,訂單ON職員.職員號=訂單.職員號AND姓名=〝李麗〞
19.為職工資料庫表增加一個欄位“聯絡方式”的SQL語句是( )。
R TABLE職工ADD聯絡方式C(40)
R職工ADD聯絡方式C(40)
GE TABLE職工ADD聯絡方式C(40)
GE DBF職工INSERT聯絡方式(40)
10.使用SQL,語句完成“將所有職工的年齡增加1歲”,正確的操作是( )。
TE職工SET年齡=年齡+1
TE職工ADD年齡+1
TE職工SET年齡=1
TE職工ADD l
參考答案:
(1)D[解析]TIME()是系統時間函式,以24小時制、hh:mm:ss格式返回當前系統時間,函式值為字元型。VARTYPE(<表示式>[,<邏輯表示式>])是資料型別測試函式,用於測試<表示式>的型別,返回一個大寫字母。由於TIME()的返回值是字元型,因此執行VARTYPE命令時返回C。故本題D為正確選項。
(2)B[解析]本題涉及的考點有求字串長度函式、取子串函式以及DO wHILE-ENDD0迴圈語句。其中LEN(<字元表示式>)返回指定字元表示式的長度,即所包含的字元個數,函式值為數值型。SUBSTR()從給定字串的指定起始位置取指定長度的子串作為函式值。執行DO WHILE-ENDD0語句時,先判斷<條件>是否為真,如果是真則執行DOWHILE與ENDD0間的迴圈體,當執行到ENDD0時,再返回DO WHILE’重新判斷迴圈條件是否為真,確定是否再次執行迴圈體。若條件為假則結束迴圈語句執行ENDD0後的語句。程式執行過程如下:程式開始時l=len(x)=5,進入迴圈條件判斷,5>1,條件成立,執行第一次迴圈,xl-SUB-STR(x,I一1,2)=〝45〞,s=S+x1=”45“,i=5-2=3。第一次迴圈結束。程式回到迴圈條件判斷,3>1,條件成立,執行第二次迴圈,xl=SUBSTR(X,j-1,2)=”23”,s=s+x1=”4523”,i=3-2=1。第二次迴圈結束,程式回到迴圈條件判斷,i>1,條件不成立,結束迴圈。最終s中的值為字串”4523”。故答案選B。
(3)C[解析]查詢是預先定義好的一個SQL SE-LECT語句,可根據需要直接使用。查詢是從指定的表或檢視中提取滿足條件的記錄,然後按照想得到的輸出型別定向輸出查詢結果,諸如瀏覽器、報表、表、標籤等。在用命令使用查詢時,必須要加副檔名,不必開啟資料庫;檢視設計器有“更新條件”選項卡,而查詢設計器中沒有“更新條件”選項卡。故本題C為正確選項。
(4)C[解析]SQL支援集合的並(UNION)運算,可以將具有相同查詢欄位個數且對應欄位值域相同的SQL查詢語句用UNION短語連線起來,合併成一個查詢結果輸出。故本題C為正確選項。
(5)C[解析]建立檢視可以使用CREATE VIEw語句來實現,其基本的命令格式是:CREATE VIEW檢視名ASSELECT查詢語句,可見本題C為正確選項。
(6)B[解析]本題考查分支語句DO CASE-END-CASE,多分支語句需依次判斷CASE後的條件是否成立。當發現某個CASE後的條件成立時,就執行該CASE和下一個CASE間的命令序列,然後執行ENDCASE後面的命令。如所有的條件都不成立,則執行OTHERWISE與ENDCASE之間的命令序列,然後轉向ENDCASE後面的語句。因此本題執行Y=x*0.2=400,即B選項正確。
(7)A[解析]同一個資料庫中的表通常都是有關係的,當插入、刪除或修改一個表中的資料時,通過參照引用相互關聯的另一個表中的資料,來檢查對錶的資料操作是否正確。在父表中建立主索引或候選索引,在子表對應欄位上建立普通索引,然後將主索引拖至普通索引上,建立起表之間的聯絡。故A為正確選項。
(8)B[解析]參照完整性約束包括更新規則、刪除規則和插入規則。更新規則中設定級聯的含義是,當更新父表中的連線欄位(主關鍵字)值時,自動修改子表中的所有相關記錄。因此本題B為正確選項。
(9)A[解析]INDEX ON命令用於在程式中建立索引,執行命令“INDEX ON姓名TO xm”之後可建立一個名為xm的索引檔案,索引檔案的副檔名為,故本題A選項正確。
(10)A[解析]參照完整性約束包括更新規勇、刪除規則和插入規則,在刪除規則建立。級聯”的含義是,當刪除父表中的連線欄位(主關鍵字)值時,自動刪除子表中的所有相關記錄。因此如果刪除病人表中的記錄,病人家屬表中的記錄也會自動刪除,故本題A選項正確。
(11)D[解析]程式中建立索引,其命令格式為;IN-DEX ON<索引表示式>TO<索引檔名>| TAG<標記名>Eov<索引檔名>][FOR<條件表示式>][AS-CENDING | DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]。其中,各引數或短語的含義如下:
<索引表示式>可以是欄位名,或包含欄位名的表示式;TO<索引檔名>建立一個單獨的索引檔案。現在只是在建立一些臨時聯絡時才使用;
·TAG<標記名>建立結構複合索引檔案,索引名與表名同名,<標記名>給出索引名;
·OF<索引檔名>建立非結構複合索引檔案,用<索引檔名>指定索弓I檔名;
·FOR<滌件表示式>給出索引過濾條件,該短語一般不使用;
·ASCENDING或DESCENDING指明建立升序或降序索引,預設是升序的;
·UNIQUE指明建立唯一索引;
·CANDIDATE指明建立候選索引;
·ADDITIVE說明現在建立索引時是否關閉以前的索引,預設是關閉。根據標準格式首先排除A、B選項,因為UNIQUE建立唯一索引,因此本題D選項正確。
(12)B[解析]本題考查超連線查詢,在一般的SQL中,超連線運算子是“*=”(左連線)和“=*”(右連線)。超連線查詢有四種連線方式,其基本格式為SELECT……FROM左表INNER | LEFT | RIGHT | FULL JOIN右表ON連線條件WHERE其它條件。其中:
·INNER JOIN等價於JOIN,為普通連線(也稱為內部連線),普通連線只有滿足連線條件的記錄才出現在查詢結果中;
·LEFT JOIN為左連線,左連線除滿足連線條件的記錄出現在查詢結果中外,第一個表中不滿足連線條件的記錄也出現在查詢結果中,不滿足連線條件的'記錄的對應部分為 L.:
·RIGHT JOIN為右連線,除滿足連線條件的記錄出現在查詢結果中外,第二個表中不滿足連線條件的記錄也出現在查詢結果中,不滿足連線條件的記錄的對應部分為.;
·FULL JOIN稱為全連線除滿足連線條件的記錄出現在查詢結果中外,兩個表中不滿足連線條件的記錄也出現在查詢結果中,即兩個表中的內容都會顯示在結果中,不滿足連線條件的記錄的對應部分為.。查詢從來沒有出版過圖書的教師編號和姓名,B為正確選項。
(13)D[解析]更新資料的命令格式為:UPDATE表名SET欄位名1=表示式1[,欄位名2=表示式2……][WHERE條件],一般使用WHERE子句指定更新的條件,並且一次可以更新多行資料或多個欄位;如果不使用WHERE子句,則更新全部記錄,故本題D為正確選項。
(14)B[解析]本題考查簡單查詢,在SQL查詢語句的尾部新增TO FILE<文字檔名>[ADDITIVE]可以將查詢的結果放入新生成的指定文字檔案中,因此該語句的功能是將查詢結果儲存到文字檔案中。故本題B為正確選項。
(15)B[解析]本題考查超連線查詢,超連線查詢有四種連線方式,本題RIGHT JOIN為右連線,表示除滿足連線條件的記錄出現在查詢結果中外,第二個表中不滿足連線條件的記錄也出現在查詢結果中,不滿足連線條件的記錄的對應部分為.。因此“R RIGHT JOIN S ON R.某列=S.某列”的意思即是在連線結果中會將S中不滿足連線條件的資料保留下來。故本題B為正確選項。
(16)D[解析]INSERT INTO<表名>[(欄位名1[,欄位名2,……])]VALUES(欄位值1[,欄位值2,……])命令用於插入資料,首先排除A、C選項。根據題意插入記錄,在性別欄位只能為男或女,因此本題D選項正確。
(17)B[解析]本題考查分組與計算查詢,SELECT說明要查詢的欄位,FROM說明要查詢的欄位來自哪個表或哪些表,WHERE說明查詢條件,GROUP BY…HAVING用於按照簽訂日期進行分組。限定時間的語句應該為。YEAR(簽訂日期)-2012”,首先排除C、D選項。由於給GRoUPBY子句加條件必須使用HAVING,而不可以使用WHERE.因此可見本題B選項正確。
(18)C[解析]SQL的基本格式為SELECT-FROM-WHERE,其中SELECT說明要查詢的欄位,FROM說明要查詢的欄位來自哪個表或哪些表,WHERE說明查詢條件.本題查詢“李麗”簽訂的訂單資訊,要查詢欄位包括訂單號、客戶號、簽訂日期和金額,WHERE後應該限定職員和訂單表中的姓名為“李麗”,由於訂單表中並沒有姓名這一欄位,因此用職員號欄位將兩表資訊相連,AND表示“且”。故本題C為正確選項。
(19)A[解析]ALTER TABLE<表名>命令用於修改表的結構和欄位名,Add用於新增欄位,B、C、D選項的鬈式均不正確。故本題A為正確選項。
(20)A[解析]更新資料的命令格式為UPDATE表名SET欄位名1=表示式1[,欄位名2=表示式2…][WHERE條件],將所有職工的年齡增加1歲,應使用表示式“年齡=年齡+1”,故本題A為正確選項。