Advertisement

牛客网SQL必刷题目汇总

阅读量:

牛客网SQL必刷题目汇总

  • 更新数据信息
  • 去除重复项,并保留具有最小id的数据记录
  • 执行SQL34以实现批量执行数据插入操作
  • 合并员工姓名信息
  • 请求返回薪水排名第二高的员工的基本资料
  • 调用SQL11获取当前所有员工各自的负责人信息
  • 列出所有员工的基本信息及其所属部门名称,并确保完整显示包括暂时未分配部门的情况
  • 使用join连接来筛选出未被分类的电影编号及标题
  • 利用子查询检索属于Action类别中的电影及其描述内容
  • 执行SQL9以完成批量插入操作

更新数据

将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01。

复制代码
    update titles_test
    set to_date = NUll,
    from_date="2001-01-01"
    where to_date="9999-01-01"

删除重复记录,仅保留id最小

删除emp_no重复的记录,只保留最小的id对应的记录。

复制代码
    delete from titles_test 
    where id not in (
    select min(id)
    from titles_test
    group by emp_no
    )

SQL34 批量插入数据

复制代码
    INSERT INTO actor(actor_id,
                  first_name,
                  last_name,
                  last_update)
    VALUES(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
      (2,'NICK','WAHLBERG','2006-02-15 12:34:33')

拼接姓名

用于将employees表中的所有员工的last_name与first_name连接成Name字段,并用空格分隔这两个字段

复制代码
    
    select (last_name||" "|| first_name) as Name from employees

请你获取薪水第二多的员工的emp_no以及其对应的薪水salary

复制代码
    select emp_no,salary from salaries
    order by salary desc
    limit 1,1;

SQL11 获取所有员工当前的manager

有一个员工表dept_emp简况如下:

在这里插入图片描述

第一行表示为员工编号为10001的部门是d001部门。

在这里插入图片描述

有一个部门经理表dept_manager简况如下:

在这里插入图片描述

第一行表示为d001部门的经理是编号为10002的员工。

请收集所有员工及其直接上司,并将如果是经理则不包含在内。以上例子如下:例如,在以下列表中,请注意排除管理层人员。

复制代码
    select dept_emp.emp_no,dept_manager.emp_no as manager from dept_emp join dept_manager
    on dept_emp.dept_no=dept_manager.dept_no
    where dept_emp.emp_no not in (
    select emp_no from dept_manager
    )

获取全部员工的last_name、first_name及对应的部门名称,并包含尚未分配部门的员工。

有一个员工表employees简况如下:

在这里插入图片描述

有一个部门表departments表简况如下:

在这里插入图片描述

有一个,部门员工关系表dept_emp简况如下:

在这里插入图片描述

请查找所有员工的信息表中包含last_name、first_name以及对应的dept_name字段,并且考虑尚未分配部门的人员;例如上述结果。

在这里插入图片描述
复制代码
    select last_name,first_name,dept_name from employees left join dept_emp on employees.emp_no=dept_emp.emp_no
    left join departments on dept_emp.dept_no=departments.dept_no;

使用join查询方式找出没有分类的电影id以及名称

复制代码
    select film.film_id,title from film left join film_category on film.film_id=film_category.film_id where film_category.category_id is null

能否使用subquery的方法找到所有属于Action分类的电影的title和description?

复制代码
    select title,description from film left join film_category on film.film_id=film_category.film_id
    left join  category on film_category.category_id=category.category_id
    where name='Action'

批量插入数据

对于actor被插入如下数据的情况,请确保当所插入的数据已存在于该表中时应避免采用替换操作。

对于actor被插入如下数据的情况,请确保当所插入的数据已存在于该表中时应避免采用替换操作。

复制代码
    insert or ignore into actor values('3','ED','CHASE','2006-02-15 12:34:33')

全部评论 (0)

还没有任何评论哟~