(A) SELECT ename, dname FROM EMP NATURAL JOIN DEPT;
(B) SELECT ename, dname FROM EMP NATURAL CROSS JOIN DEPT; (C) SELECT ename, dname FROM EMP JOIN DEPT USING (deptno);
(D) SELECT ename, dname FROM EMP e,DEPT d WHERE e.deptno=d.deptno; (E) SELECT ename, dname FROM EMP e JOIN DEPT d ON (e.deptno=d.deptno); 169
要查询出所有部门的名称,以及部门中员工的名称,没有没工的部门名称也要查询出来
以下哪个语句是错误的
(A) select e.ename, d.dname from emp e right outer join dept d on (e.deptno=d.deptno);
(B) select e.ename, d.dname from emp e left outer join dept d on (e.deptno=d.deptno);
(C) select e.ename, d.dname from dept d left outer join emp e on (e.deptno=d.deptno);
(D) select e.ename, d.dname from emp e full outer join dept d on (e.deptno=d.deptno); 170
对于oracle数据库,设计用户表时,家庭住址字段最好采用下面的哪个数据类型进行存储 (A) CHAR (B) CHAR2 (C) VARCHAR (D) VARCHAR2 (E) LONG 171
以下的PL/SQL声明哪个是正确的? (A) v_id NUMBER(4);
(B) v_x, v_y, v_z VARCHAR2(10); (C) v_birthdate DATE NOT NULL; (D) v_in_stock BOOLEAN := 1; 172
The trigger heading:
CREATE OR REPLACE TRIGGER salary_check BEFORE UPDATE OF sal, job ON emp FOR EACH ROW
Under which condition does this trigger fire? (A) When a row is inserted into the EMP table
(B) When the value of the SAL or JOB column in a row is updated in the EMP table
(C) When any column other than the SAL and JOB columns in a row are updated in the EMP table
(D) Only when both values of the SAL and JOB columns in a row are updated together in the EMP table 173
What should you do after each fetch statement in the PL/SQL block? (A) Open the cursor (B) Close the cursor (C) Initialize the loop
(D) Test for the rows using the cursor attribute 174
You are a user of PROD database which contains over 1000 tables and you need to
determine the number of tables you can access. Which data dictionary view could you
query to display this information? (A) USER_OBJECTS (B) ALL_OBJECTS (C) DBA_SEGEMENTS (D) DBA_TABLES 175
Evaluate this PL/SQL block.
BEGIN
FOR i IN 1..10 LOOP
IF I=4 OR I=6 THEN null; ELSE
INSERT INTO test(result) VALUES (I); END IF; COMMIT; END LOOP; ROLL BACK; END.
How many values will be inserted into the TEST table (A) 0 (B) 4 (C) 6 (D) 8 (E) 10
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql语句。
Sql*plus是一个最常用的工具,具有很强的功能,主要有: 1. 数据库的维护,如启动,关闭等,这一般在服务器上操作。 2. 执行sql语句执行pl/sql。 3. 执行sql脚本。 4. 数据的导出,报表。
5. 应用程序开发、测试sql/plsql。 6. 生成新的sql脚本。
7. 供应用程序调用,如安装程序中进行脚本的安装。 8. 用户管理及权限维护等。
下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 @与@@的区别是什么?
@等于start命令,用来运行一个sql脚本文件。
@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件。
@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。
如:在c:\\temp目录下有文件start.sql和nest_start.sql,start.sql脚本文
件的内容为:
@@nest_start.sql - - 相当于@ c:\\temp\\nest_start.sql 则我们在sql*plus中,这样执行: SQL> @ c:\\temp\\start.sql 2. 对当前的输入进行编辑 SQL>edit
3. 重新运行上一次运行的sql语句 SQL>/
4. 将显示的内容输出到指定文件 SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令:
主要格式化列的显示形式。 该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER]
FOLD_B[EFORE] FOR[MAT] format HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} LIKE { expr|alias} NEWL[INE]
NEW_V[ALUE] variable NOPRI[NT]|PRI[NT] NUL[L] text
OLD_V[ALUE] variable ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] 1). 改变缺省的列标题
COLUMN column_name HEADING column_heading For example:
Sql>select * from dept; DEPTNO DNAME LOC
---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location
--------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK