Oracle基础三
一、简单查询
1.编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现
- 查询员工表与部门表的笛卡尔积
- 在上述操作的基础上完成连接的选择操作和投影操作
- 对查询数据进行排序操作
set pagesize 66;
set linesize 160;
select * from emp;
2.编写查询语句,完成对员工信息、部门情况等的基本查询
prompt 查询工资超过2500的员工基本信息
select *
from emp
where sal>2500;
prompt 查询月总收入超过2500的员工基本信息
select *
from emp
where (sal+nvl(comm,0))>2500;
prompt 查询工资超过2500的员工的姓名及其所在部门名称
select ename, dname, sal
from emp, dept
where emp.deptno=dept.deptno and (sal+0)>2500;
prompt 查询所有员工的工资、奖金、总收入,并按部门编号排序。
select sal, comm, (sal+nvl(comm,0)) 总收入
from emp
order by deptno;
prompt 查询全公司的平均工资、最高工资、最低工资和总奖金数。
select AVG(sal) 平均工资,
MAX(sal) 最高工资,
MIN(sal) 最低工资,
SUM(comm) 总奖金数
from emp;
二、分组查询
- 编写分组查询语句,理解分组查询的意义
- 编写分组查询语句,实现分组查询的应用
prompt 查询各部门的平均工资、最高工资、最低工资和总奖金数。
select dept.deptno,
dname,
AVG(sal) 平均工资,
MAX(sal) 最高工资,
MIN(sal) 最低工资,
SUM(nvl(comm,0)) 总奖金数
from emp,dept
where emp.deptno=dept.deptno
group by dept.deptno,dname;
三、增删改语句
prompt 添加数据********************
insert into dept values(50,'INFORMATION','SHANGHAI');
insert into dept (deptno,dname,loc)values(60,'TECHNOLOGY','LOUDI');
insert into dept (deptno,dname,loc)values(70,null,'SHANGHAI');
select * from dept;
select deptno, nvl(dname,'待定' ) dname,loc from dept order by deptno;
prompt 删除数据********************
delete
from dept
where loc='SHANGHAI';
select * from dept;
prompt 修改数据********************
update dept set loc='BOSTON' where loc='CHICAGO';
select * from dept;
rollback;