oracle练习及答案(2)

2019-01-19 10:28

面的格式 total 30 1995 3 1996 4 1997 6 1998 7 SELECT COUNT(*) total, SUM(DECODE(TO_CHAR(hiredate, 'YYYY'),1995,1,0))\SUM(DECODE(TO_CHAR(hiredate, 'YYYY'),1996,1,0))\SUM(DECODE(TO_CHAR(hiredate, 'YYYY'),1997,1,0))\SUM(DECODE(TO_CHAR(hiredate, 'YYYY'),1998,1,0))\FROM emp; 测试五

1. 显示所有员工的姓名,部门号和部门名称。 SELECT e.ename, e.deptno, d.dname FROM emp e, dept d

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

2. 查询20号部门员工的job和20号部门的loc SELECT DISTINCT e.job, d.loc FROM emp e, dept d WHERE d.deptno = d.deptno AND e.deptno = 20;

3. 选择所有有奖金的员工的ename , dname , loc

SELECT e.ename, d.dname, d.loc FROM emp e, dept d WHERE e.deptno = d.deptno AND

e.comm IS NOT NULL

4. 选择在NEW YORK工作的员工的ename , job , deptno , dname

Select e.ename , e.job , d.deptno , d.dname From emp e , dept d Where e.deptno = d.deptno And d.loc =‘NEW YORK'

5. 选择所有员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式 employees Emp# manager Mgr# SCOTT w.empno \7788 JONES 7566 select e.ename\\\from emp e,emp w where e.mgr = w.empno(+)

测试六

1. 查询和FORD相同部门的员工姓名和雇用日期 select ename,hiredate,deptno from emp

where deptno=(select deptno from emp where ename='FORD' ) and ename<>'FORD'

2. 查询工资比公司平均工资高的员工的员工号,姓名和工资。

select empno,ename,sal from emp where sal > (select avg(sal)from emp )

3. 查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名 select empno, ename from emp where deptno IN (select deptno

from emp

where ename like '%u%');

4. 查询在部门的loc为CHICAGO的部门工作的员工的员工号,deptno和job

select empno,emp.deptno,job from emp,dept where emp.deptno=dept.deptno and dept.loc ='CHICAGO' 5. 查询管理者是king的员工姓名和工资 select ename,sal from emp

where mgr=(select empno from emp where lower(ename)='king')

测试七(答案无)

1. 创建一张表,表名为student,属性有id 主键,stuno varchar2(20)学号 唯一,

name varchar2(20),sex 只能是男或女 ,password 长度为6-20,sal number(7,2)。 2. 显示表student的结构 3. 向表中插入数据

4. 提交

5. 将3号员工的name修改为king 6. 将所有工资少于1000的修改成2000. 7. 检查所作的修正 8. 提交

9. 删除所有数据 10. 检查所作的修正 11. 回滚

12. 清空表student表

测试八

1. 创建表departments name id name

CREATE TABLE departments (id NUMBER(7), name VARCHAR2(25));

2. 将表dept中的数据插入表departments中 INSERT INTO departments SELECT deptno, dname FROM dept;

3. 创建表employees name id First_name Last_name Dept_id CREATE TABLE employees (id NUMBER(7),

last_name VARCHAR2(25), first_name VARCHAR2(25), dept_id NUMBER(7));

type Number(7) Varchar2(25) Varchar2(25) Number(7) type Number(7) Varchar2(25) 4. 将列Last_name的长度增加到50 ALTER TABLE employees

MODIFY (last_name VARCHAR2(50));

5. 查询数据字典视图user_tables检查刚才的操作 SELECT *

FROM user_tables

WHERE table_name IN ('DEPARTMENTS', 'EMPLOYEES'); 6. 将表employees重命名为employees1

RENAME employees TO employees1;

7. 在表departments和employees中添加新列test_column,并检查所作的操作

alter table employees add(test_column varchar2(50)); alter table departments add(test_column varchar2(50));

8. 在表departments和employees中将列test_column设置成不可用,之后删除

alter table employees set unused(test_column); alter table departments set unused(test_column); 9. 直接删除表employees中的列dept_id

alter table employees drop column dept_id;

10. 给表employees加注释“employees information” Comment on table employees is ' employees information ';

测试九

1. 使用表employees创建视图employee_vu,其中包括姓名(EMPLOYEE),员

工号(EMPLOYEE_ID),部门号(DEPARTMENT_ID). CREATE OR REPLACE VIEW employees_vu AS

SELECT employee_id, last_name employee, department_id FROM employees; 2. 显示视图的结构 desc employees_vu

3. 查询数据字典视图user_views,检查视图的定义 SELECT view_name, text FROM user_views;

4. 查询视图中的全部内容 SELECT * FROM employees_vu;

5. 将视图中的数据限定在部门号是80的范围内 CREATE VIEW dept80 AS

SELECT id empno, last_name employee, Dept_id deptno FROM employees WHERE id = 80

WITH CHECK OPTION CONSTRAINT emp_dept_80; 6. 将视图改变成只读视图

CREATE OR REPLACE VIEW dept80 AS

SELECT employee_id empno, last_name employee, department_id deptno FROM employees

WHERE department_id = 80 WITH READ ONLY;

测试十

7. 如果用户能过登陆到数据库,至少需要哪种权限?是系统权限还是对象权限

CREATE SESSION 系统权限 8. 创建表需要哪种权限

CREATE TABLE

9. 将表departments的查询权限分配给用户system

GRANT select ON departments TO system;

10. 从system处收回刚才赋予的权限。

Revoke select ON departments from system;

11. 创建角色dvp,并将权限赋予该角色

CREATE PROCEDURE CREATE SESSION

CREATE TABLE CREATE SEQUENCE CREATE VIEW

CREATE ROLE dvp; Grant CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW To dvp;


oracle练习及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于中国能否走美国式、西欧式资本主义道路的思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: