如果你需要開發動態內容的網站,那麼就肯定要用到數據庫。盡管現代網站離不開數據庫,但很多開發者對它的工作原理仍然知之甚少。
PHP支持許多種類的數據庫,可PHP認證只和PHP能力有關,所以本章的題目不會專門針對某個特定的數據庫管理系統。另外,大多數商業DBMS,比如MySQL AB,都有它們自己的認證課程。
本章考察你對數據庫原理及數據庫編程的相關知識——與特定的DBMS無關。
問題
1.考慮如下SQL語句。哪個選項能對返回記錄的條數進行限制?(雙選)
SELECT * FROM MY_TABLE
A.如果可能,用把查詢轉換成存儲例程
B.如果程序允許,給查詢指定返回記錄的范圍
C.如果可能,添加where條件
D.如果DBMS允許,把查詢轉換成視圖
E.如果DBMS允許,使用事先准備好的語句
2.可以用添加______條件的方式對查詢返回的數據集進行過濾?
答案:____________
3.內關聯(inner join)是用來做什麼的?
A.把兩個表通過相同字段關聯入一張持久的表中
B.創建基於兩個表中相同相同行的結果集
C.創建基於一個表中的記錄的數據集
D.創建一個包含兩個表中相同記錄和一個表中全部記錄的結果集
E.以上都不對
4.以下哪個DBMS沒有PHP擴展庫?
A.MySQL
B.IBM DB/2
C.PostgreSQL
D.Microsoft SQL Server
E.以上都不對
5.考慮如下腳本。假設mysql_query函數將一個未過濾的查詢語句送入一個已經打開的數據庫連接,以下哪個選項是對的?(雙選)
以下是代碼片段:
<?php
$r = mysql_query (DELETE FROM MYTABLE WHERE ID= . $_GET[ID]);
?>
A.MYTABLE表中的記錄超過1條
B.用戶輸入的數據需要經過適當的轉義和過濾
C.調用該函數將產生一個包含了其他記錄條數的記錄
D.給URL傳遞ID=0+OR+1將導致MYTABLE中的所有表被刪除
E.查詢語句中應該包含數據庫名
6.______語句能用來向已存在的表中添加新的記錄。
答案:____________
7.以下哪個說法正確?
A.使用索引能加快插入數據的速度
B.良好的索引策略有助於防止跨站攻擊
C.應當根據數據庫的實際應用按理設計索引
D.刪除一條記錄將導致整個表的索引被破壞
E.只有數字記錄行需要索引
8.join能否被嵌套?
A.能
B.不能
9.考慮如下數據表和查詢。如何添加索引能提高查詢速度?
CREATE TABLE MYTABLE (
ID INT,
NAME VARCHAR (100),
ADDRESS1 VARCHAR (100),
ADDRESS2 VARCHAR (100),
ZIPCODE VARCHAR (10),
CITY VARCHAR (50),
PROVINCE VARCHAR (2)
)
SELECT ID, VARCHAR
FROM MYTABLE
WHERE ID BETWEEN 0 AND 100
ORDER BY NAME, ZIPCODE
A.給ID添加索引
B.給NAME和ADDRESS1添加索引
C.給ID添加索引,然後給NAME和ZIPCODE分別添加索引
D.給ZIPCODE和NAME添加索引
E.給ZIPCODE添加全文檢索