如果你需要开发动态内容的网站,那么就肯定要用到数据库。尽管现代网站离不开数据库,但很多开发者对它的工作原理仍然知之甚少。
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添加全文检索