首页 > 数据库 >sql练习

sql练习

时间:2023-10-23 10:08:28浏览次数:30  
标签:name employees 练习 employee sql department id select

11.查询公司管理者与员工的信息

查询公司管理者

select last_name
from employees
where employee_id in(
                   select manager_id
                   from employees
                   -- where manager_id is not null
                  );

查询公司员工

select last_name
from employees
where employee_id  not in(
                   select manager_id
                   from employees
                   where manager_id is not null
                  );

12.查询员工中工资大于本部门平均工资的员工的last_name,salary和department_id

(相关子查询)

select last_name,salary,department_id
from employees e1
where salary >(
               select avg(salary)
               from employees e2
               where e1.department_id=e2.department_id
              );
方式2

在form中声明子查询

select e.last_name,e.salary,e.department_id
from employees e,(
                  select department_id,avg(salary) avg_sal
                  from employees
                  group by department_id) t_dept_avg_sal
where e.department_id=t_dept_avg_sal.department_id
and e.salary>t_dept_avg_sal.avg_sal;

13.查询员工的id,salary,按照department_name排序

select e.employee_id,e.salary
from employees  e 
order by(
        select department_name
        from  departments  d
                where e.department_id=d.department_id
       ) asc;

14.若employees表中employee_id与job_history表中employee_id相同的数目不小于2,输出这些相同id的员工的employee_id,last_name和其job_id

select employee_id,last_name,job_id
from employees e
where 2<=(
         select count(*)
         from job_history j
         where e.employee_id=j.employee_id
         );

15.查询公司管理者的employee_id,last_name,job_id,department_id信息

select distinct mgr.employee_id,mgr.last_name,mgr.job_id,mgr.department_id
from employees emp join employees mgr
on emp.manager_id=mgr.employee_id;

方式2:子查询 先查出管理者manager_id,

select employee_id,last_name,job_id,department_id
from employees
where employee_id in (
                                      select distinct manager_id
                    from employees 
                                    );

方式3:使用exists

select employee_id,last_name,job_id,department_id
from employees e1
where exists(
             select *
                         from employees e2
                         where e1.employee_id=e2.manager_id
                         );


标签:name,employees,练习,employee,sql,department,id,select
From: https://blog.51cto.com/u_16049762/7982977

相关文章

  • Excel 生成 MS SQL 插入脚本
    背景:有1份Excel表内有一字段是中英文混合(前部分中文+后部分英文),现需要拆分中文和英文,并按记录条数插入到数据库中。关键功能点:1、一个字符串拆分为中文和英文。2、去除字符串前后空格。3、去除换行符。4、生成MSSQLINSERT脚本。Excel的每行数据对应一条插入脚本。方案一:1、......
  • mysql导入.cvs
    workbench新建1张表,没有import按钮,原因是没有设置主键将一个字段设置为主键后,即可导入数据将要导入的数据文件改为utf-8的格式,使用记事本打开查看选择文件选择数据库表查看字段与数据是否对应开始导入......
  • 每日随笔——软考上午题练习
    今天,我开始练习软考的上午的选择题型。对于上午题的练习可以注册希赛网,根据每天的小练来进行练习。 ......
  • mysql case when then else 语法
    update`badges`set`cat_point`=CASEWHENlevel>=1THENPOW(2,`level`-1)ELSE0ENDwherenamenotlike'%Steam%'; if level>=1:  cat_point=POW(2,`level`-1)else:  cat_point=0......
  • MYSQL语句
    MySQL常用基础语句cmd登录mysql-hlocalhost-uroot-pSHOW语句返回可用数据库列表showdatabases;返回当前选择数据库内可用表的列表showtables;显示表中的所有列(xxx:表名)showcolumnsfromxxx;ordescribexxx;显示服务器状态信息showstatus;显示创建特定......
  • 得到sqlite的数据条数的代码
    https://blog.csdn.net/weixin_35754962/article/details/129060944importsqlite3conn=sqlite3.connect('example.db')cursor=conn.cursor()#查询数据条数cursor.execute("SELECTCOUNT(*)FROMtable_name")count=cursor.fetchone()[0]pri......
  • PgSQL
    altertabletable_namealtercolumncolumn_namenew_typeCREATETABLEpublic.t2(idserialprimarykey,namecharactervarying(40)NOTNULL,authorcharactervarying(40)NOTNULL,commentcharactervarying(40)NOTNULL,contentchar......
  • MYSQL
    什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,......
  • oracle查询执行过sql语句
    一、oracle中查找某段时间执行的操作记录selectsql_text,module,first_load_timefromv$sqlareawherefirst_load_time>'2019-02-02/02:02:02'andfirst_load_time<'2019-02-02/02:02:02'orderbyfirst_load_time二、查看某一时间的执行过的所有sqlselect......
  • MySQL分享
    本次分享主要涉及InnoDB如何在磁盘上保存数据InnoDB表空间结构:介绍了InnoDB表文件中的一些组件,比如段、区、页、行记录。除了告诉你怎样存之外,更重要的是希望解释为什么要这样索引页结构:数据以及索引都存在于索引页中,介绍索引页如何组织,当数据删除、更新时会发生啥索引分裂、......