目录
查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数
在部门表中添加一个部门,编号为50,名称为 TRAIN 地点在 LOUDI
1. (论述题) 数据库SQL语言基础编程
实验目的:
掌握数据库查询语句的编写方法
掌握利用查询语言完成基本查询
掌握利用SQL语句完成数据的添加、删除、修改操作
实验内容:
一、简单查询
编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现
查询员工表与部门表的笛卡尔积
笛卡尔积:Select *from table1,table2; ----表示显示了全部表一和表二的共有的同名不同值的表
代码:
prompt 笛卡尔积
select * from emp,dept;
在上述操作的基础上完成连接的选择操作和投影操作
选择操作
select 字段列表
from 表名
where 筛选条件;---解决了两个表中同名不同值的列
代码:
select * from emp,dept where emp.deptno=dept.deptno;
投影:
Select 字段列表 from 表名; -----选择的是全部或部分列
代码:
select *from emp,dept;
对查询数据进行排序操作
升序排列:
Select 字段列表 from 表 order by 部分字段列表或全部字段列表;----部分进行升序排序
降序排序:
Select 字段列表 from 表 order by 部分字段列表或全部字段列表 desc;----部分进行降序排序
代码:
select emp.*,dept.dname,dept.loc
from emp,dept
where emp.deptno=dept.deptno
order by hiredate desc;
编写查询语句,完成对员工信息、部门情况等的基本查询
代码:
select * from emp;
查询工资超过2500的员工基本信息
代码:
select* from emp
where sal>2500;
查询月总收入超过2500的员工基本信息
代码:
select * from emp
where sal+comm>2500;
查询工资超过2500的员工的姓名及其所在部门名称
代码:
select ename ,dname
from emp,dept
where emp.deptno=dept.deptno
and sal>2500;
查询所有员工的工资、奖金、总收入,并按部门编号排序
代码:
select sal,comm,sal+nvl(comm,0)
from emp
where 1=1
order by deptno;
查询全公司的平均工资、最高工资、最低工资和总奖金数。
代码:
select AVG(SAL) 平均工资,
MAX(sal) 最高工资,
MIN(sal) 最低工资,
SUM(nvl(comm,0)) 总奖金
from emp;
二、分组查询
编写分组查询语句,理解分组查询的意义
分组查询是按照一定的规则进行分组,分组以后数据会聚合,需要使用聚合函数,但是使用聚合函数不一定要分组,分组的关键字是group by。
-聚合函数
count() ---统计
sum() ---求和
max() ---最大值
min() ---最小值
avg() ---平均值
round() ---四舍五入函数
例子:select max(age) from student group by sex;----分男女最大年龄
编写分组查询语句,实现分组查询的应用
代码:
select MAX(sal) from emp group by ename;
查询各部门的平均工资和最高月收入和总资金数
代码:
select
round(AVG(emp.sal),2) as 平均工资,
max(emp.sal) as 最大工资,
min(emp.sal) as 最小工资,
sum(emp.comm) as 总资金
from emp;
查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数
三、增删改语句
添加数据
在部门表中添加一个部门,编号为50,名称为 TRAIN 地点在 LOUDI
代码:
insert into dept
values (50,'TRAIN','LOUDI');
修改数据
将刚才添加了部门的编号修改为80
代码:
update dept
set deptno =80
where deptno=50;
删除数据
删除刚才添加了部门
代码:
delete from dept
where deptno=80;
感谢观看