mysql常用语句四:DQL中的查询操作

1 平均数和保留小数位

表结构如下
在这里插入图片描述
查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入)

select job, round(avg(score), 3) from grade
group by job
order by avg(score) desc;

在这里插入图片描述
要注意roundavg函数的使用。

2 查找A表中没有B表的选项

表结构如下
在这里插入图片描述
在这里插入图片描述
查找所有非部门领导的员工emp_no

select emp_no from employees
where emp_no not in (select emp_no from dept_manager);

在这里插入图片描述
这里同时查找两个表,注意关键词not in的使用。

3 not in 关键词

表结构如下
在这里插入图片描述
删除emp_no重复的记录,只保留最小的id对应的记录

delete from titles_test
where id not in(
    select * from (
        select min(id) from titles_test
        group by emp_no
    ) as t1
);

分析

not in后面的括号中的语句是查找重复的记录中,id最小的记录。

select * from (
    select min(id) from titles_test
    group by emp_no
) as t1

在这里插入图片描述
这三行记录是要删除的,将图中的select换成delete即可。

4 concat函数连接两个字段

表结构如下
在这里插入图片描述
将所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分

select concat(last_name, ' ', first_name) as Name 
from employees;

在这里插入图片描述

5 表名 left join 表名 on 条件左外连接

表结构如下
在这里插入图片描述
在这里插入图片描述
查找每个人的任务情况,而且输出结果按照person的id升序排序。

select p.id, p.name, t.content from person as p
left join task as t
on p.id = t.person_id
order by p.id;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Awt_FuDongLai/article/details/114519674
今日推荐