oracle测试试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例1】创建一个名为IT_EMPLOYEES的表,它由编号EMPLOYEE_ID、名
FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY和部门经理编号MANAGER_ID八个属性组成。
create table IT_EMPLOYEES
(
EMPLOYEE_ID NUMBER(6) not null unique,
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25) not null,
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR(20),
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
MANAGER_ID NUMBER(6)
);
【例2】建立程序员的视图PROG_EMPLOYEES(JOB_ID=’IT_PROG’),其中隐含了视图的列名.
create view prog_employees
as
select employee_id,first_name,last_name,email,phone_number,salary,manager_id from it_employees
where job_id = 'IT_PROG';
【例3】执行下面的CREATE INDEX语句,创建索引:
CREATE INDEX IT_LASTNAME ON IT_EMPLOYEES(LAST_NAME);
【例4】将前文创建的视图PROG_EMPLOYEES删除.
DROP VIEW PROG_EMPLOYEES;
【例5】向IT_EMPLOYEES表中增加“雇员生日”列,其数据类型为日期型:ALTER TABLE IT_EMPLOYEES ADD BIRTHDATE DATE;
【例6】将IT_EMPLOYEES表的MANAGER_ID字段改为8位:
ALTER TABLE IT_EMPLOYEES MODIFY MANAGER_ID NUMBER(8);
【例7】删除IT_EMPLOYEES表EMPLOYEE_ID字段的UNIQUE约束:
ALTER TABLE IT_EMPLOYEES DROP UNIQUE(EMPLOYEE_ID);
【例8】创建表COUNTRIES时的列顺序为:COUNTRY_ID、COUNTRY_NAME、REGION_ID。
通过SELECT指定列,可以改变列的顺序。
SELECT REGION_ID,COUNTRY_NAME FROM COUNTRIES;
【例9】对employees表中薪金的调整,所有人员的薪金增加10%:
select employee_id,first_name,last_name,salary*(1+0.1) from employees;
【例10】在EMPLOYEES表中包含一个DEPARTMENT_ID列。假设,现在要检索该表中出现的所有部门,这时我们不希望有重复的部门出现,这时需要在DEPART MENT_ID列前面加上关键字DISTINCT。
select distinct department_id from employees;
【例11】编写一个查询,判断所FIRST_NAME列以"B"开头的雇员:
select employee_id,first name,last_name from employees
Where first_name like'B%';
【例12】查询出所有属于IT部门(DEPARTMENT_ID=60),并且薪金值大于2000的雇员。
select employee_id,first_name,last_name,salary from employees
where department_id=60 and salary>2000;
【例13】在下面的查询中,将选择具有不同部门的雇员信息:
select employee_id,ftrst name,last_name,department_id from employees
where department_id=60 or department_id=30;
【例14】使用EMPLOYEES进行NULL值的插入和查询:
insert into departments(department_id,department_name,manager_id)
values(300,'数据库',NULL);
【例15】下面的查询语句中,将使用ORDER BY子句对检索到的数据进行排序,该排列顺序是按照薪金从低到高的升序进行的:
select employee_id,first_name,last_name,salary
from employees
where salary>2000
order by salary;
【例16】以下的查询中,从EMPLOYEES表中选择相应的列,分析JOB_ID的SALARY 信息。
select job_id,salary from employees order by job_id;
【例17】使用GROUP BY子句对薪金记录进行分组,对于使用一些SQL函数计算每个JOB_ID的平均薪金(AVG)、所有薪金的总和(SUM),以及最高薪金(MAX)和各组的行数,如图3.16所示。
select job_id,avg(salary),sum(salary),max(salary),count(job_id) from employees group by job_id;