数据库的增删改查

本文展示了如何使用SQL查询从员工和部门表中获取特定信息,包括部门30的员工详情、经理信息、奖金高于工资的员工、特定部门的职位筛选、特定条件的员工组合查询、无奖金或低奖金员工、特定长度姓名的员工、入职时间的筛选、排序查询以及统计分析如平均工资、部门员工数量和职位工资范围等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库单表查询:

company数据库:
    |--dept:部门表
        |--`deptno` 部门编号
        |--`dname`  部门名称
        |--`loc`    部门所在地址
  

    |--employees:员工表
        |--`empno`    员工编号
        |--`ename`    员工姓名
        |--`job`    工作
        |--`MGR`    上级领导
        |--`hiredate`   入职日期
        |--`sal`    薪资
        |--`comm`       将金
        |--`deptno`     部门编号

/*
    1. 查询出部门编号为30的所有员工
    2. 所有经理的姓名、编号和部门编号。
    3. 找出奖金高于工资的员工。
    4. 找出奖金高于工资60%的员工。
    5. 找出部门编号为10中所有经理,和部门编号为20中所有分析员的详细资料。
    6. 找出部门编号为10中所有经理,部门编号为20中所有分析员,还有即不是经理又不是武装上将但其工资大或等于3000的所有员工详细资料。
    7. 无奖金或奖金低于1000的员工。
    8. 查询名字由三个字组成的员工。
    9. 查询2000年以及以后入职的员工。
    10. 查询所有员工详细信息,用编号升序排序
    11. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序
    12. 查询每个部门的平均工资
    13. 查询每个部门的雇员数量。
    14. 查询每种工作的最高工资、最低工资、人数
*/

-- 1. 查询出部门编号为30的所有员工
SELECT *
FROM t_employees
WHERE  deptno=30


-- 2. 所有经理的姓名、编号和部门编号。
SELECT empno,ename,deptno
FROM t_employees
WHERE  job="经理" 

-- 3. 找出奖金高于工资的员工。
SELECT *
FROM t_employees
WHERE  comm > sal  


-- 4. 找出奖金高于工资60%的员工。
SELECT *
FROM t_employees
WHERE  comm > sal*0.6  

-- 5. 找出部门编号为10中所有经理,和部门编号为20中所有分析员的详细资料。
SELECT *
FROM t_employees
WHERE  job="经理" AND deptno=10
OR job="分析员" AND deptno=20


-- 6. 找出部门编号为10中所有经理,部门编号为20中所有分析员,
-- 还有即不是经理又不是武装上将但其工资大或等于3000的所有员工详细资料。

SELECT *
FROM t_employees
WHERE 
(job="经理" AND deptno=10)
OR (job="分析员" AND deptno=20)
OR(job NOT IN("经理","武装上将"))
AND sal >= 3000


-- 7.无奖金或奖金低于1000的员工。
SELECT *
FROM t_employees
WHERE comm = 0.0 OR comm IS NULL OR comm<1000;

-- 8. 查询名字由三个字组成的员工。
SELECT *
FROM t_employees
WHERE ename LIKE "___"

-- 9. 查询2000年以及以后入职的员工。
SELECT *
FROM t_employees
WHERE hiredate > 20000101

-- 10. 查询所有员工详细信息,用编号升序排序
SELECT *
FROM t_employees
ORDER BY empno ASC

-- 11. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序
SELECT *
FROM t_employees
ORDER BY sal DESC,hiredate ASC

--  12.查询每个部门的平均工资
SELECT `deptno`,AVG(sal)
FROM t_employees
GROUP BY `deptno`

-- 13 查询每个部门的雇员数量
SELECT deptno,COUNT(*)
FROM t_employees
GROUP BY `deptno`


-- 14. 查询每种工作的最高工资、最低工资、人数
SELECT deptno,MAX(sal),MIN(sal),COUNT("renshu")
FROM t_employees
GROUP BY `deptno`

部分函数说明:

sum为求和函数,将要求和的列sum(列名)

avg为求平均值函数,将要求平均值的列avg(列名)

nvl为如果未空则置空值为其他数据的函数,nvl(为空的列,将空值置成的其他值)

round为四舍五入函数,round(列名,保留小数位数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值