Oracle数据库基础阶段测试题

1.Oracle系统结构中,Oracle服务分为(OracleDatabase)和(OracleInstance)。
2.Oracle Database必需的三种文件为( 数据文件(datafile))、(控制文件(controlfile))、(日志文件(logfile))。
3.Oracle的内存结构包括两类,分别(系统全局区(SGA))、(程序全局区(PGA))。
4.SQL的中文含义为(结构化查询语言)。
5.写出SQL语言的分类,及每一类下的常用命令
数据查询语言(DQL)select ...from ...where
数据操纵语言(DML)inert update delete
数据定义语言(DDL)create alter drop
数据控制语言(DCL)grant revoke commit rollback savepoint
6.请写出启动Oracle服务及监听器的DOS命令。
Net start oracleserviceYC101
Lsnrctl start
7.请写出在SQL*PLUS中保存当前缓存中语句的命令为。(保存到C盘,文件名为hr.sql)
Save c:/hr.sql (‘/' 可以不加)
8.描述Departments表结构命令。
Desc departments
9.请写出6种以上Oracle常用数据类型。
Char, varchar, nchar, varchar2, number, long, date -------常用的类型
10.创建一个新帐号MOON,赋予CREATE SESSION与RESOURCE权限,登录到MOON模式,创建部门表(编号,名称)。
首先切换到sys账号,然后创建用户
Conn sys/password as sysdba
Create user MOON identified by MOON;
Grant create session,resource to MOON;
Conn MOON/MOON
Cerate table department
(
Depertment_id char(10) primary key,
Department_name varchar(20) not null
)
11.使用SELECT语句显示当前系统时间,显示格式为如:2009-03-25 20:13:43
Select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss') from dual;
12.查询2005年1月1日到今天相隔的月数及天数,要求显示整数。
MONTHS DAYS
---------- - ---------
50 1544
select trunc(months_between(
sysdate,to_date('2005-1-1','YYYY-MM-DD'))) MONTHS,
trunc(sysdate-to_date(‘2005-1-1','YYYY-MM-DD')) DAYS
from dual
13.查询下一个星期一的日期。
select sysdate,next_day(sysdate,'星期一') from dual
14.查询hr.employees表,将first_name与last_name连接在一起显示,查询结果必须是小写字母。
如:
renske ladwig
james landry
select lower(concat(first_name||' '||last_namr)) FULLNAME,
from employees;
15.在HR.Emplloyees表中,找出所有First_name中含义'S'字母的员工。
select * from employees where first_name like '%S%'
16.查询HR.Employees表中月薪大于5000元的员工信息,要求薪水显示货币符号,并用逗号分隔。如$100,000.00
select to_char(salary,'$999,999.00') from employees
where salary >5000
17.显示当前会话参数,并将当前会话地区修改为AMERICA。
Select * from V$nls_parameters;
Alter session set nls_territory=' AMERICA'
18.年终时,对于所有销售有关人员发放奖金,其中销售管理人员额度为薪水*佣金*0.15,销售代表额度为薪水*佣金*0.1,最后求所有员工的实发工资,并按降序排列。提示:销售相关人员的实发工资为月薪+佣金+奖金。
select last_name,
salary,
job_id,
CASE job_id WHEN 'SA_REP' THEN salary*COMMISSION_PCT *0.1*12+salary*12+salary*COMMISSION_PCT*12
WHEN 'SA_MAN' THEN salary*COMMISSION_PCT*12 *0.15+salary*12+salary*COMMISSION_PCT*12
ELSE salary*12
END "total_salary"
FROM employees
ORDER By salary desc
19.在当前时间上加2小时。
select to_char(sysdate+(1/24)*2,'yyyy-mm-dd hh24:mi:ss') from dual
20.求HR.Employees表中所有员工分配的部门数。提示:可以使用DISTINCT
1>select count(distinct(department_id))
from employees
2>select count(distinct department_id)
from employees
21.求HR.Employees中各个部门的平均工资。
select department_id, avg(salary) from employees group by(department_id)
22.查询HR.Employees表,使用CASE...WHEN...THEN...END语句,把SALAY分为高工资(>8000)、中等工资[5000,8000]及低工资(<5000)。
select salary,
case when salary>8000 then '高工资'
when salary between 5000 and 8000 then '中等工资'
when salary<5000 then '低工资'
end salary
from employees
23.查询最高工资人员基本信息。提示:可使用子查询
select * from employees
where salary=
(select max(salary) from employees)
24.下面是BI帐号及其状态,请对BI解锁,设置新密码,并切换到BI帐号,查询所有用户表。(BI EXPIRED & LOCKED)
首先切换到sys账号,然后创建用户
Conn sys/password as sysdba
Alter user BI account unlock;
Password BI:BI
Conn BI/BI
Select * from dba_tables;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章