mysql常用语句 3

1.找出每个部门平均薪水的薪资等级,from后面嵌套子查询
第一步是找出每个部门的平均工资。

[En]

The first step is to find out the average salary of each department.

mysql> select deptno,avg(sal) from emp group by deptno;
+——–+————-+
| deptno | avg(sal) |
+——–+————-+
| 10 | 2916.666667 |
| 20 | 2175.000000 |
| 30 | 1566.666667 |
+——–+————-+
3 rows in set (0.00 sec)
第二步把第一步的结果当做一个表,再和salgrade结合查询
mysql> select s.grade ,t.* from ( select deptno,avg(sal) as avgsal from emp group by deptno) t join salgrade s on t.avgsal between s.losal and s.hisal;
+——-+——–+————-+
| grade | deptno | avgsal |
+——-+——–+————-+
| 3 | 30 | 1566.666667 |
| 4 | 10 | 2916.666667 |
| 4 | 20 | 2175.000000 |
+——-+——–+————-+
3 rows in set (0.00 sec)

2.找出每个部门薪资等级的平均值

第一步是找出每个部门员工的工资等级。

[En]

The first step is to find the salary grade of employees in each department.

mysql> select s.grade,e.ename,e.deptno,e.sal from emp e join salgrade s on e.sal between s.losal and s.hisal;
+——-+——–+——–+———+
| grade | ename | deptno | sal |
+——-+——–+——–+———+
| 1 | SMITH | 20 | 800.00 |
| 3 | ALLEN | 30 | 1600.00 |
| 2 | WARD | 30 | 1250.00 |
| 4 | JONES | 20 | 2975.00 |
| 2 | MARTIN | 30 | 1250.00 |
| 4 | BLAKE | 30 | 2850.00 |
| 4 | CLARK | 10 | 2450.00 |
| 4 | SCOTT | 20 | 3000.00 |
| 5 | KING | 10 | 5000.00 |
| 3 | TURNER | 30 | 1500.00 |
| 1 | ADAMS | 20 | 1100.00 |
| 1 | JAMES | 30 | 950.00 |
| 4 | FORD | 20 | 3000.00 |
| 2 | MILLER | 10 | 1300.00 |
+——-+——–+——–+———+
14 rows in set (0.00 sec)

第二步求平均值
mysql> select t.deptno,avg(t.grade) from (select s.grade,e.ename,e.deptno,e.sal from emp e join salgrade s on e.sal between s.losal and s.hisal) t join salgrade s group by t.deptno;
+——–+————–+
| deptno | avg(t.grade) |
+——–+————–+
| 10 | 3.6667 |
| 20 | 2.8000 |
| 30 | 2.5000 |
+——–+————–+
3 rows in set (0.00 sec)

或者
mysql> select s.grade,avg(s.grade),e.ename,e.deptno,e.sal from emp e join salgrade s on e.sal between s.losal and s.hisal group by e.deptno;
+——-+————–+——-+——–+———+
| grade | avg(s.grade) | ename | deptno | sal |
+——-+————–+——-+——–+———+
| 4 | 3.6667 | CLARK | 10 | 2450.00 |
| 1 | 2.8000 | SMITH | 20 | 800.00 |
| 3 | 2.5000 | ALLEN | 30 | 1600.00 |
+——-+————–+——-+——–+———+
3 rows in set (0.00 sec)

3.找出每个员工所在的部门名称,要求显示员工名和部门名。(使用嵌套查询)

mysql> select e.ename ,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;
+——–+————+
| ename | dname |
+——–+————+
| SMITH | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| JONES | RESEARCH |
| MARTIN | SALES |
| BLAKE | SALES |
| CLARK | ACCOUNTING |
| SCOTT | RESEARCH |
| KING | ACCOUNTING |
| TURNER | SALES |
| ADAMS | RESEARCH |
| JAMES | SALES |
| FORD | RESEARCH |
| MILLER | ACCOUNTING |
+——–+————+
14 rows in set (0.01 sec)

嵌套查询可以使用在select,from,where后面。

4.union(将结果集相加),找出工作岗位是salesman,manager的员工
mysql> select ename,job from emp where job = ‘manager’ union select ename,job from emp where job = ‘salesman’;
+——–+———-+
| ename | job |
+——–+———-+
| JONES | MANAGER |
| BLAKE | MANAGER |
| CLARK | MANAGER |
| ALLEN | SALESMAN |
| WARD | SALESMAN |
| MARTIN | SALESMAN |
| TURNER | SALESMAN |
+——–+———-+
7 rows in set (0.00 sec)

