实验一。
练习1、请查询表dept中所有部门的情况。
select * from dept;
练习2、查询表dept中的部门号、部门名称两个字段的所有信息。
select deptno,dname from dept;
练习3、请从表emp中查询10号部门工作的雇员姓名和工资。
select ename,sal from emp where deptno=10;
练习4、请从表emp中查找工种是职员clerk或经理manager的雇员姓名、工资。
select ename,sal from emp where job='clerk' or job='manager';
练习5、请在emp表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;
练习6、请从表emp中查找姓名以j开头所有雇员的姓名、工资、职位。
select ename,sal,job from emp where ename like 'j%';
练习7、请从表emp中查找工资低于 2000的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;
练习8、请从表中查询工作是clerk的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal, from emp,dept where and job=’clerk’;
练习9、查询表emp中所有的工资大于等于2000的雇员姓名和他的经理的名字。
select from emp a,emp b where and >=2000;
select 员工, 经理。
from emp a left join emp b on
where >=2000;
练习10、在表emp中查询所有工资高于jones的所有雇员姓名、工作和工资。
select ename,job,sal from emp where sal>(select sal from emp where ename=’jones’);
练习11、列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。
select ename,job,deptno from emp where deptno not in (select deptno from dept);
练习12、查找工资在1000~3000之间的雇员所在部门的所有人员信息。
select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);
select
练习13、雇员中谁的工资最高。
select ename from emp where sal=(select max(sal) from emp);
select ename from (select * from emp order by sal desc) where rownum<=1;
练习14、雇员中谁的工资第二高(考虑并列第一的情况,如何处理)。
select ename from (select ename ,sal from (select * from emp order by sal desc) where rownum<=2 order by sal) where rownum<=1;
实验二。1. 查询所有雇员的姓名、sal与comm之和。
select ename,sal+nvl(comm,0) “sal-and-comm” from emp;
2. 查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字。
select ename,sal,dname from emp,dept where and hiredate<=to_date(‘1981-07-01’,’yyyy-mm-dd’);
3. 查询各部门中81年1 月1日以后来的员工数。
select deptno,count(*)from emp where hiredate>=to_date(‘1981-01-01’,’yyyy-mm-dd’) group by deptno;
4. 查询所有在chicago工作的经理manager和销售员salesman的姓名、工资。
select ename,sal from emp where (job=’manager’ or job=’sales’) and deptno in (select deptno from dept where loc=’chicago’);
5. 查询列出来公司就职时间超过24年的员工名单。
select ename from emp where hiredate<=add_months(sysdate,-288);
6. 查询于81年来公司所有员工的总收入(sal和comm)
select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,’yyyy’)=1981’;
7. 查询显示每个雇员加入公司的准确时间,按×××年 ××月××日时分秒显示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
8. 查询公司中按年份月份统计各地的录用职工数量。
select to_char(hiredate,'yyyy-mm'),loc,count(*)from emp,dept
where group by to_char(hiredate,'yyyy-mm'),loc;
9. 查询列出各部门的部门名和部门经理名字。
select dname,ename from emp,dept where and job=’manager’;
10. 查询部门平均工资最高的部门名称和最低的部门名称。
select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by **g(sal) )where rownum<=1)
union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by **g(sal) desc ) where rownum<=1);
11. *查询与雇员号为7521员工的最接近的在其后进入公司的员工姓名及其所在部门名。
select ename,dname
from (select ename,deptno from
(select ename,deptno from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1) e,dept
where
实验三、1. 建立一个表(表名自定),表结构与emp相同,没有任何记录。
create table my_emp as select * from emp;
2. 用insert语句输入5条记录,并提交。
3. 扩大该表的记录数到约40条,并使雇员号不重复;每个雇员都有所属部门,雇员在同一部门的经理是同一人。
insert ….
update …
commit
4. 建立一个与dept表结构和记录完全相同的新表,并与前项新表建立参照完整性约束。
alter table my_dept add( constraint s1 primary key(deptno));
alter table my_emp add(constraint s2 foreign key(deptno) references dept(deptno));
5. 对在‘new york’工作的雇员加工资,每人加200。
6. *如果雇员姓名与部门名称中有一个或一个以上相同的字母,则该雇员的comm增加 500。
update my_emp a
set comm=nvl(comm,0)+500
where <>
select translate(
from my_dept b where
与 必须有主外键连接,否则可能出错,为什么?
commit;
7. 删除部门号为30的记录,并删除该部门的所有成员。
delete from emp where deptno=30;
delete from dept where deptno=30;
commit
8. 新增列性别sex,字符型。
alter table emp add(sex char(2));
9. 修改新雇员表中的mgr列,为字符型。
练习题 附答案
1 国际通用的植物命名法是?双名法。2 温度对植物的影响?温度是限制植物生长和分布的主导因子,温度对植物的生长发育的影响主要是通过对植物体内的光合作用,呼吸作用,蒸腾作用等各种生理活动的影响而实现的。3 水分对植物的影响?植物对营养物质的吸收和运输以及光合作用,呼吸,蒸腾作用等生理作用都必须在水的参...
oracle练习题还有答案哈
先创建下面三个表 book表 borrow表 reader表 附录 建表语句。创建图书管理库的图书 读者和借阅三个基本表的表结构 创建book 图书表 create table book book id number 10 sort varchar2 10 book name varchar2 50...
Oracle练习题讲解
一 填空。1 在多进程oracle实例系统中,进程分为用户进程 后台进程和服务进程。2.标准的sql语言语句类型可以分为 数据定义语句 ddl 数据操纵语句 dml 和数据控制语句 dcl 3.在需要滤除查询结果中重复的行时,必须使用关键字distinct 在需要返回查询结果中的所有行时,可以使用关...