【作业4】基本查询语句


-- 一、简单查询

set pagesize 99
set linesize 160

/**

编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现

查询员工表与部门表的笛卡尔积

在上述操作的基础上完成连接的选择操作和投影操作

  对查询数据进行排序操作**/

prompt Descartes
select empno,ename,dname
from emp,dept
where emp.deptno=dept.deptno
order by empno;

--选择:进行条件筛选,投影:显示数据;

--order by 排序

/**编写查询语句,完成对员工信息、部门情况等的基本查询**/

--查询工资超过2500的员工基本信息

 select * from emp where sal>2500;

--查询月总收入超过2500的员工基本信息

select * from emp,dept
 where ((sal>2500)or(sal+comm>2500))and emp.deptno=dept.deptno;

--or

select empno,ename,sal+nvl(comm,0) incoming
 from emp
 where sal>2500 
 order by incoming desc,ename asc;

--查询工资超过2500的员工的姓名及其所在部门名称

 select ename,dname from emp,dept where sal>2500 and emp.deptno=dept.deptno;

--查询所有员工的工资、奖金、总收入,并按部门编号排序

select dept.deptno,dname,sal,comm,(sal+comm) 
from emp,dept 
where emp.deptno=dept.deptno
order by dept.deptno;

--查询全公司的平均工资、最高工资、最低工资和总奖金数。

select AVG(sal),max(sal),min(sal),sum(comm)
from emp,dept
where emp.deptno=dept.deptno;

--二、分组查询

--编写分组查询语句,理解分组查询的意义,实现分组查询的应用

select deptno,max(empno),sum(sal) /*用了group by后select 中只能出现聚合函数或group by的字段*/ from emp
 group by deptno
 order by deptno;

--应用为按部门号分组查询最大的员工号和奖金总和

--三、增删改语句

--添加数据(Two ways)

insert into emp values(1111,'text','text',null,'01-01-01','110',null,null);
insert into emp(empno,job,ename,sal) values (1111,'Teacher','text','110');

--删除数据(注意外键)

delete from emp where empno=1111;
delete from emp where deptno=1111;

--修改数据

update emp set sal=110 where empno=1111;
update emp set (sal=110 comm=1110) where empno=1111;
update emp set deptno=10 where deptno=11;

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - 【作业4】基本查询语句


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.