mysql> select ename,job from emp where job = ‘manager’;
+——-+———+
| ename | job |
+——-+———+
| JONES | MANAGER |
| BLAKE | MANAGER |
| CLARK | MANAGER |
+——-+———+
3 rows in set (0.01 sec)

mysql> select ename,job from emp where job = ‘salesman’;
+——–+———-+
| ename | job |
+——–+———-+
| ALLEN | SALESMAN |
| WARD | SALESMAN |
| MARTIN | SALESMAN |
| TURNER | SALESMAN |
+——–+———-+
4 rows in set (0.00 sec)

使用union要求两张表列数量必须一致。

5.limit 0(startIndex),8(length)

mysql> select ename from emp limit 0,8;
+——–+
| ename |
+——–+
| SMITH |
| ALLEN |
| WARD |
| JONES |
| MARTIN |
| BLAKE |
| CLARK |
| SCOTT |
+——–+
8 rows in set (0.00 sec)

运行顺序
select 5
from 1
where 2
group by 3
having 4
order by 6
limit 7

mysql> select ename from emp limit 2,5;
+——–+
| ename |
+——–+
| WARD |
| JONES |
| MARTIN |
| BLAKE |
| CLARK |
+——–+
5 rows in set (0.00 sec)

mysql> select ename from emp limit 5;默认前面下标为0
+——–+
| ename |
+——–+
| SMITH |
| ALLEN |
| WARD |
| JONES |
| MARTIN |
+——–+
5 rows in set (0.00 sec)

6.找出工资排名在第四到第七的员工
mysql> select ename,sal from emp order by sal desc limit 3,3;
+——-+———+
| ename | sal |
+——-+———+
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
+——-+———+
3 rows in set (0.00 sec)

