新人报道

大家好,初来乍到,请大侠们多多关照
我也来说两句 查看全部回复

最新回复

  • linger_52102 (2008-8-08 09:37:13)

    1.
    SQL*PLUS
    上,执行下面的哪些命令将释放持有的锁?(选择三项)






    COMMIT;


    TRUNCATE TABLE emp;


    ALTER TABLE employees ADD UNIQUE (email);


    UPDATE employees SET sal=30000 WHERE last_name =
    ‘King’


    ROLLBACK TO SAVEPOINT p1




    2.
    下面哪些运算符用于多行子查询?(选择二项)






    >ANY()


    AND


    NOT IN()


    !=




    3.
    游标的可以是()





    更新游标


    游标变量


    带参数游标


    嵌套游标




    4.
    Choose two space management parameters used to control the free


    space usage in a data block.






    PCTINCREASE


    PCTFREE


    PCTALLOCATED


    PCTUSED




    5.
    以下可能使序列SEQUENCE号不连续?






    事务回滚


    序列号用于其它表


    数据库崩溃


    修改了序列号的初始值


    6.
    创建表orders如下:

    CREATE TABLE orders (
    SER_NO NUMBER UNIQUE,
    ORDER_ID NUMBER,
    ORDER_DATE DATE NOT NULL
    STATUS VARCHARD2(10) CHECK (status IN ( ‘CREDIT’, ‘CASH’)),
    PROD_ID_NUMBER REFERENCES PRODUCTS(PRODUCT_ID),
    ORD_TOTAL NUMBER PRIMARY KEY (order_id, order_date));

    创建哪些列索引(选择二项)





    SER_NO


    ORDER_ID


    STATUS


    PROD_ID


    ORD_TOTAL


    ORDER_ID
    ,ORDER_DATE 复合索引




    7.
    empoyees
    数据如下:下面子查询不正确的是?last_name department_id salary

    Last name department id salary
    Getz
    10
    3000

    Davis
    20
    1500

    King
    20
    2200

    Davis
    30
    5000

    Kochhar
    5000

    ...




    SELECT * FROM employees where salary > (SELECT MIN(salary) FROM employees GROUP BY department.id);


    SELECT * FROM employees WHERE salary = (SELECT AVG(salary) FROM employees GROUP BY department_id);


    SELECT DISTINCT department_id FROM employees WHERE salary > ANY (SELECT AVG(salary) FROM employees GROUP BY department_id);


    SELECT department_id FROM employees WHERE SALARY > ALL (SELECT AVG(salary) FROM employees GROUP BY department_id);




    8.
    Which dictionary views would give you information about the total


    size of a tablespace? (Choose two.)






    DBA_TABLESPACES


    DBA_TEMP_FILES


    DBA_DATA_FILES


    DBA_FREE_SPACE




    9.
    Select the invalid statements from the list below regarding undo


    segment management. (Choose all that apply.)






    ALTER SYSTEM SET UNDO_TABLESPACE = ROLLBACK;


    ALTER DATABASE SET UNDO_TABLESPACE = UNDOTBS;


    ALTER SYSTEM SET UNDO_MANAGEMENT = AUTO;


    ALTER SYSTEM SET UNDO_MANAGEMENT = MANUAL;




    10.
    Choose two extent management options available for tablespaces.





    Dictionary-managed


    Data file-managed


    Locally managed


    Remote managed


    System-managed


    11.
    EMP
    结构如下

    LAST_NAME
    VARCHAR2(25)

    SALARY
    NUMBER(6,2)

    DEPARTMENT_ID NUMBER(6)
    查询不属于任何部门的查询:
    SELECT LAST_NAME, SALARY, DEPARTMENT_ID FROM EMP WHERE DEPARTMENT_ID = NULL;


    应该更改WHERE子句的列名才能显示期望结果


    应该更改WHERE子句的操作符才能显示期望结果


    应该删除WHERE子句


    显示了期望的结果




    12.
    Look at the result of the following query and choose the best answer.


    SELECT PROPERTY_VALUE FROM database_properties
    WHERE property_name = 'DEFAULT_TEMP_TABLESPACE';

    PROPERTY_VALUE
    -------------------------
    APP_TEMP_TS



    Newly created users in the database will be assigned APP_TEMP_TS as their temporary tablespace.


    Newly created users in the database will be assigned APP_TEMP_TS as their temporary tablespace if the TEMPORARY TABLESPACE clause is omitted in the CREATE USER statement.


    Newly created users in the database will be assigned APP_TEMP_TS as their temporary tablespace even if the TEMPORARY TABLESPACE clause is specified in the CREATE USER statement.


    Newly created users in the database will be assigned APP_TEMP_TS as their default as well as temporary tablespace, if the DEFAULT TABLESPACE and TEMPORARY TABLESPACE clauses are omitted in the CREATE USER statement.




    13.
    下面哪个数据字典反映表空间有总容量?



    DBA_TABLESPACES


    V$TABLESPACE


    DBA_FREE_SPACE


    DBA_DATA_FILES




    14.
    下面不是日期的格式码?




    ddddFM


    SSSS


    Minute


    yyyySP




    15.
    下面哪一条SQL语句将创建一个只包含部门号为10的员工数据的新表?




    CREATE TABLE ee10 AS (SELECT * FROM employees WHERE department_id=10)


    CREATE TABLE ee10, AS (SELECT * FROM employees WHERE department_id=10)


    CREATE TABLE (SELECT * FROM employees WHERE department_id=10)


    CREATE TABLE 10ee AS (SELECT * FROM employees WHERE department_id=10)


    16.
    如果你在创建约束时没有指定名字,那么Oracle将自动使用什么名字约定?




    PK_n


    SYS_n


    SYS_Cn


    CONS_n




    17.
    在PL/SQL中,下面 SELECT 语句,如是没有匹配行将会是?

    SELECT COUNT(*) INTO V_COUNT
    FROM EMP
    WHERE SALARY < 10;



    发生NO_DATA_FOUND异常


    SELECT
    执行成功


    发生TOO_FEW_ROWS 异常


    在PL/SQL中不能有COUNT(*)




    18.
    Which NLS parameter can be specified only as an environment variable?




    NLS_LANGUAGE


    NLS_LANG


    NLS_TERRITORY


    NLS_SORT




    19.
    下面查询职员姓名前3个字?




    SELECT SUTBSTR(last_name,1,3) FROM employees;


    SELECT SUBSTR(last_name,3,1) FROM employees;


    SELECT SUBSTR(last_name,0,3) FROM employees;


    SELECT LEFT(last_name3) FROM employees;




    20.
    表employees中departments含有如下数据:Employees

    Last name department_id salary
    Getz
    10
    3000

    Davis
    20
    1500

    King
    20
    2200

    Davis
    30
    5000

    Kochhar
    5000

    Departments
    Department_id
    Department name

    10 Sales
    20
    Marketing

    30
    Accounting

    40
    Administration

    编写查询语句得到部门名称和员工姓名,如果没有安排部门的员工也需要显示出来,以下哪个是正确?



    SELECT last_name, department_name FROM employees join departments;



    SELECT last_name, department_name FROM employees left outer job departments;


    SELECT last_name, department_name FROM employees e ,departments d WHERE e.department_id right outer join d.department_id;


    SELECT last_name, department_name FROM employees e ,departments d WHERE e.department_id full outer join d.department_id;


    21.
    When you multiplex the control file, how many control files can you


    have for one database?




    Four


    Eight


    Twelve


    Unlimited




    22.
    Which statement allows specifying the parameters PCTFREE and PCTUSED?




    CREATE TABLE


    ALTER INDEX


    ALTER TABLESPACE


    All the above




    23.
    employees
    表结构些如下:EMPLOYEE_ID
    NUMBER
    Primary Key

    FIRST_NAME VARCHAR2(25)

    LAST_NAME
    VARCHAR2(25)
    NOT NULL

    以下哪个语句正确插入employees一条记录?



    INSERT INTO employees VALUES ( NULL,
    ‘John’,’Smith’);


    INSERT INTO employees( first_name, last_name) VALUES(
    ’John’,’Smith’);


    INSERT INTO employees VALUES (
    ’1000’,’John’,’’);


    INSERT INTO employees(first_name,last_name, employee_id) VALUES (
    ’John’,’Smith’,1000);




    24.
    对执行下面语句的结果,哪一种说法最准确?SELECT DISTINCT department_id,last_name FROM employees




    结果中返回的每一行都是惟一的,且都没有空值


    每个部门将只显示一次,并随之显示该部门的各个员工姓名


    每个部门在结果中只显示一次



    将按照员工部门排序




    25.
    Which data dictionary view would you query to see the temporary


    segments in a database?




    DBA_SEGMENTS


    V$SORT_SEGMENT


    DBA_TEMP_SEGMENTS


    DBA_TABLESPACES


    26.
    EMPLOYEES
    表结构如下:


    EMP_ID
    NUMBER(4) NOT NULL

    LAST_NAME
    VARCHAR2(30) NOT NULL

    FIRST_NAME
    VARCHAR2(30)

    DEPT_ID
    NUMBER(2)

    JOB_CAT
    VARCHARD2(30)

    SALARY
    NUMBER(8,2)

    EMP结构如下:
    LAST_NAME
    VARCNAR2(35) NOT NULL

    SALARY
    NUMBER(9,2) NOT NULL

    COMMISION_PCT NUMBER(4,2)
    下面哪一条语句使用约束生效?



    ALTER TABLE table_name ENABLE <constraint_name>;


    ALTER TABLE table_name ENABLE PRIMARY KEY;


    ALTER TABLE table_name ENABLE CONSTRAINT PRMARY KEY <constraint_name>;


    ALTER TABLE table_name STATUS ENABLE CONSTRAINT constraint_name;




    27.
    在PL/SQL中,执行的SELECT语句可以处理多少行数据?




    多行,没有限制


    多行,但有限制


    一行,也可以没有返回


    一行,并且只能是一行




    28.
    下面哪一个SQL语句将删除employees的所有行,如果需要可以恢复被删除的行?




    DROP TABLE employees


    DELETE employees


    TRUNCATE TABLE employees


    RELEASE employees




    29.
    Which command do you use to collect statistics for a table?




    ALTER TABLE <TABLE_NAME> COMPUTE STATISTICS


    ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS


    ALTER TABLE <TABLE_NAME> COLLECT STATISTICS


    ANALYZE TABLE <TABLE_NAME> COLLECT STATISTICS




    30.
    下面哪些说法是正确的?




    通过ROLLBAK恢复被收删除的表


    通过ROLLBACK恢复事务中修改过的记录


    通过ROLLBAK恢复被TRUNCATE的数据


    ROLLBACK
    命令总会结束事务


  • linger_52102 (2008-8-08 09:37:52)

    31.  以下哪个语句显示各部门中按职务分类的最高工资?

       SELECT dept_id, job_cat, MAX(salary) FROM employees WHERE salary > MAX(salary);  

       SELECT dept_id, job_cat, MAX(salary) FROM employees GROUP BY dept_id, job_cat;  

       SELECT dept_id, job_cat, MAX(salary) FROM employees;  

       SELECT dept_id, job_cat, MAX(salary) FROM employees GROUP BY dept_id;  

       SELECT dept_id, job_cat, MAX(salary) FROM employees GROUP BY dept_id, job_cat, salary;  


      32.  Which initialization parameter must be set to create a control file

       using OMF?



       DB_CREATE_SPFILE  

       DB_CREATE_FILE_DEST  

       DB_CREATE_ONLINE_LOG_DEST_n  

       CONTROL_FILES  

          

      33.  从下面哪个数据字典获得用户创建存储过程的代码?



       USER_PROCEDURES  

       USER_OBJECTS  

       USER_SOURCE  

       DBA_VIEWS  

          

      34.  以下关于索引的说法正确的是?



       创建用索引,总能提高查询的速度  

       创建主键是,总会创建唯一索引  

       索引总会使DML操作变慢  

       即使列上有索引,查询时系统可能不会使用  



          

      35.  执行下面代码后X结果为?

    Declare

    X number :=0;

    Y number;

    Begin

    FOR V_COUNTER in 1 .. 10 LOOP

    X := X + Y;

    END LOOP;

    end;



       10  

       110  

       100  

       NULL





    36.  SELECT中使用以下哪个子句,输出结果不会排序?



       GROUP BY  

       DISTINCT  

       UNION ALL  

       ORDER BY  

          

      37.  以下哪种不是Oracle数据索引类型()



       B*TREE  

       BITMAP  

       FUNCATION  

       CLUSTER  

          

      38.  students结构如下:

    STD_ID  NUMBER(4)

    COURSE_ID  VARCHARD2(10)

    START_DATE  DATE

    END_DATE  DATE

    当前students没有记录,需要增加主键,哪个语句是正确的?



       ALTER TABLE students ADD PRIMARY KEY student_id;  

       ALTER TABLE students ADD CONSTRAINT PRIMARY KEY (student_id);  

       ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY student_id;  

       ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY (student_id);  

       ALTER TABLE students MODIFY CONSTRAINT stud_id_pk PRIMARY KEY (student_id);  

          

      39.  表departments结构如下:DEPARTMENT_ID                             NOT NULL NUMBER(4)

    DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)

    MANAGER_ID                                         NUMBER(6)

    LOCATION_ID                                        NUMBER(4)

    下面哪条命令向departments插入新记录?



       INSERT INTO departments AS SELECT department_id+1, ’HR’,170,17000 from emp WHERE employee_id=111  

       INSERT INTO departments SELECT department_id+1, ’HR’,170,17000 from emp WHERE employee_id=111  

       INSERT INTO departments VALUE (65,‘HR’,1700,1700);  

       INSERT departments VALUES(65,‘HR’,1700,1700);  

          

      40.  Which parameter is used to set up the directory for Oracle to create

       data files, if you do not specify a file name in the DATAFILE clause

       when creating or altering tablespaces?



       DB_FILE_CREATE_DEST  

       DB_CREATE_FILE_DEST  

       DB_8K_CACHE_SIZE  

       USER_DUMP_DEST  

       DB_CREATE_ONLINE_LOG_DEST_1





    41.  Which SQL*Plus command can you use to see whether the database

       is in ARCHIVELOG mode?



       SHOW DB MODE  

       ARCHIVELOG LIST  

       ARCHIVE LOG LIST  

       LIST ARCHIVELOG  

          

      42.  下面的查询,哪一个子句将使查询返回一个出错消息?

      SELECT last_name

      FROM employees

      WHERE salary>

    (SELECT avg(salary)

    FROM employees

    GROUP BY department_id);



       SELECT last_name  

       WHERE salary >  

       SELECT avg(salary)  

       GROUP BY department_id  

          

      43.  在USER_CONSTRAINTS数据字典中“非空”约束标识是?



       C  

       P  

       R  

       F  

          

      44.  Which storage parameter is used to make sure that each extent is a

       multiple of the value specified?



       MINEXTENTS  

       INITIAL  

       MINIMUM EXTENT  

       MAXEXTENTS  

          

      45.  The following are the steps required for relocating a data file belonging

       to the USERS tablespace. Choose the correct order in which the

       steps are to be performed.



    1. Copy the file /disk1/users01.dbf to /disk2/users01.dbf

          using an operating system command.

    2. ALTER DATABASE RENAME FILE ‘/disk1/users01.dbf’ TO ‘/disk2/users01.dbf’

    3. ALTER TABLESPACE USERS OFFLINE

    4. ALTER TABLESPACE USERS ONLINE



       1, 2, 3, 4  

       3, 1, 2, 4  

       3, 2, 1, 4  

       4, 2, 1, 3





    46.  以下对描述正确的是:



       表必须有一个主键  

       表可以有多个主键  

       表可以有多个唯一键  

       必须用外建连接两个表  

          

      47.  对以下语句,描述正确的是:

    SELECT empno,ename,sal FROM emp e WHERE sal >

    (SELECT max(min(sal)) sal FROM emp d WHERE d.mgr=e.empno GROUP BY deptno)



       使用关联单行子查询  

       使用关联多行子查询  

       使用非关联单行子查询  

       使用非关联多行子查询  

          

      48.  下面哪一个不是有效表名



       DeptEE  

       $EE  

       员工信息表  

       “_dept”  

          

      49.  以下说法中正确的是?



       可以创建视图是只读的  

       视图可以基于多个表的连接,并定时更新连接数据  

       视图定义存储在数据字典中  

       视图SELECT可以带输入参数  

          

      50.  下面哪个语句查询年薪在$10,000以上的所有员工姓名?



       SELECT last_name FROM employees WHERE salary * 12 > to_number(‘$10,000’,’$99,999’)  

       SELECT last_name FROM employees WHERE salary * 12 > to_number($10,000,’$99,999’)  

       SELECT last_name FROM employees WHERE salary * 12 > ‘10000’  

       SELECT last_name FROM employees WHERE salary * 12 > 10,000
  • linger_52102 (2008-8-08 09:40:19)

    第一章认识Oracle
    1、创建连接服务器连接字oraser,使用SQL*PLUS连接数据库。
    SQL>CONNECT SCOTT/TIGER@ORASER
    SQL>CONNECT HR/HR@ORASER

    2、在ER模型中以下表示什么关系:


    3、描述下表的之间的关系:COUNTRIES
    DEPARTMENTS
    EMPLOYEES
    JOBS
    JOB_HISTORY
    LOCATIONS
    REGIONS

    .



    第二章 编写基本的SQL SELECT语句
    1、下面语句是否正确执行:
    SELECT last_name, job_id, salary AS Sal
    FROM employees;
    答:
                    True

    SELECT *
    FROM job_grades;
    答:
                    True
    2、指出下面语句的错误:
    SELECT employee_id, last_name
            sal x 12 ANNUAL SALARY
            FROM employees;

    答:
            没有SAL列,SALARY
            *乘法
            列号没有空格,ANNUAL_SALARY 或 “ANNUAL_SALARY”
            last name 与 sal 列之间使用“,”分隔

    3、显示DEPARTMENTS结构并查询所有数据。
    答:
            DESCRIBE departments

    SELECT *
    FROM departments;

    4、显示EMPLOYEES结构,并查询表中单一的JOB结果。


    答:
                    DESCRIBE employees

    SELECT DISTINCT job_id
    FROM employees;



    第三章 限制和排序
    1、查询工资超过12000的职员。
            答:
                    SELECT last_name, salary
    FROM employees
    WHERE salary > 12000;

    2、查询编号为176的职员last name和department id。
            答:
                    SELECT last_name, department_id
    FROM employees
    WHERE employee_id = 176;

    3、查询工资不在5000到12000范围内的职员。
            答:
                    SELECT last_name, salary
    FROM employees
    WHERE salary NOT BETWEEN 5000 AND 12000;

    4、查询没有经理的职员的姓名职务。
            答:
                    SELECT last_name, job_id
    FROM employees
    WHERE manager_id is null;

    5、查询last name中有“a”的职员姓名和工资,工资从高到低排序。
    答:
                    SELECT last_name,salary
    FROM employees
    WHERE last_name like ‘%a%’
    ORDER BY salary desc;
    6、查询所有职员的last name, job, salary ,其职务是Sales representative 或Stock clerk ,并且工资不等于2,500, 3,500, 或 $7,000。以入职的先后顺序排列。

    答:
            SELECT last_name, job_id, salary
    FROM employees
    WHERE job_id IN ('SA_REP', 'ST_CLERK')
    AND salary NOT IN (2500, 3500, 7000)
    ORDER BY hire_date ASC;
  • linger_52102 (2008-8-08 09:42:15)

    第四章 单行函数
    1、显示当前日期,列名为date。
    答:


    SELECT sysdate "Date"

    FROM dual;


    2、显示明天是星期几(星期名)?答:


    SELECT to_char(sysdate+1 ,’Day’)

    FROM dual;
    3、每个职员增加15%工资(四舍五入到整数),列名为new salary。


    答:


    SELECT employee_id, last_name, salary,

    ROUND(salary * 1.15, 0) "New Salary"

    FROM employees;


    5、显示今天生日的职员(用Hire_date代替生日)。

    答:

    SELECT employee_id, last_name, hiredate

    SELECT *

    FROM employees

    WHERE TO_CHAR(hire_date,’mmdd’)=TO_CHAR(sysdate,’mmdd’);



    6、显示职员的commission,没有commission时显示“no commission”。

    答:


    SELECT last_name,

    NVL(TO_CHAR(commission_pct), 'No Commission') COMM

    FROM employees;


    7、对职务进行分类:
    AD_PRES

    A

    ST_MAN
    B

    IT_PROG
    C

    SA_REP
    D

    ST_CLERK

    E



    答:



    SELECT job_id, decode (job_id,

    '
    ST_CLERK', 'E',

    'SA_REP', 'D',

    'IT_PROG', 'C',

    'ST_MAN', 'B',

    'AD_PRES', 'A',

    '0')GRADE

    FROM employees;



    SELECT job_id, CASE job_id

    WHEN 'ST_CLERK' THEN 'E'

    WHEN 'SA_REP' THEN 'D'

    WHEN 'IT_PROG' THEN 'C'

    WHEN 'ST_MAN' THEN 'B'

    WHEN 'AD_PRES' THEN 'A'

    ELSE '0' END GRADE

    FROM employees;


    8、查询入职日期在Feb 20,1998, 和 May 1, 1998,按入职日期从先到后排序。

    答:


    SELECT *

    FROM employees;
    WHERE hire_date BETEEN to_date(‘Feb 20,1998’,’Mon dd,yyyy’,’nls_date_language=american’)
    AND
    to_date(‘May 01,1998’,’Mon dd,yyyy’,’nls_date_language=american’)


    第五章 多表连接

    1、
    显示所有职员的last name, department ID, department name

    答:

    SELECT e.last_name, e.department_id, d.department_name

    FROM employees e, departments d

    WHERE e.department_id = d.department_id(+);


    2、显示department ID 为30的职务和所在地点。


    答:


    SELECT DISTINCT job_id, location_id

    FROM employees, departments

    WHERE employees.department_id = departments.department_id

    AND employees.department_id = 30;


    3、显示在Toronto工作的职员last name, job_id, department ID, department name。

    答:


    SELECT e.last_name, e.job_id, e.department_id,

    d.department_name

    FROM employees e ,departments d, locations l

    WHERE e.department_id = d.department_id

    AND

    d.location_id = l.location_id

    AND

    LOWER(l.city) = 'toronto';

    SELECT e.last_name, e.job_id, e.department_id,

    d.department_name

    FROM employees e JOIN departments d

    ON (e.department_id = d.department_id)

    JOIN locations l

    ON (d.location_id = l.location_id)

    WHERE LOWER(l.city) = 'toronto';


    4、显示每个职员的经理last name(没有经理的职员用null显示)。
    答:


    SELECT w.last_name "Employee", w.employee_id "EMP#",

    NVL(m.last_name,’NULL’) "Manager", m.employee_id "Mgr#"

    FROM employees w ,employees m

    WHERE w.manager_id= m.employee_id(+);

    SELECT w.last_name "Employee", w.employee_id "EMP#",

    m.last_name "Manager", m.employee_id "Mgr#"

    FROM employees w left join employees m

    ON (w.manager_id = m.employee_id);


    5、显示入职比其经理早的职员名单。


    答:

    SELECT w.last_name "Employee", w.employee_id "EMP#",

    m.last_name "Manager", m.employee_id "Mgr#"

    FROM employees w ,employees m

    WHERE w.manager_id = m.employee_id
    AND w.hire_date<m.hire_date;


    第六章 分组统计

    1、显示所有职员的最高、最低、总计和平均工资。

    答:


    SELECT ROUND(MAX(salary),0) "Maximum",

    ROUND(MIN(salary),0) "Minimum",

    ROUND(SUM(salary),0) "Sum",

    ROUND(AVG(salary),0) "Average"

    FROM employees;


    2、每种职务的最高、最低、总计和平均工资。

    答:


    SELECT job_id, ROUND(MAX(salary),0) "Maximum",

    ROUND(MIN(salary),0) "Minimum",

    ROUND(SUM(salary),0) "Sum",

    ROUND(AVG(salary),0) "Average"

    FROM employees

    GROUP BY job_id;


    3、显示经理的人数。
    答:

    SELECT COUNT(DISTINCT manager_id) "Number of Managers"

    FROM employees;


    4、显示工资在5000以上的经理的人数。

    答:


    SELECT COUNT(DISTINCT m.employee_id) "Number of Managers"

    FROM employees w, employees m
    where w.mamager_id=m.employee_id AND
    m.salary>5000;


    5、按经理进行分组,显示最少工资在6000以上的组,按工资由高到低进行排序。


    答:


    SELECT manager_id, MIN(salary)

    FROM employees

    GROUP BY manager_id

    HAVING MIN(salary) > 6000

    ORDER BY MIN(salary) DESC;


    SELECT manager_id, MIN(salary)

    FROM employees

    GROUP BY manager_id

    HAVING MIN(salary) > 6000

    ORDER BY 2 DESC;


    6、以下面格式显示入职时间在1995到1998的职员数。


    答:


    SELECT COUNT(*) total,

    SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1995,1,0))"1995",

    SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1996,1,0))"1996",

    SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1997,1,0))"1997",

    SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1998,1,0))"1998"

    FROM employees;

  • linger_52102 (2008-8-08 09:44:01)

    第七章 子查询
    1、显示与Zlotkey 同一部门的职员,但不包含Zlotkey 。

    答:

    SELECT last_name, hire_date

    FROM employees

    WHERE department_id = (SELECT department_id

    FROM employees

    WHERE last_name = 'Zlotkey')

    AND last_nae <> 'Zlotkey';

    2、显示比所有职员平均工资都高的职员的employee_id和last name。

    答:


    SELECT employee_id, last_name,salary

    FROM employees

    WHERE salary > (SELECT AVG(salary)

    FROM employees);


    3、显示last name, department ID, 和 job ID 部门地点ID location ID是1700。

    答:

    SELECT last_name, department_id, job_id

    FROM employees

    WHERE department_id IN (SELECT department_id

    FROM departments

    WHERE location_id = 1700);

    4、显示Executive部门的department ID, last name, and job ID。

    答:

    SELECT department_id, last_name, job_id

    FROM employees

    WHERE department_id IN (SELECT department_id

    FROM departments

    WHERE department_name = 'Executive');

    5、显示比本部门平均工资高的职员的id和last name。
    答:


    SELECT employee_id, last_name

    FROM employees w

    WHERE salary > (SELECT AVG(salary)

    FROM employees m

    WHERE m.department_id=w.department_id);


    第八章 常用工具1、使用SQL*PLUS以SCOTT/TIGER连接数据库。
    1、
    将emp结构导出至emp_stru.txt文件。

    答:

    SQL>SPOOL emp_stru.txt


    SQL>DESC emp


    SQL>SPOOL OFF

    2、
    将EMP表数据转换为EXCEL的格式emp.xls。

    SQL>SPOOL emp.txt

    SQL>SELECT * FROM emp;


    SQL>SPOOL OFF


    在EXCEL以文本格式打开emp.txt,另存为emp.xls


    4、创建显示SCOTT所有表的结构脚本cal_tab_stru.sql。

    SQL>SPOOL cal_tab_stru.sql
    SQL>SELECT ‘desc ‘||table_name


    FROM user_tables;


    SQL>SPOOL OFF

    SQL>@ cal_tab_rows.sql



    第九章 数据维护1、使用下面语句创建表:

    CREATE TABLE <
    姓名>_employess AS SELECT * FROM employees;

    2、在 <姓名>_employess表上插入如下行,并提交。

    答:

                  CREATE TABLE my_employee

    (id NUMBER(4) CONSTRAINT my_employee_id_nn NOT NULL,

    last_name VARCHAR2(25),

    first_name VARCHAR2(25),

    userid VARCHAR2(8),

    salary NUMBER(9,2));

    INSERT INTO my_employee

    VALUES (1, 'Patel', 'Ralph', 'rpatel', 895);


    3、在 <姓名>_employess表上将工资小于为900的改为1000,并提交。
    答:

           UPDATE my_employee

    SET salary = 1000

    WHERE salary < 900;




    COMMIT;

    3、
    删除<姓名>_employess表中所有新增的记录数据,并提交。

    答:

    DELETE
    my_employee WHERE id IN (1,2,3)


    COMMIT


    4、
    删除<姓名>_employess表中所有记录数据,并回滚。

    答:

    DELETE
    my_employee


    ROLLBACK


    第十章 创建和管理表1、
    创建表sz_<姓名>_dept,并将departments的所有行(department_id,department_name)插入 <姓名>_dept。


    答:

           CREATE TABLE my_dept

    (id NUMBER(7),

    name VARCHAR2(25));

    INSERT INTO my_dept(id,name)

    SELECT department_id,department_name FROM departments;

    CREATE TABLE mydept

    as SELECT department_id “ID”,department_name “NAME”

    FROM departments;

    CREATE TABLE mydept(id,name)

    as SELECT department_id,department_name FROM departments;


    2、
    创建表<姓名>_emp,并将employees的所有行(employee_id, lastname,first_name, deptment_id)插入 <姓名>_emp。


    答:

           INSERT INTO my_dept

    SELECT department_id, department_

    FROM departments;


    3、
    将<姓名>_emp的结构改为以下结构。


    答:

           ALTER TABLE my_emp

    MODIFY (last_name VARCHAR2(50));


    4、
    将<姓名>_emp所有数据复制到<姓名>_emp2。

    答:

    CREATE TABLE my_emp2 AS SELECT * FROM my_emp;

    5、
    将<姓名>_emp2改名为<姓名>_emp_bak,并截断<姓名>_emp_bak。

    答:


    RENAME
    my_emp1 TO my_emp_bak;


    TRUNCATE TABLE my_emp_bak;

  • linger_52102 (2008-8-08 09:45:27)

    第十一章 约束1、
    在<姓名>_emp表上增加主键<姓名>_emp_pk(id)。
    答:


    ALTER TABLE my_emp

    ADD CONSTRAINT my_emp_id_pk PRIMARY KEY (id);


    2、在<姓名>_emp表上增加外健<姓名>_emp_fk (dept_id)参照departments(department_id)。
    答:

    ALTER TABLE my_emp

    ADD CONSTRAINT my_emp_dept_id_fk

    FOREIGN KEY (dept_id) REFERENCES departments(department_id);


    3、<姓名>_emp的last name非空。

    答:

    ALTER TABLE my_emp MODIFY (last_name not null);


    4、在<姓名>_emp增加comm列,创建CHECK约束(comm>=0)。
    答:

    ALTER TABLE my_emp ADD CONSTRAINT my_emp_comm_ck

    CHECK (comm>=0);


    5、使以上的CHECK的约束失效。
    答:

    ALTER TABLE my_emp DISABLE CONSTRAINT my_emp_comm_ck;




    第十二章
    创建视图
    1、创建视图<姓名>_EMPLOYEES_VU 基于表EMPLOYEES 的employee numbers、employee names和department IDs,视图使用以下的列名:

    答:

                  CREATE OR REPLACE VIEW my_employees_vu AS

    SELECT employee_id, last_name employee, department_id

    FROM employees;

    2、在<姓名>_EMPLOYEES_DEPT_VU统计每个部门的人数。


    答:

            select department_id,cunt(*)

    from my_employees_vu

    group by department_id


    3、创建视图<姓名>_SALARY_VU 基于表EMPLOYEES, DEPARTMENTS和JOB_GRADES表,视图包含last names, department names, salaries和salary grades,使用Employee, Department, Salary和Grade列名。
           答:

           CREATE OR REPLACE VIEW my_salary_vu

    AS

    SELECT

    e.last_name "Employee",

    d.department_name "Department",

    e.salary "Salary",

    j.grade_level "Grades"

    FROM
    employees e,

    departments d,

    job_grades j

    WHERE

    e.department_id = d.department_id

    AND

    e.salary BETWEEN j.lowest_sal and j.highest_sal;


    3、查询user_views,获取视图的查询语句。
             答:
                       SELECT * FROM user_views;

    第十三章 其它数据库对象1、
    创建序列号<姓名>_dept_seq用于<姓名>_DEPARTMENTS主键值,序列从200开始最大值不超过1000。
    答:


    CREATE SEQUENCE my_dept_seq

    START WITH 200

    MAXVALUE 1000;


    2、查询user_sequences获得序列号的信息。

    答:

             SELECT sequence_name, increment_by, last_number

    FROM user_sequences

    WHERE sequence_name=’…’;

    SELECT sequence_name, increment_by, last_number

    FROM seq

    WHERE sequence_name=’…’;

    3、<姓名>_employees上的外键(department_id)创建非唯一索引<姓名>_emp_deptid_ind
    答:
             CREATE INDEX my_emp_deptid_ind ON my_employees(department_di);

    4、在<姓名>_employees上创建复合索引,(department_id,manager_id)
    答:
             CREATE INDEX my_emp_dept_mgr_ind
    ON my_employees(department_di,manager_id);

    5、查询user_indexes 获得索引的信息。



    SELECT * FROM user_indexes where table_name=’..’;


    第十四章集合运算

    1、使用集合运算,显示不包含ST_CLERK职务的department ID。

             

    答:



    SELECT department_id

    FROM departments

    MINUS

    SELECT department_id

    FROM employees

    WHERE job_id = 'ST_CLERK';

    2、使用集合运算,列出部门10, 50,和20的job ID和department ID。

    答:

           SELECT job_id, department_id, 'x' dummy

    FROM employees

    WHERE department_id = 10

    UNION ALL

    SELECT job_id, department_id, 'y'

    FROM employees

    WHERE department_id = 50

    UNION ALL

    SELECT job_id, department_id, 'z'

    FROM employees

    WHERE department_id = 20

    ORDER BY 3;

    3、写出复合结果,包含:
    (1)EMPLOYEES的所有职员的last name 和 department id
    (2)DEPARTMENTS的所有部门department id 和department name

    答:

           SELECT last_name,department_id,TO_CHAR(null)

    FROM employees

    UNION

    SELECT TO_CHAR(null),department_id,department_name

    FROM departments;

  • linger_52102 (2008-8-08 09:51:25)

    又一key
    1、PL/SQL概述
    1、PL/SQL程序单元称为什么?由哪几部分组成?每部分的作用是什么?
    答:
            BLOCK
    DECLARE  声明变量、数据类型、游标、异常等
    EXECUTE  程序主体
    EXCEPTION 异常处理
    2、使用PL/SQL编写哪些数据库对象?
    答:PROCEDURE FUNCTION PACKAGE TRIGGER

    2、PL/SQL块

    1、以下声明是否正确,为什么?
    a. DECLARE
    v_id NUMBER(4);
    b. DECLARE
    v_x, v_y, v_z VARCHAR2(10);
    c. DECLARE
    v_birthdate DATE NOT NULL;
    d. DECLARE
    v_in_stock BOOLEAN := 1;
    答: a true b false c false d false
    2、以下语句是否正确?
    a. v_days_to_go := v_due_date - SYSDATE;
    b. v_sender := USER || ’: ’ || TO_CHAR(v_dept_no);
    c. v_sum := $100,000 + $250,000;
    d. v_flag := TRUE;
    e. v_n1 := v_n2 > (2 * v_n3);
    f. v_value := NULL;
    答:a true b true c false d true e true  f true
    3、创建PL/SQL块,在屏幕上输出“My PL/SQL Block Works”

    答:
    SET SERVEROUTPUT ON
    BEGIN
                     DBMS_OUTPUT.PUT_LINE(’My PL/SQL Block Works’);
    END;

    4、PL/SQL块中声明两个变量并进行赋值。
    V_CHAR Character (variable length)
    V_NUM Number

    V_CHAR 值为’42 is the answer’
    V_NUM  值为V_CHAR的长度

    答:
            DECLARE
    V_char varchar2(100);
    V_num number;
            BEGIN
    V_char:=’ 42 is the answer’;
    V_num:=length(v_char);
      END;



    5、计算以上程序后,在指定位置上变量值为:
    a. V_WEIGHT 在位置1是:2
    b. V_NEW_LOCN在位置1是:Western Europe
    c. V_WEIGHT在位置2是:601
    d. V_MESSAGE在位置2是:Product 10012 is in stock
    e. V_NEW_LOCN在位置2是:Illegal because v_new_locn is not visible outside the subblock.
    第三章 数据库操作

    1、创建PL/SQL块,在屏幕上显示DEPARTMENTS中最大的部门编号。

    答:
    VAR g_max_deptno NUMBER
    DECLARE
    v_max_deptno NUMBER;
    BEGIN
    SELECT max(department_id)
    INTO v_max_deptno
    FROM departments;
    _max_deptno := v_max_deptno;
    END;
    /
    print g_max_deptno
    2、插入新部门信息,部门编号为当前最大部门编号上增加10。(使用SQL*PLUS的VAR定义新部门的department_name)
    答:
    VARIABLE dname VARCHAR(20)
    EXEC :dname:=’Education’

    DECLARE
    v_max_deptno departments.department_id%TYPE;
    BEGIN
    SELECT MAX(department_id) + 10
    INTO v_max_deptno
    FROM departments;
    INSERT INTO departments (department_id, department_name,
    location_id)
    VALUES (v_max_deptno, :dname, NULL);
    COMMIT;
    END;

    3、将新增加的部门location_id改为1700。(使用SQL*PLUS的VAR定义新部门的location_id)

    答:
    VAR dept_id NUMBER
    VAR dept_loc NUMBER
    EXEC :dept_id:=280
    EXEC :dept_loc:=1700

    DEFINE p_loc = 1700
    BEGIN
    UPDATE departments
    SET location_id = :dept_id
    WHERE department_id = :dept_loc;
    COMMIT;
    END;

    4、创建新的PL/SQL块,将增加的部门记录删除。(使用SQL*PLUS的VAR定义新部门号编号)。

    答:
    VAR dept_id number
    EXEC :dept_id:=280

    DECLARE
    v_result NUMBER(2);
    BEGIN
    DELETE
    FROM departments
    WHERE department_id = :dept_id;
    v_result := SQL%ROWCOUNT;
    _result := (TO_CHAR(v_result) || ’ row(s) deleted.’);
    COMMIT;
    END;
  • linger_52102 (2008-8-08 09:52:33)

    [size=10.5pt]第四章 流程控制

    [size=10.5pt]

    1、创建表messages (results INT),插入如下记录:[size=10.5pt]
    [size=10.5pt]
    答:[size=10.5pt]

    [size=10.5pt]  [size=10.5pt]CREATE TABLE messages (results VARCHAR2 (60));

    [size=10.5pt]

    [size=10.5pt]BEGIN

    [size=10.5pt]FOR i IN 1..10 LOOP

    [size=10.5pt]IF i = 6 or i = 8 THEN

    [size=10.5pt]null;

    [size=10.5pt]ELSE

    [size=10.5pt]INSERT INTO messages(results) VALUES (i);

    [size=10.5pt]END IF;

    [size=10.5pt]END LOOP;

    [size=10.5pt]

    [size=10.5pt]COMMIT;

    [size=10.5pt]

    [size=10.5pt]END;[size=10.5pt]

    [size=10.5pt]
    [size=10.5pt]
    [size=10.5pt]2[size=10.5pt]、创建[size=10.5pt]PL/SQL[size=10.5pt]块计算职员的奖金:[size=10.5pt][size=10.5pt]a. [size=10.5pt]职员编号由[size=10.5pt]var[size=10.5pt]定义[size=10.5pt][size=10.5pt]b. [size=10.5pt]如果职员的工资小于[size=10.5pt] $5,000[size=10.5pt],奖金为工资的[size=10.5pt]10%[size=10.5pt]c. [size=10.5pt]如果职员的工资在[size=10.5pt] $5,000[size=10.5pt]到[size=10.5pt]$10,000[size=10.5pt],奖金为工资的[size=10.5pt]15%[size=10.5pt]d. [size=10.5pt]如果职员的工资超过[size=10.5pt] $10,000, [size=10.5pt]奖金为工资的[size=10.5pt]20%[size=10.5pt]e. [size=10.5pt]如果职员的工资为空,奖金为[size=10.5pt]0[size=10.5pt]
    [size=10.5pt]
    答:[size=10.5pt]

    [size=10.5pt]VAR v_empno number

    [size=10.5pt]

    [size=10.5pt]DECLARE

    [size=10.5pt]v_sal employees.salary%TYPE;

    [size=10.5pt]v_bonus_per NUMBER(7,2);

    [size=10.5pt]v_bonus NUMBER(7,2);

    [size=10.5pt]BEGIN

    [size=10.5pt]SELECT salary

    [size=10.5pt]INTO v_sal

    [size=10.5pt]FROM employees

    [size=10.5pt]WHERE employee_id = :v_empno;

    [size=10.5pt]IF v_sal < 5000 THEN

    [size=10.5pt]v_bonus_per := .10;

    [size=10.5pt]ELSIF v_sal BETWEEN 5000 and 10000 THEN

    [size=10.5pt]v_bonus_per := .15;

    [size=10.5pt]ELSIF v_sal > 10000 THEN

    [size=10.5pt]v_bonus_per := .20;

    [size=10.5pt]ELSE

    [size=10.5pt]v_bonus_per := 0;

    [size=10.5pt]END IF;

    [size=10.5pt]v_bonus := v_sal * v_bonus_per;

    [size=10.5pt]DBMS_OUTPUT.PUT_LINE (’The bonus for the employee with employee_id ’

    [size=10.5pt]|| v_empno || ’ and salary ’ || v_sal || ’ is ’ || v_bonus);

    [size=10.5pt]END;[size=10.5pt]

    [size=10.5pt]

    [size=10.5pt]第四章 游标

    [size=10.5pt]

    [size=10.5pt]1[size=10.5pt]、使用游标计算指定部门的职员工资的排名(相同的工资具有相同排名),并存储到[size=10.5pt]dept_temp[size=10.5pt]表中,每次插入前删除所有记录:[size=10.5pt]

    [size=10.5pt]

    [size=10.5pt]CREATE TABLE dept_temp

    [size=10.5pt](

    [size=10.5pt]rank

    INT,

    [size=10.5pt]department_id
    NUMBER(4),

    [size=10.5pt]
    last_name

    VARCHAR2(25),

    [size=10.5pt]
    job_id

    VARCHAR2(10),

    [size=10.5pt]salary

    NUMBER(8,2)

    [size=10.5pt])

    [size=10.5pt]
    [size=10.5pt]rank department_id job_id salary
    [size=10.5pt]----
    ------------
    ------
    -----
    [size=10.5pt]
    [size=10.5pt]1
    Russell


    SA_MAN
    14000
    2
    Partners


    SA_MAN
    13500
    3
    Errazuriz


    SA_MAN
    12000
    4
    Ozer


    SA_REP
    11500
    5
    Cambrault


    SA_MAN
    11000
    5
    Abel

    SA_REP
    11000
    7
    Zlotkey

    SA_MAN
    10500
    7
    Vishney


    SA_REP
    10500


    [size=10.5pt]答:[size=10.5pt]

    DECLARE

    CURSOR emp_cur(d NUMBER) IS

    SELECT last_name, job_id, salary

    FROM employees

    WHERE department_id = d

    ORDER BY salary DESC;

    v_prv_sal employees.salary%TYPE;

    v_ord
    INT :=
    0;

    v_dup
    INT :=
    0;
    BEGIN

    DELETE dept_temp;

    FOR a IN emp_cur(:v_dept) LOOP

    IF a.salary = v_prv_sal THEN

    v_dup := v_dup +
    1;

    ELSE

    v_ord := v_ord + v_dup +
    1;

    v_dup :=
    0;

    END IF;

    INSERT INTO dept_temp

    (rank, last_name, job_id, salary)

    VALUES

    (v_ord, a.last_name, a.job_id, a.salary);

    v_prv_sal := a.salary;

    END LOOP;

    COMMIT
    END;
    [size=10.5pt]

    [size=10.5pt]

    DECLARE

    CURSOR emp_cur(d NUMBER) IS

    SELECT rank() over(ORDER BY salary DESC) r, last_name, job_id, salary

    FROM employees

    WHERE department_id = d

    ORDER BY salary DESC;
    BEGIN

    FOR a IN emp_cur(:v_dept) LOOP

    INSERT INTO dept_temp

    (rank, last_name, job_id, salary)

    VALUES

    (a.r, a.last_name, a.job_id, a.salary);

    END LOOP;

    COMMIT
    END;

    [size=10.5pt]2[size=10.5pt]、使用嵌套游标显示每个部门的职员名单:[size=10.5pt]

    10:Administration

    WhalenAD_ASST
    20:Marketing

    HartsteinMK_MAN

    FayMK_REP
    30urchasing

    RaphaelyPU_MAN

    KhooPU_CLERK

    BaidaPU_CLERK

    TobiasPU_CLERK

    HimuroPU_CLERK

    ColmenaresPU_CLERK

    [size=10.5pt]

    答:[size=10.5pt]

    DECLARE

    CURSOR dept_cur IS

    SELECT department_id, department_name FROM departments ORDER BY
    1;

    CURSOR emp_cur(d NUMBER) IS

    SELECT last_name, job_id FROM employees WHERE department_id = d;
    BEGIN

    FOR a IN dept_cur LOOP

    dbms_output.put_line(a.department_id ||
    ':' || a.department_name);

    FOR b IN emp_cur(a.department_id) LOOP

    dbms_output.put_line(b.last_name || b.job_id);

    END LOOP;

    END LOOP;
    END;

    [size=10.5pt]

    [size=10.5pt]2[size=10.5pt]、创建[size=10.5pt]PL/SQL[size=10.5pt]块[size=10.5pt], [size=10.5pt]提高工资在[size=10.5pt]3000[size=10.5pt]以上且职务为[size=10.5pt]’SR_CLERK’[size=10.5pt]的职员的工资[size=10.5pt]10%[size=10.5pt]。要求:使用[size=10.5pt]FOR UPDATE[size=10.5pt]和[size=10.5pt]CURRENT OF[size=10.5pt]的语法。[size=10.5pt]

    [size=10.5pt]

    答:[size=10.5pt]

    [size=10.5pt] DECLARE

    CURSOR emp_cur IS

    SELECT salary

    FROM employees

    WHERE salary >
    3000

    AND job_id =
    'SR_CLERK'

    FOR UPDATE;
    BEGIN

    FOR a IN emp_cur LOOP


    UPDATE employees SET salary = salary *
    1.1 WHERE CURRENT OF emp_cur;

    END LOOP;

    COMMIT;
    END;
    [size=10.5pt]


    [size=10.5pt]

  • linger_52102 (2008-8-08 09:53:27)

    第六章 异常处理

    1、编写PL/SQL块,查询职员的last name 和salary:
    a.        使用var定义输入的salary;
    b.        如果没有找匹配salary,则显示“No employee with a salary of <salary>.”;
    c.        如果只返回一行,将记录插入到MESSAGES表中,记录包括last_name和salary;
    d.        其它错误的,则显示“Some other error occurred.”;
    e.        MESSAGE表如下:

    答:
    VAR emp_sal NUMBER
    EXEC :emp_sal:=6000

    DECLARE
    v_ename employees.last_name%TYPE;
    v_sal employees.salary%TYPE := :emp_sal;
    BEGIN
    SELECT last_name
    INTO v_ename
    FROM employees
    WHERE salary = v_sal;
    INSERT INTO messages (results)
    VALUES (v_ename || ’ - ’ || v_sal);
    EXCEPTION
    WHEN no_data_found THEN
    INSERT INTO messages (results)
    VALUES (’No employee with a salary of ’|| TO_CHAR(v_sal));
    WHEN too_many_rows THEN
    INSERT INTO messages (results)
    VALUES (’More than one employee with a salary of ’||
    TO_CHAR(v_sal));
    WHEN others THEN
    INSERT INTO messages (results)
    VALUES (’Some other error occurred.’);
    END;

    2、创建PL/SQL块,在指定的工资范围(salary-100,salary+100)查找员工的数目,要求:
    a 使用var定义v_salar,指定查询工资
    b 使用var定义g_message, 用于存储输出信息变量
    c 定义以下异常情况
    e_no_emp_returned:当没有找到员工时,将字串“There is no employee salary between <v_sal-100> and <v_sal+100>”赋给g_message;
    e_more_than_one_emp: 当找到员工数目多于一个时,将字串“There is/are <number of emp> between <v_sal-100> and <v_sal+100>” 赋给g_message;
                   other:其它异常时将“Some other error occurred.” 赋给g_message;
    答:
    VARIABLE g_message VARCHAR2(100)
    VARIABLE v_sal number
    EXEC :v_sal:=7000

    DECLARE
    v_sal employees.salary%TYPE := :v_sal;
    v_low_sal employees.salary%TYPE := v_sal - 100;
    v_high_sal employees.salary%TYPE := v_sal + 100;
    v_no_emp NUMBER(7);
    e_no_emp_returned EXCEPTION;
    e_more_than_one_emp EXCEPTION;
    BEGIN
    SELECT count(last_name)
    INTO v_no_emp
    FROM employees
    where salary between v_low_sal and v_high_sal;
    IF v_no_emp = 0 THEN
    RAISE e_no_emp_returned;
    ELSIF v_no_emp > 0 THEN
    RAISE e_more_than_one_emp;
    END IF;
    EXCEPTION
    WHEN e_no_emp_returned THEN
    _message := ’There is no employee salary between ’||
    TO_CHAR(v_low_sal) || ’ and ’||
    TO_CHAR(v_high_sal);
    WHEN e_more_than_one_emp THEN
    _message := ’There is/are ’|| TO_CHAR(v_no_emp) ||
    ’ employee(s) with a salary between ’||
    TO_CHAR(v_low_sal) || ’ and ’||
    TO_CHAR(v_high_sal);
    WHEN others THEN
    _message := ’Some other error occurred.’;
    END;
    /

    第七章 编写数据库子程序
    1、创建add_job存储过程,向jobs增加新的职务。Job_id和job_title由参数据输入。使用存储过程add_job增加以下职务:
                            ’IT_DBA’, ’Database Administrator’
                            ’ST_MAN’, ’Stock Manager’

    答:
            CREATE OR REPLACE PROCEDURE add_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE)
    IS
    BEGIN
    INSERT INTO jobs (job_id, job_title)
    VALUES (p_jobid, p_jobtitle);
    COMMIT;
    END add_job;


    EXECUTE add_job (’IT_DBA’, ’Database Administrator’)
    EXECUTE add_job (’ST_MAN’, ’Stock Manager’)

    2、创建存储过程upd_job更新职务。Job_id和job_title由参数据输入,如果找不到指定的职务,则终断程序的运行返回ora-20202:’No job updated.’错误; 使用存储过程upd_job更改以下职务:
                            ’IT_DBA’, ’Data Administrator’

                            ’IT_WEB’, ’Web Master’


    答:
    CREATE OR REPLACE PROCEDURE upd_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE)
    IS
    BEGIN
    UPDATE jobs
    SET job_title = p_jobtitle
    WHERE job_id = p_jobid;
    IF SQL%NOTFOUND THEN
    RAISE_APPLICATION_ERROR(-20202,’No job updated.’);
    END IF;
    END upd_job;


    3、创建存储过程del_job删除职务。Job_id参数据输入,如果找不到指定的职务,则终断程序的运行返回ORA-20203,’No jobs deleted.’错误; 使用存储过程upd_job删除以下职务:’IT_DBA’

    答:
    CREATE OR REPLACE PROCEDURE del_job
    (p_jobid IN jobs.job_id%TYPE)
    IS
    BEGIN
    DELETE FROM jobs
    WHERE job_id = p_jobid;
    IF SQL%NOTFOUND THEN
    RAISE_APPLICATION_ERROR(-20203,’No jobs deleted.’);
    END IF;
    END DEL_JOB;

    4、创建存储过程query_emp,查询指定employee_id的salary和job_id。Employee_id由参数指定,使用输出参数返回查到的salary和job_id。使用query_emp查询employee_id=300的工资和职务。

    答:
      CREATE OR REPLACE PROCEDURE query_emp
    (p_empid IN employees.employee_id%TYPE,
    p_sal OUT employees.salary%TYPE,
    p_job OUT employees.job_id%TYPE)
    IS
    BEGIN
    SELECT salary, job_id
    INTO p_sal, p_job
    FROM employees
    WHERE employee_id = p_empid;
    END query_emp;


    VARIABLE g_sal NUMBER
    VARIABLE g_job VARCHAR2(15)
    EXECUTE query_emp (120, _sal, _job)
    PRINT g_sal
    PRINT g_job

    5、创建函数返回job_title,job_id由参数输入。

    答:
            CREATE OR REPLACE FUNCTION q_job
    (p_jobid IN jobs.job_id%TYPE)
    RETURN VARCHAR2
    IS
    v_jobtitle jobs.job_title%TYPE;
    BEGIN
    SELECT job_title
    INTO v_jobtitle
    FROM jobs
    WHERE job_id = p_jobid;
    RETURN (v_jobtitle);
    END q_job;

    6、创建函数ANNUAL_COMP,计算佣金:
       公式:(sal*12) + (commission_pct*salary*12)

    答:
            CREATE OR REPLACE FUNCTION annual_comp
    (p_sal IN employees.salary%TYPE,
    p_comm IN employees.commission_pct%TYPE)
    RETURN NUMBER
    IS
    BEGIN
    RETURN (NVL(p_sal,0) * 12 + (NVL(p_comm,0)* p_sal * 12));
    END annual_comp;
    /


      
    7、创建包job_pkg包含:
                    PROCEDURE ADD_JOB
                    PROCEDURE UPD_JOB
                    PROCEDURE DEL_JOB
                    FUNCTION Q_JOB

    答:
            CREATE OR REPLACE PACKAGE job_pack IS
    PROCEDURE add_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE);
    PROCEDURE upd_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE);
    PROCEDURE del_job
    (p_jobid IN jobs.job_id%TYPE);
    FUNCTION q_job
    (p_jobid IN jobs.job_id%TYPE)
    RETURN VARCHAR2;
    END job_pack;
    /
    CREATE OR REPLACE PACKAGE BODY job_pack IS
    PROCEDURE add_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE)
    IS
    BEGIN
    INSERT INTO jobs (job_id, job_title)
    VALUES (p_jobid, p_jobtitle);
    END add_job;
    PROCEDURE upd_job
    (p_jobid IN jobs.job_id%TYPE,
    p_jobtitle IN jobs.job_title%TYPE)
    IS
    BEGIN
    UPDATE jobs
    SET job_title = p_jobtitle
    WHERE job_id = p_jobid;
    IF SQL%NOTFOUND THEN
    RAISE_APPLICATION_ERROR(-20202,’No job updated.’);
    END IF;
    END upd_job;
    PROCEDURE del_job
    (p_jobid IN jobs.job_id%TYPE)
    IS
    BEGIN
    DELETE FROM jobs
    WHERE job_id = p_jobid;
    IF SQL%NOTFOUND THEN
    RAISE_APPLICATION_ERROR (-20203,’No job deleted.’);
    END IF;
    END del_job;
    FUNCTION q_job
    (p_jobid IN jobs.job_id%TYPE)
    RETURN VARCHAR2
    IS
    v_jobtitle jobs.job_title%TYPE;
    BEGIN
    SELECT job_title
    INTO v_jobtitle
    FROM jobs
    WHERE job_id = p_jobid;
    RETURN (v_jobtitle);
    END q_job;
    END job_pack;
    /

    8、创建触发器check_sal,当新salar小于旧的salary时终断执行并返回-20002,’Salary may not be reduced’错误。

    答:
    CREATE OR REPLACE TRIGGER check_sal
    BEFORE UPDATE OF salary ON employees
    FOR EACH ROW
    WHEN (NEW.salary < OLD.salary)
    BEGIN
    RAISE_APPLICATION_ERROR(-20002,’Salary may not be reduced’);
    END check_sal;
  • linger_52102 (2008-8-08 09:55:57)

    第一章        PL/SQL概述

    1、PL/SQL程序单元称为什么?由哪几部分组成?每部分的作用是什么?


    2、使用PL/SQL编写哪些数据库对象?


    第二章        PL/SQL块

    1、以下声明不正确,为什么?

    a. DECLARE
    v_id NUMBER(4);
    b. DECLARE
    v_x, v_y, v_z VARCHAR2(10);
    c. DECLARE
    v_birthdate DATE NOT NULL;
    d. DECLARE
    v_in_stock BOOLEAN := 1;


    2、以下语句是否正确?
    a. v_days_to_go := v_due_date - SYSDATE;
    b. v_sender := USER || ’: ’ || TO_CHAR(v_dept_no);
    c. v_sum := $100,000 + $250,000;
    d. v_flag := TRUE;
    e. v_n1 := v_n2 > (2 * v_n3);
    f. v_value := NULL;




    3、创建PL/SQL块,在屏幕上输出“My PL/SQL Block Works”



    4、PL/SQL块中声明两个变量并进行赋值。
    V_CHAR Character (variable length)
    V_NUM Number

    V_CHAR 值为’42 is the answer’
    V_NUM  值为V_CHAR的长度





    5、计算以上程序后,在指定位置上变量值为:
    a. V_WEIGHT 在位置1是:
    b. V_NEW_LOCN在位置1是:
    c. V_WEIGHT在位置2是:
    d. V_MESSAGE在位置2是:
    e. V_NEW_LOCN在位置2是:




    第三章 数据库操作

    1、创建PL/SQL块,在屏幕上显示DEPARTMENTS中最大的部门编号。


    2、插入新部门信息程序,部门编号为当前最大部门编号上增加10。(使用SQL*PLUS的VAR定义新部门的department_name)

      
    3、将新增加的部门location_id改为1700。(使用SQL*PLUS的VAR定义新部门的location_id)



    4、创建新的PL/SQL块,将增加的部门记录删除。(使用SQL*PLUS的VAR定义新部门号编号)。
  • linger_52102 (2008-8-08 09:56:40)

    第四章 流程控制

    1、创建表messages (results INT),插入如下记录:




    2、创建PL/SQL块计算职员的奖金:
    a. 职员编号由var定义
    b. 如果职员的工资小于 $5,000,奖金为工资的10%
    c. 如果职员的工资在 $5,000到$10,000,奖金为工资的15%
    d. 如果职员的工资超过 $10,000, 奖金为工资的20%
    e. 如果职员的工资为空,奖金为0




    第四章 游标

    1、使用游标计算指定部门的职员工资的排名(相同的工资具有相同排名),并存储到dept_temp表中,每次插入前删除所有记录:

    CREATE TABLE dept_temp
    (
    rank                                  INT,
    department_id  NUMBER(4),
    last_name                   VARCHAR2(25),
    job_id                          VARCHAR2(10),
    salary                          NUMBER(8,2)
    )

    rank department_id job_id salary
    ----        ------------        ------        -----
    1         Russell                     SA_MAN         14000
    2        Partners                     SA_MAN         13500
    3       Errazuriz                   SA_MAN         12000
    4            Ozer                    SA_REP         11500
    5       Cambrault         SA_MAN         11000
    5            Abel          SA_REP         11000
    7         Zlotkey         SA_MAN         10500
    7         Vishney         SA_REP         10500


    2、使用嵌套游标显示每个部门的职员名单:

    10:Administration
    WhalenAD_ASST
    20:Marketing
    HartsteinMK_MAN
    FayMK_REP
    30urchasing
    RaphaelyPU_MAN
    KhooPU_CLERK
    BaidaPU_CLERK
    TobiasPU_CLERK
    HimuroPU_CLERK
    ColmenaresPU_CLERK

    2、创建PL/SQL块, 提高工资在3000以上且职务为’SR_CLERK’的职员的工资10%。要求:使用FOR UPDATE和CURRENT OF的语法。





    第六章 异常处理

    1、编写PL/SQL块,查询职员的last name 和salary:
    a.        使用var定义输入的salary;
    b.        如果没有找匹配salary,则显示“No employee with a salary of <salary>.”;
    c.        如果只返回一行,将记录插入到MESSAGES表中,记录包括last_name和salary;
    d.        其它错误的,则显示“Some other error occurred.”;
    e.        MESSAGE表如下:


    2、创建PL/SQL块,在指定的工资范围(salary-100,salary+100)查找员工的数目,要求:
    a 使用var定义v_salar,指定查询工资
    b 使用var定义g_message, 用于存储输出信息变量
    c 定义以下异常情况
            e_no_emp_returned:
    当没有找到员工时,将字串“There is no employee salary between <v_sal-100> and <v_sal+100>”赋给g_message;
            e_more_than_one_emp:
    当找到员工数目多于一个时,将字串“There is/are <number of emp> between <v_sal-100> and <v_sal+100>” 赋给g_message;
            other:
    其它异常时将“Some other error occurred.” 赋给g_message;


    第七章 编写数据库子程序
    1、创建add_job存储过程,向jobs增加新的职务。Job_id和job_title由参数据输入。使用存储过程add_job增加以下职务:
                            ’IT_DBA’, ’Database Administrator’
                            ’ST_MAN’, ’Stock Manager’

    2、创建存储过程upd_job更新职务。Job_id和job_title由参数据输入,如果找不到指定的职务,则终断程序的运行返回ora-20202:’No job updated.’错误; 使用存储过程upd_job更改以下职务:
                            ’IT_DBA’, ’Data Administrator’

                            ’IT_WEB’, ’Web Master’
    3、创建存储过程del_job删除职务。Job_id参数据输入,如果找不到指定的职务,则终断程序的运行返回ORA-20203,’No jobs deleted.’错误; 使用存储过程upd_job删除以下职务:’IT_DBA’
    4、创建存储过程query_emp,查询指定employee_id的salary和job_id。Employee_id由参数指定,使用输出参数返回查到的salary和job_id。使用query_emp查询employee_id=300的工资和职务。

    5、创建函数返回job_title,job_id由参数输入。

    6、创建函数ANNUAL_COMP,计算佣金:
       公式:(sal*12) + (commission_pct*salary*12)

    7、创建包job_pkg包含:
                    PROCEDURE ADD_JOB
                    PROCEDURE UPD_JOB
                    PROCEDURE DEL_JOB
                    FUNCTION Q_JOB

    8、创建触发器check_sal,当新salar小于旧的salary时终断执行并返回-20002,’Salary may not be reduced’错误。
  • linger_52102 (2008-8-08 14:52:49)

    创建表orders如下:

    CREATE TABLE orders (

    SER_NO NUMBER UNIQUE,

    ORDER_ID NUMBER,

    ORDER_DATE DATE NOT NULL

    STATUS VARCHARD2(10) CHECK (status IN ( ‘CREDIT’, ‘CASH’)),

    PROD_ID_NUMBER REFERENCES PRODUCTS(PRODUCT_ID),

    ORD_TOTAL NUMBER PRIMARY KEY (order_id, order_date));



    创建哪些列索引(选择二项)



          

       SER_NO  

       ORDER_ID  

       STATUS  

       PROD_ID  

       ORD_TOTAL  

       ORDER_ID ,ORDER_DATE 复合索引  



    Choose two space management parameters used to control the free

       space usage in a data block.

      

          

       PCTINCREASE  

       PCTFREE  

       PCTALLOCATED  

       PCTUSED



    Which NLS parameter can be specified only as an environment variable?



       NLS_LANGUAGE  

       NLS_LANG  

       NLS_TERRITORY  

       NLS_SORT  

    When you multiplex the control file, how many control files can you

       have for one database?



       Four  

       Eight  

       Twelve  

       Unlimited

    Which statement allows specifying the parameters PCTFREE and PCTUSED?



       CREATE TABLE  

       ALTER INDEX  

       ALTER TABLESPACE  

       All the above

    Which data dictionary view would you query to see the temporary

       segments in a database?



       DBA_SEGMENTS  

       V$SORT_SEGMENT  

       DBA_TEMP_SEGMENTS  

       DBA_TABLESPACES

    Which command do you use to collect statistics for a table?



       ALTER TABLE <TABLE_NAME> COMPUTE STATISTICS  

       ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS  

       ALTER TABLE <TABLE_NAME> COLLECT STATISTICS  

       ANALYZE TABLE <TABLE_NAME> COLLECT STATISTICS  

    Which initialization parameter must be set to create a control file

       using OMF?



       DB_CREATE_SPFILE  

       DB_CREATE_FILE_DEST  

       DB_CREATE_ONLINE_LOG_DEST_n  

       CONTROL_FILES

    [ 本帖最后由 linger_52102 于 2008-8-8 14:55 编辑 ]
  • linger_52102 (2008-8-13 13:40:49)

    Java摸底考试
    1.  Which of the following are Java keywords?
       
       goto  
       malloc  
       extends  
       FALSE  
          
      2.  谈谈final, finally, finalize的区别,说法正确的是:

       final 用于声明属性,方法和类,分别表示属性不可变,注意:如果是基本类型说明变 量本身不能改变,如果是引用类型,说明它不能指向其他的对象了。但对象还是可以改变 的。方法不可覆盖,类不可继承。  
       finally是异常处理语句结构的一部分,表示无论是否出现异常总是执行。  
       finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。  
          
      3.  接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类答(concrete class)? 说法正确的是:
      
       接口可以继承接口。  
       接口间继承(extends),不能实现(implements)。  
       抽象类可以实现(implements)接口,但接口不能实现抽象类。  
       抽象类之间可以用继承(extends)  
          
      4.  Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

       Math.round(11.5)=12  
       Math.round(11.5)=11  
       Math.round(-11.5)==-11  
       Math.round(-11.5)==-12  
          
      5.  Which of the following are acceptable to the Java compiler:

       if (2 == 3) System.out.println("Hi");  
       if (2 = 3) System.out.println("Hi");  
       if (true) System.out.println("Hi");  
       if (2 != 3) System.out.println("Hi");  
       if (aString.equals("hello")) System.out.println("Hi");

    6.  Which of the following do not lead to a runtime error?

       "john" + " was " + " here"  
       "john" + 3  
       3 + 5  
       5 + 5.5  
          
      7.  Which methods can be legally applied to a string object?

       equals(String)  
       equals(Object)  
       trim()  
       round()  
       toString()  
          
      8.  String是最基本的数据类型吗? String 和StringBuffer的区别?

       String不是一最基本的数据类型。  
       String的长度是不可变的  
       StringBuffer的长度是可变的。  
          
      9.  public class MethodOver{public void setVar(int a, int b, float c){}}which overload the setVar?

       private void setVar(int a, float c, int b){}  
       protected void setVar(int a, int b, float c){}  
       public int setVar(int a, float c, int b){return a;}  
       public int setVar(int a, float c){return a;}  
          
      10.  which three are valid declaraction of a float?

       float foo=-1;  
       float foo=1.0;  
       float foo=42e1;  
       float foo=2.02f;  
       float foo=3.03d;  
       float foo=0x0123;
    11.  给我一个你最常见到的runtime exception。

       IndexOutOfBoundsException 数组越界  
       NullPointerException 空指针异常  
       SystemException 系统异常  
       RemoteException  //io exception
          
      12.  GC是什么? 为什么要有GC?

       GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,  
       Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的  
       Java语言没有提供释放已分配内存的显示操作方法。  
          
      13.  数组转换问题。下面正确的语句是:

       Object[] object = new Person[2];  
       Person [] person = new Person [3];  
       person = (Person [])object;  
       int[] i = new int[2];  
       long[] l = new int[3];  
       i = (long[])l;  
          
      14.  Which of the following return true?

       "john" == "john"  //--------------
       "john".equals("john")  
       "john" = "john"  
       "john".equals(new Button("john"))  
          
      15.  &和&&的区别, 说法正确的是:
          
       &是位运算符,表示按位与运算  
       &&是逻辑运算符,表示逻辑与(and)
    -----------------------------------------------------------------------------------
    以下是单选题
       
      16.  short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

       short s1 = 1; s1 = s1 + 1; 有错short s1 = 1; s1 += 1;没有错  
       short s1 = 1; s1 = s1 + 1; 没有错short s1 = 1; s1 += 1;没有错  
       short s1 = 1; s1 = s1 + 1; 没有错short s1 = 1; s1 += 1;有错  
       short s1 = 1; s1 = s1 + 1; 有错short s1 = 1; s1 += 1;有错  
          
      17.  java有没有goto语句?

       没有  
       有  
          
      18.  给出下列代码,如何使成员变量m 被方法fun()直接访问?
        class Test
        {
        private int m;
        public static void fun()
        {
        ...
        }
        }

       将private int m 改为protected int m  
       将private int m 改为 public int m  
       将private int m 改为 static int m  
       将private int m 改为 int m  
          
      19.  下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?

       private  
       无修饰符  
       public  
       protected  
          
      20.  if(-0.0 == 0.0)是相等还是不等?

       相等  
       不相等
    21.  当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?


       值传递  
       引用传递  
       Integer可以把String转换成int。  
          
      22.  说出一些常用的类,接口,请各举5个,下面哪个是正确


       常用类-System,ArrayList,FileInputStream,Thread, Collection.  
       常用接口-Connection, Cloneable, Comparable, Serializable  
          
      23.  What will be the result of compiling the following code:
     
    public class Test {
    public static void main (String args []) {
    int age;
    age = age + 1;
    System.out.println("The age is " + age);
    }
    }


       Compiles and runs with no output  
       Compiles and runs printing out The age is 1  
       Compiles but generates a runtime error  
       Does not compile  
       Compiles but generates a compile time error  
          
      24.  integer和long 操作 /和% 的话, 可能会抛出ArithmeticException,比如除0。但是 float与 double不会,即使是除以0。


       正确  
       错误  
          
      25.  选择语句case中,允许使用的值有哪些?


       int  
       int,short  
       int,short,char  
       int,short,char,byte

    [ 本帖最后由 linger_52102 于 2008-8-13 13:45 编辑 ]
  • linger_52102 (2008-8-13 13:42:26)

    26.  初始化了一个没有run()方法的线程类,是否会出错?


       会  
       不会  
          
      27.  List, Set, Map是否继承自Collection接口?


       List,Set是。Map不是  
       List,Set不是。Map是  
       List是。Map,Set不是  
       List, Map,Set是  
          
      28.  What is the correct declaration of an abstract method that is intended to be public:


       public abstract void add();  
       public abstract void add() {}  
       public abstract add();  
       public virtual add();  
          
      29.  给出下列代码,则数组初始化中哪项是不正确的?
        byte[] array1,array2[];
        byte array3[][];
        byte [][] array4;


       array2 = array1  
       ?array2=array3  
       ?array2=array4  
       ??array3=array4  
          
      30.  Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?


       可以  
       不可以
    31.  Which of the following is correct:


       String temp [] = new String {"j" "a" "z"};  
       String temp [] = { "j " " b" "c"};  
       String temp = {"a", "b", "c"};  
       String temp [] = {"a", "b", "c"};  
          
      32.  class Child extends Parents{}
         class Parents{}
        是否可以这样声明类,在一个文件中?


       可以  
       不可以  
          
      33.  给出下列的代码,哪行在编译时可能会有错误?
        ①  public void modify(){
        ②    int i, j, k;
        ③    i = 100;
        ④    while ( i > 0 ){
        ⑤      j = i * 2;
        ⑥      System.out.println (" The value of j is " + j );
        ⑦      k = k + 1;
        ⑧    }
        ⑨  }


       line 4  
       line 6  
       line 7  
       line 8  
          
      34.  Set里的元素能重复吗?


       可以  
       不可以  
          
      35.  关于Java成员变量默认初始化的值。
    成员变量类型默认初始化取值
    化的值。


       正确  
       错误
    36.  下列关于继承的哪项叙述是正确的?


       在java中允许多重继承  
       在java中一个类只能实现一个接口  
       在java中一个类不能同时继承一个类和实现一个接口  
       java的单一继承使代码更可靠  
          
      37.  Under what situations do you obtain a default constructor?


       When you define any class  
       When the class has no other constructors  
       When you define at least one constructor  
          
      38.  方法名是否可以与构造器的名字相同?


       可以  
       不可以  
          
      39.  在try-catch-final块中的退出语句。
                  public class Test {
                       public static void main(String[] args){
                              int a=1;
                              try {
                                   a=a/0;
                              }catch(Exception e){
                                    System.out.println("catch");
                                    return;
                              }finally{
                                    System.out.println("finally");
                              }
                       }
                  }
    控制台显示为:


       catch  
       finally  
       catch  
          
      40.  已知有下列类的说明,则下列哪个语句是正确的?
        public class Test
        {
        private float f = 1.0f;
        int m = 12;
        static int n=1;
        public static void main(String arg[])
        {
        Test t = new Test();
        }
        }


       t.f;  
       this.n;  
       Test.m  
       Test.f;
    41.  abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?


       都不能。  
       都能。  
       可同时是static, 不可同时是native,可同时是synchronized?  
       不可同时是static, 不可同时是native,可同时是synchronized?  
       可同时是static,可同时是native,不可同时是synchronized?  
          
      42.  What is the legal range of a byte integral type?


       0 - 65, 535  
       (–128) – 127  
       (–32,768) – 32,767  
       (–256) – 255  
          
      43.  Math,String可不可继承?


       可以  
       不可以  
          
      44.  数组有没有length()这个方法? String有没有length()这个方法?说法正确的是:


       数组有length()这个方法,String有length()这个方法。  
       数组没有length()这个方法,String没有length()这个方法。  
       数组没有length()这个方法,String有length()这个方法。  
       数组有length()这个方法,String没有length()这个方法。  
          
      45.  What does the zeroth element of the string array passed to the public static void main method contain?


       The name of the program  
       The number of arguments  
       The first argument if one is present  
         
    46.  What is the correct ordering for the import, class and package declarations when found in a single file?


       package, import, class  
       class, import, package  
       import, package, class  
       package, class, import  
          
      47.  运行时异常与一般异常有何异同? java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。


       正确  
       错误  
          
      48.  What will be the result of compiling the following code:
     
    public class Test {
    static int age;
    public static void main (String args []) {
    age = age + 1;
    System.out.println("The age is " + age);
    }
    }


       Compiles and runs with no output  
       Compiles and runs printing out The age is 1  
       Compiles but generates a runtime error  
       Does not compile  
       Compiles but generates a compile time error  
          
      49.  同一个文件里是否可以有两个public类?


       能  
       不能  
          
      50.  Which of the following is illegal:


       A. int i = 32;  
       float f = 45.0;  
       double d = 45.0;