抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

【作业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;

0条评论

发表评论