7.创建一个学生表:
create table t_student(
stu_name varchar(10),
stu_num varchar(10),
stu_teacher varchar(10),
stu_house varchar(10)

mysql> create table t_student(
-> stu_name varchar(10),
-> stu_num varchar(10),
-> stu_teacher varchar(10),
-> stu_house varchar(10)
->
-> );
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+——————–+
| Tables_in_cqust_db |
+——————–+
| dept |
| emp |
| salgrade |
| t_student |
+——————–+
4 rows in set (0.00 sec)

8.向表中插入数据。
insert into t_student (stu_name,stu_num,stu_teacher,stu_house)
values (‘hch’,’2019465335′,’laoyu’,’3210′);

mysql> insert into t_student (stu_name,stu_num,stu_teacher,stu_house)//可以省略前面字段括号,后面必须和表一一对应。
-> values (‘hch’,’2019465335′,’laoyu’,’3210′);
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_student;
+———-+————+————-+———–+
| stu_name | stu_num | stu_teacher | stu_house |
+———-+————+————-+———–+
| hch | 2019465335 | laoyu | 3210 |
+———-+————+————-+———–+
1 row in set (0.00 sec)

9.插入多条数据。
insert into t_student (stu_name,stu_num,stu_teacher,stu_house)
values (‘qwe’,’2019456123′,’laoyu’,’3211′),(‘asd’,’2019123456′,’laoyu’,’3122′);
mysql> insert into t_student (stu_name,stu_num,stu_teacher,stu_house)
-> values (‘qwe’,’2019456123′,’laoyu’,’3211′),(‘asd’,’2019123456′,’laoyu’,’3122′);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from t_student;
+———-+————+————-+———–+
| stu_name | stu_num | stu_teacher | stu_house |
+———-+————+————-+———–+
| qwe | 2019456123 | laoyu | 3211 |
| asd | 2019123456 | laoyu | 3122 |
+———-+————+————-+———–+
2 rows in set (0.00 sec)

10.表的复制
mysql> create table emp1 as select ename,sal from emp;
Query OK, 14 rows affected (0.03 sec)
Records: 14 Duplicates: 0 Warnings: 0

mysql> show tables;
+——————–+
| Tables_in_cqust_db |
+——————–+
| dept |
| emp |
| emp1 |
| salgrade |
| t_student |
+——————–+
5 rows in set (0.00 sec)

mysql> select * from emp1;
+——–+———+
| ename | sal |
+——–+———+
| SMITH | 800.00 |
| ALLEN | 1600.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| TURNER | 1500.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
+——–+———+
14 rows in set (0.00 sec)

11.将查询的结果插入到表中。
mysql> insert into emp1 select * from emp1;
Query OK, 14 rows affected (0.01 sec)
Records: 14 Duplicates: 0 Warnings: 0

mysql> select * from emp1;
+——–+———+
| ename | sal |
+——–+———+
| SMITH | 800.00 |
| ALLEN | 1600.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| TURNER | 1500.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
| SMITH | 800.00 |
| ALLEN | 1600.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| TURNER | 1500.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
+——–+———+
28 rows in set (0.00 sec)

Original: https://www.cnblogs.com/journeyhch/p/15563250.html
Author: journeyhch
Title: mysql常用语句 3

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508038/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 多商户商城系统功能拆解25讲-平台端分销申请

    多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。 多商户商城系统支持商家入驻加盟,同时满足平台自营…

    数据库 2023年6月14日
    084
  • 简单!代码原来是这样被CPU跑起来的

    CPU对我们来说既熟悉又陌生,熟悉的是我们知道代码是被CPU执行的,当我们的线上服务出现问题时可能首先会查看CPU负载情况。陌生的是我们并不知道CPU是如何执行代码的,它对我们的代…

    数据库 2023年6月6日
    0100
  • Mybatis-Plus 实现乐观锁

    是指在读取一行数据时,记下它的版本号、最近修改的时间戳或校验和。然后,你可以在修改记录之前检查版本有没有发生变化。 适用场景 适用于读多写少的场景,乐观锁相信事务之间的数据竞争概率…

    数据库 2023年6月6日
    096
  • 栈和队列数据结构

    栈和队列都是常用的数据结构。栈的应用非常的广泛,其原理也是非常经典的。 一、栈 ①栈(stack)又名堆栈,他是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这…

    数据库 2023年6月11日
    0127
  • 一个属性同时使用Autowired和Resource注解会发生什么?

    首发于公众号:BiggerBoy右侧图片wx扫码关注有惊喜欢迎关注,查看更多技术文章 如题,如果在同一个属性上使用@Autowired注解注入bean1,然后使用@Resource…

    数据库 2023年6月11日
    081
  • MySQL数据备份 mysqldump 详解

    MySQL数据备份流程 打开cmd窗口 通过命令进行数据备份与恢复; 需要在Windows的命令行窗口中进行; l 开始菜单,在运行中输入cmd回车; l 或者win+R,然后输入…

    数据库 2023年6月14日
    093
  • Read View的可见性判断理解

    读了 @SnailMann大佬【MySQL笔记】正确的理解MySQL的MVCC及实现原理 收益颇丰,非常感谢! 但对其中如何判断事务是否可见性还是不太理解,于是作了本文,在原博客基…

    数据库 2023年6月16日
    084
  • leetcode 1110. Delete Nodes And Return Forest 删点成林(中等)

    一、题目大意 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成…

    数据库 2023年6月16日
    0109
  • 渗透攻防Web篇-深入浅出SQL注入

    1 背景 京东SRC(Security Response Center)收录大量外部白帽子提交的sql注入漏洞,漏洞发生的原因多为sql语句拼接和Mybatis使用不当导致。 2 …

    数据库 2023年5月24日
    0109
  • Consul 入门-gRPC 服务注册与发现

    前言 假如我有钱,我&am…

    数据库 2023年6月6日
    0100
  • Golang并发编程——goroutine、channel、sync

    并发与并行 并发和并行是有区别的,并发不等于并行。 两个或多个事件在同一时间不同时间间隔发生。对应在Go中,就是指多个 goroutine 在单个CPU上的交替运行。 两个或者多个…

    数据库 2023年6月16日
    060
  • postman自动化测试

    postman做接口的自动化测试case 记录一次自动化测试的工作,以及该过程中对于测试设计的一些思考。 postman工具 简单介绍,这个工具无论是开发还是测试,使用来调试接口的…

    数据库 2023年6月6日
    0124
  • 开源之夏 2022 重磅来袭,欢迎报名 RadonDB 社区项目

    “开源之夏(英文简称 OSPP)” 是中科院软件所 “开源软件供应链点亮计划” 指导下的一项面向高校学生的暑期活动,由中国科学院软件…

    数据库 2023年5月24日
    0105
  • JUC学习笔记(二)

    1.1、Synchronized synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的…

    数据库 2023年6月6日
    091
  • String vs StringBuffer vs StringBuilder

    String vs StringBuffer vs StringBuilder 本文翻译自:https://www.digitalocean.com/community/tutor…

    数据库 2023年6月11日
    0100
  • 最简单的学习往往是最无效的

    想必大家都是从学生时代过来的,或者现在还处于学生时代。 在学生时代,大家有没有见过,有的同学非常非常努力,上课听得非常认真,笔记也记录得非常认真,同时各种颜色和标记把书上画得密密麻…

    数据库 2023年6月15日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球