请看如下的SQL*Plus命令:
COLUMN product_name HEADING ’Product Name’ FORMAT A20
这个命令将完成哪些工作
A.它将使PRODUCT_NAME列的标题居中
B.它将把PRODUCT_NAME列的标题设置为’Product Name’
C.它将限制PRODUCT_NAME列的标题为20个字符
D.它将把PRODUCT_NAME列的显示宽度设置为20
E.它将显示PRODUCT_NAME列的当前设置
参考答案:B,D
解析: 这一题测试对SQL*Plus的COLUMN格式化命令的熟悉程度。根据有关COLUMN格式化命令的介绍,完全可以断定选项B和D是正确的。因为在本题的COLUMN命令的选项HEADING之后,并未指定JUS[TIFY],所以按照列标题和数据的默认显示格式中有关的介绍,可知字符和日期型数据为左对齐,而数字型数据为右对齐,PRODUCT_NAME列的标题不可能居中显示(因为它只能为左或右对齐)。
如果记不住以上内容也没有关系,可以登录SQL*Plus后使用如下的SQL*Plus命令help,轻松地理解为什么选项A是错误的。
也可以通过SQL*Plus连接到SCOTT用户,注意tiger是该用户的密码(最好不要当着其他人的面使用这一方法,因为这样做会使密码泄露的)。
SQL>connect scott/tiger
已连接
之后,使用如下的查询语句获取员工表中属于第20号部门的所有员工的工号、名字和雇员日期。
SQL>SELECT empno, ename, hiredate
2 FROM emp
3 WHERE deomo=20;
EMPNO ENAME HIREDATE
----------- --------- ---------------
7369 SMITH 17-12月-80
7566 JONES 02-4月 -81
7788 SCOTT 19-4月 -87
7876 ADAMS 23-5月 -87
7902 FORD 03-12月-81
接下来,对问题中的SQL*Plus命令略加修改以适应员工(emp)表中的相应列的数据类型,并发出如下的三个SQL*Plus格式化命令:
SQL>COLUMN ename HEADING ’Product Name’ FORMAT A20
SQL>COLUMN empno HEADING ’Product ID’ FORMAT 9999999999
SQL>COLUMN hiredate HEADING ’Order Date’ FORMAT A20
最后,使用SQL*Plus的运行SQL语句命令“/”重新运行SQL缓冲区中的SQL语句。
SQL>/
Product ID Product Name Order Date
---------- ----------------- ----------------
7369 SMITH 17-12月-80
7566 JONES 02-4月 -81
7788 SCOTT 19-4月 -87
7876 ADAMS 23-5月 -87
7902 FORD 03-12月-81
从执行以上SQL语句的输出结果可以清楚地看出:与格式化之前的结果比较,在显示结果中除了列标题和列的宽度发生了变化,其他都没有变,所以选项A肯定是错误的。因为COLUMN格式化命令限制的是列的显示宽度而不是列标题的宽度,所以选项C肯定是错误的。因为显示PRODUCT NAME列的当前设置的命令是COLUMN product name,列名product name后面不能跟任何东西,所以选项E也是错误的。