今天sql练习遇到的问题

11 篇文章 0 订阅

1. 用sql语句搜索表中某一个字段最大的记录

今天碰到一个这样的问题,一时间没反应上来,自习想想之后将他解决啦

语法:
select * from 表名 where 字段名 in (select max(字段名) from 表名 )
其实就是先将表中的这一字段的最大值查找出来,然后用条件语句,进行查找

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 in(select max(hire_date) from employees )

2.查找入职员工时间排名倒数第三的员工所有信息

select * from employees order by hire_date desc limit 2,1;
--先将员工根据入职时间进行倒序排列,之后运用limit语句 查出第三条记录

“limit start,end” 函数是查询起止位置之间的元素 [start,end)\

下面两个问题有关联接表

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

实例:

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

4.查找所有已经分配部门的员工的last_name和first_name和部门编号

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 
    a.last_name,
    a.first_name,
    b.dept_no
from
    employees a 
inner join
    dept_emp b
on
    a.emp_no = b.emp_no
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值