資料庫SQL刷題1 5

2021-10-04 16:01:13 字數 3243 閱讀 1565

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`));

**:

select * from employees

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

2、查詢入職員工時間排名倒數第三的員工所有資訊

**:

select * from employees

where hire_date =

(select distinct hire_date from employees

order by hire_date desc limit 2,1)

3、查詢當前薪水詳情以及部門編號dept_no

題目描述:

查詢各個部門當前(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`));

**:

select salaries.emp_no, salaries.salary, salaries.from_date, salaries.to_date,dept_manager.dept_no from 

salaries join dept_manager on

salaries.emp_no = dept_manager.emp_no

where salaries.to_date = '9999-01-01' and dept_manager.to_date = '9999-01-01'

4、查詢所有已經分配部門的員工的last_name和first_name以及dept_no

題目描述

查詢所有已經分配部門的員工的last_name和first_name以及dept_no

create table `dept_emp` (

`emp_no` int(11) not null,

`dept_no` char(4) not null,

`from_date` date not null,

`to_date` date not null,

primary key (`emp_no`,`dept_no`));

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`));

**:

select employees.last_name, employees.first_name, dept_emp.dept_no 

from employees, dept_emp

where employees.emp_no = dept_emp.emp_no

5、查詢所有員工的last_name和first_name以及對應部門編號dept_no,也包括展示沒有分配具體部門的員工

create tabledept_emp(

emp_noint(11) not null,

dept_nochar(4) not null,

from_datedate not null,

to_datedate not null,

primary key (emp_no,dept_no));

create tableemployees(

emp_noint(11) not null,

birth_datedate not null,

first_namevarchar(14) not null,

last_namevarchar(16) not null,

genderchar(1) not null,

hire_datedate not null,

primary key (emp_no));

**:

select employees.last_name,employees.first_name,dept_emp.dept_no

from employees left join dept_emp

on employees.emp_no = dept_emp.emp_no

資料庫刷題

考慮到可能不是每個人都有位址資訊,我們應該使用outer join而不是預設的inner join。注意 如果沒有某個人的位址資訊,使用 where 子句過濾記錄將失敗,因為它不會顯示姓名資訊。2.編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary select max ...

LeetCode刷題 資料庫

目錄 175.組合兩個表 176.第二高的薪水 表1 person 列名 型別 personid int firstname varchar lastname varchar personid 是上表主鍵表2 address 列名 型別 addressid int personid int city...

資料庫刷題2

1 至少連續出現三次的數字 select distinct l1.num as consecutivenums from logs l1,logs l2,logs l3 where l1.id 1 l2.id and l2.id 1 l3.id and l1.num l2.num and l2.nu...