• 数据库SQL实战(1)


    1.查找最晚入职员工的所有信息:
      CREATE TABLE `employees` (
      `emp_no` int(11) NOT NULL,
      `birth_date` date NOT NULL,
      `first_name` varchar(14) NOT NULL,
      `last_name` varchar(16) NOT NULL,
      `gender` char(1) NOT NULL,
      `hire_date` date NOT NULL,
      PRIMARY KEY (`emp_no`));

      我们看到表的结构如上,其中 hire_date 字段名就是入职日期,我们需要查找最晚入职员工的所有信息,所以我们要对 hire_date 这个字段进行倒序,然后去结果集的第一条记录:

      select * from employees order by hire_date desc limit 1;

      上面的方法是排序,还有一种方法是进行子查询,而且 hire_date 的类型为 date,所以可能存在多个同一天入职的员工,使用子查询就可以把最后一天入职的员工都查询出来:

      select * from employees where hire_date = (select max(hire_date) from employees);

    2.查找入职员工时间排名倒数第三的员工所有信息:
      CREATE TABLE `employees` (
      `emp_no` int(11) NOT NULL,
      `birth_date` date NOT NULL,
      `first_name` varchar(14) NOT NULL,
      `last_name` varchar(16) NOT NULL,
      `gender` char(1) NOT NULL,
      `hire_date` date NOT NULL,
      PRIMARY KEY (`emp_no`));

      首先我们对 hire_date 字段进行排序,然后从第三个开始选取一条记录(0为第一个,所以第三个就是2):

      select * from employees order by hire_date desc limit 2,1;

      如果我们考虑到入职员工时间排名倒数第三的员工不止一个,这样我们就需要用子查询来查找:

      select * from employees where hire_date = (select hire_date from employees order by hire_date desc limit 2,1);

    3.查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
      CREATE TABLE `dept_manager` (
      `dept_no` char(4) NOT NULL,
      `emp_no` int(11) NOT NULL,
      `from_date` date NOT NULL,
      `to_date` date NOT NULL,
      PRIMARY KEY (`emp_no`,`dept_no`));


      CREATE TABLE `salaries` (
      `emp_no` int(11) NOT NULL,
      `salary` int(11) NOT NULL,
      `from_date` date NOT NULL,
      `to_date` date NOT NULL,
      PRIMARY KEY (`emp_no`,`from_date`));

      这里我们要使用多表查询,题中可以得知 to_date='9999-01-01' 时为领导,所以查询语句为:

      select s.*, d.dept_no from salaries s, dept_manager d where d.to_date = '9999-01-01' and s.to_date = '9999-01-01' and d.emp_no = s.emp_no;

  • 相关阅读:
    分治
    #include<algorithm>
    c++标准模板库的使用
    mysql_day03
    mysql_day02
    mysql_day01
    mongodb的安装
    迭代器和生成器简单介绍
    File文件操作
    数据类型
  • 原文地址:https://www.cnblogs.com/wgl1995/p/8778247.html
Copyright © 2020-2023  润新知