当前位置: 首页 > news >正文

0099 MySQL02

1.简单查询

查询一个字段

select 字段名 from 表名;

查询多个字段,使用“,”隔开

select 字段名,字段名 from 表名;

查询所有字段

1.把每个字段都写上

select 字段名,字段名,字段名.. from 表名;

2.使用*(效率低,可读性差)

select * from 表名;

2.给查询的列起别名

使用as关键字

select 字段名 as 别名 from 表名;

注:只是将查询结果列名显示为别名,原表列名不变

as可省略

select 字段名 别名 from 表名;

若别名里有空格,使用加上单引号或双引号

在所有数据库中,字符串统一使用单引号(双引号在Oracle数据库用不了)

3.列参与数学运算

如计算员工年薪

select ename,sal*12 from emp;

select ename,sal*12 as yearsal from emp;//起别名

select ename,sal*12 as 年薪 from emp;//错误

select ename,sal*12 as '年薪' from emp;//别名为中文,加上单引号

4.条件查询

格式:

        select 字段1,字段2...from 表名 where 条件;

条件:

 =等于

<>或!=不等于

<小于 <=小于等于

>大于 >=大于等于

between .. and ...在两个值之间,等同于 >= and <=

is null 为空(is not null不为空)

and 并且

or 或者

in 包含,相当于多个or(not in 不包含)

like 模糊查询,支持%或下划线匹配

%匹配任意多个字符

_下划线,一个下划线只匹配一个字符


1.查询史密斯的编号和薪资?

select empno,sal from emp where ename = 'smith';

2.查询薪资不等于3000的员工姓名和编号?

select empno,ename from emp where sal <> 3000;

select empno,ename from emp where sal != 3000;

3.查询薪资在3000-5000的员工姓名,编号和薪资?

select ename,empno,sal from emp where sal >= 3000 and <= 5000;//使用>=and<=

select ename,empno,sal from emp where sal between 3000 and 5000;//使用between and

//使用between and时,必须遵循左小右大

4.查询员工的津贴为null?

select empno,ename,sal,comm from emp where comm = null;

//错误,不能使用等号=,因为null不是值

select empno,ename,sal,comm from emp where comm is null;

5.查询工资大于3000,且部门编号为10或20的员工信息?

select * from emp where sal >3000 and deptno = 10 or deptno = 20;

//错误,and优先级比or高,含义表示为工资大于3000且部门编号为10的员工,或者部门编号为20

select * from emp where sal >3000 and (deptno = 10 or deptno = 20);//加上括号

6.查询工作岗位是manager或salesman的员工

select empno,ename,job from emp where job = 'manager' or job = 'salesman';

select empno,ename,job from emp where job in ('manager','salesman');

//in后面跟具体值,不是区间

7.找出名字含有o的?

select ename from emp where ename like '%o%';

找出名字以t结尾的?

select ename from emp where ename like '%t';

找出第二个字母是a的?

select ename from emp where ename like '_a%';

找出名字有‘_’下划线的?

select ename from emp where ename like '%_%';//错误

select ename from emp where ename like '%\_%';//使用转义字符\

5.排序

1.查询所有员工的薪资并排序?

select ename,sal from emp order by sal;//默认是升序

select ename,sal from emp order by sal desc;//指定降序

select ename,sal from emp order by sal asc;//指定升序

2.多个字段排序

查询员工名字和薪资,要求按照薪资升序,如果薪资一样,按照名字升序

select ename,sal from emp order by sal asc,ename asc;

//sal在前为主导,只有sal相等时才会启用ename排序

3.根据字段位置排序

select ename,sal from emp order by 2;//2表示第2列,为sal(了解即可,不建议这样写)

4.找出工资在3000到5000之间的员工信息,并按照薪资降序排列

select ename,sal from emp where sal between 3000 and 5000 order by sal desc;

//执行顺序不能改变,from-where-select-order by

6.数据处理函数(单行处理函数)

特点:一个输入对应一个输出

对应于多行处理函数(多个输入对应一个输出)

常见的单行处理函数:

lower 转换小写

upper 转换大写

substr 取子串(格式:substr(被截取的字符串,起始下标,截取长度))

length 取长度

trim 去空格

str_to_date 将字符串转成日期

date_format 格式化日期

format 设置千分位

round 四舍五入

rand() 生成随机数

ifnull 将null转成具体值

case..when..then..when..then..else..end


1.将名字转换为小写,大写

select lower(ename) from emp;

select upper(ename) from emp;

2.截取名字第一个长度

select substr(ename,1,1) from emp;

//注:起始下标从1开始,不是0

3.找出员工名字第一个字母是a的信息?

select ename from emp where ename like 'a%';

select ename from emp where substr(ename,1,1) = 'a';

4.让名字首字母大写(concat字符串拼接)

select upper(substr(name,1,1)) from ename;//首字母大写

select substr(name,2,length(name)-1) from ename;//截取除首字母之外的字符

select concat(upper(substr(name,1,1)),substr(name,2,length(name)-1)) from ename;

5.round四舍五入

select round(1236.567,0) from emp;//1237

//select后可跟字段名,也可跟字面量(数据),0表示四舍五入保留0位小数

select round(1236.567,-1) from emp;//1240

//-1表示保留到十位

6.100以内的随机数

select round(rand()*100,0) from emp;

7.在所有数据库当中,只要有null参与的数学运算,最终结果都是null

计算员工年薪?

年薪=(月薪+月补助)*12

select ename,(sal + comm) * 12 from emp;//若补助为null,结果为null

select ename,(sal + ifnull(comm,0)) * 12 from emp;//使用ifnull,null当作0

8.当员工岗位为manager时,工资上调10%,为salesman时,上调50%

(不修改数据库,只是将查询结果显示为工资上调)

select ename,job,(case job when 'manager' then sal * 1.1 when 'salesman' then sal*1.5 else sal end) from emp;

7.分组函数(多行处理函数)

输入多行,最终输出一行

count 计数

sum 求和

avg 平均值

max 最大值

min 最小值

注:在使用时必须先进行分组,然后才能用,若没分组,整张表默认为一组

1.分组函数自动忽略null

2.分组函数中,count(*)和count(具体字段)的区别?

count(*):统计表当中的总行数(只要有一行数据 count就加一)

count(具体字段):统计该字段下所有不为null的总数

3.分组函数不能直接使用在where子句中

select ename,sal from emp where sal > min(sal);

//错误,因为where执行时还没分组,所以where后不能出现分组函数

//因为select在group by之后,所以可以使用

4.所有分组函数可以组合一起用

select sum(sal),min(sal),max(sal),avg(sal),count(*) from emp;


1.找出最高工资?

select max(sal) from emp;

2.计算工资和?

select sum(sal) from emp;

3.计算员工数量?

select count(ename) from emp;

8.分组查询

格式

select...from...group by...

将之前所学的全部组合在一起的执行顺序:

select...from...where...group by...order by...

执行顺序:from-->where-->group by--> select-->order by


1.找出每个岗位的工资和?

select job,sum(sal) from emp group by job;//按照岗位分组,然后对工资求和

select ename,job,sum(sal) from emp group by job;//加入ename,报错,无意义

即:select语句中,如果有group by语句,后面只跟参加分组的字段以及分组函数

2.找出每个部门的最高薪资?

select deptno,max(sal) from emp group by deptno;

3.找出每个部门,不同工作岗位的最高薪资?

select deptno,job,max(sal) from emp group by deptno,job;

4.找出每个部门最高薪资,且显示的最高薪资大于3000?

select deptno,max(sal) from emp group by deptno having max(sal) > 3000;

//使用having可以对分组后的数据进一步过滤,having不能单独使用,必须和group by联合使用

//以上执行效率低,可将大于3000的先找出,然后再分组

select deptno,max(sal) from emp where sal > 3000 group by deptno;

//where和having优先选择where

5.找出每个部门平均薪资,且显示平均薪资大于2500的

select deptno,avg(sal) from emp group by deptno having avg(sal) > 2500;

//求平均,必须使用having

6.找出每个岗位的平均薪资,且显示平均薪资大于1500的,除manager岗位外,其他按照平均薪资降序排序

select job,avg(sal) from emp where job <> 'manager' group by job having avg(sal) > 1500 order by avg(sal) desc;

相关文章:

0099 MySQL02

1.简单查询 查询一个字段 select 字段名 from 表名; 查询多个字段&#xff0c;使用“&#xff0c;”隔开 select 字段名,字段名 from 表名; 查询所有字段 1.把每个字段都写上 select 字段名,字段名,字段名.. from 表名; 2.使用*(效率低&#xff0c;可读性差) select *…...

应急响应-ubuntu系统cpu飙高

这里写目录标题一、排查过程二、处置过程三、溯源总结一、排查过程 1、查看CPU使用情况 top -c2、查看异常进程的具体参数 ps -aux3、通过微步查询域名信息 4、查看异常进程的监听端口 netstat -anlpt5、查找服务器内的异常文件 ls cat run.sh cat mservice.sh6、查看脚本…...

MDK软件使用技巧

本文主要汇总MDK软件使用技巧 一、字体大小及颜色修改 第一步点击工具栏的这个小扳手图标 进去后显示如下&#xff0c;先设置 Encoding 为&#xff1a;Chinese GB2312(Simplified)&#xff0c;然后设置 Tab size 为&#xff1a;4 以更好的支持简体中文&#xff0c;否则&…...

3 333333

全部 答对 答错 单选题 1. 一个项目来取代目前公司的文件存储系统已经获批。外部供应商提供硬件&#xff0c;内部团队开发软件。这个团队是自组织的&#xff0c;由一般的专家组成。团队建议迭代地与供应商合作&#xff0c;但供应商表示拒绝。因此&#xff0c;只有软件将被迭代…...

1528. 重新排列字符串

1528. 重新排列字符串https://leetcode.cn/problems/shuffle-string/ 难度简单52收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s &#xff0c;其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新…...

【8】【用户操作日志】操作日志SpringBootStarter

操作日志 此版本操作日志主要就是通过AOP拦截器实现的&#xff0c;整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口&#xff1b;组件提供了6个扩展点&#xff0c;自定义函数、日志上下文、用户信息获取&#xff0c;日志保存&#xff0c;自定义异常获取&#xff0c;入…...

【游戏逆向】寻路函数隐藏检测点分析

案例&#xff1a; 某游戏出现调用寻路函数失败异常崩溃。 基本情况分析&#xff1a; 在刚登陆游戏的时候直接调用寻路函数崩溃。 手动寻路以后再调用寻路不崩溃。(排除了函数编写错误的可能) 猜测可能检测方法&#xff1a; 有某一个标志位(全局类型)在游戏刚登陆的时候没…...

【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法

【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法 一、检查Zabbix监控平台状态1.检查Zabbix各组件容器状态2.奸诈Zabbix-server状态二、下载监控模板1.进入Zabbix官网下载页面2.查看下载模板三、创建一个测试容器1.创建一个测试容器2.检查测试容器状态3.访问测试web服务四、…...

这款 Python 工具进行数据分析及数据可视化真的很棒啊

前言 大家好&#xff0c;今天我们以全国各地区衣食住行消费数据为例&#xff0c;来分析2022年中国统计年鉴数据&#xff0c;统计全国各地人民的消费地图&#xff0c;看看&#xff1a; 哪个省份的人最能花钱 哪个省份的人最舍得花钱 哪个省份的人最抠门 全国各地区人民在吃、穿…...

visual Studio Code常用快捷键

1、向上/向下移动代码行 alt 下箭头/上箭头 2、向上/向下复制一行代码 shiftalt 下箭头/上箭头 3、选定多个相同的单词 ctrl d 4、全局替换 ctrl h 5、快速定位到某一行 ctrl g 6、放大缩小整个编辑器界面 ctrl / - 7、添加多个光标 Ctrl Alt 上箭头/下箭头…...

基础(一)十六进制转八进制

试题 基础练习 十六进制转八进制 资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述   给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。输入格式   输入的第…...

梯度提升算法决策过程的逐步可视化

梯度提升算法是最常用的集成机器学习技术之一&#xff0c;该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础&#xff0c;所以在这篇文章中&#xff0c;我们将从头开始构建一个梯度增强模型并将其可视化。 梯度提升算法介绍 梯度提升算法&#x…...

Linux系统调用之文件属性操作函数

前言 如果&#xff0c;想要深入的学习Linux系统调用中access&#xff0c;chmod&#xff0c;chown&#xff0c;truncate这些有关于文件属性的操作函数&#xff0c;还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令&#xff1a; man 2 access/chmod/chown/truncate 即可…...

VMware 安装 银河麒麟高级服务器操作系统 V10 + QT 开发环境搭建

下载并安装vmware 下载银河麒麟操作烯烃服务器版v10的镜像文件从官网下载&#xff0c;因为是x86的电脑芯片&#xff0c;选择AMD64版&#xff0c;即vmare 安装麒麟操作系统注意事项&#xff1a;安装位置选择自动分区网络和主机名设置打开网络&#xff0c;ip4就不用再设置了创建一…...

2023年疫情开放,国内程序员薪资涨了还是跌了?大数据告诉你答案

自从疫情开放&#xff0c;国内各个行业都开始有复苏的迹象&#xff0c;尤其是旅游行业更是空前暴涨&#xff0c;那么互联网行业如何&#xff1f; 有人说今年好找工作多了&#xff0c;有人说依然是内卷得一塌糊涂&#xff0c;那么今年开春以来&#xff0c;各个岗位的程序员工资…...

太赫兹频段耦合器设计相关经验总结

1拿到耦合器的频段后&#xff0c;确定中心频率和波导的宽度和高度 此处贴一张不同频段对应的波导尺寸图 需要注意的是1英寸 2.54厘米&#xff0c;需注意换算 具体网址&#xff1a;矩形波导尺寸 | 扩维 (qualwave.com) 仅列举我比较常用的太赫兹频段部分 2.以220~320GHz频段&a…...

反弹shell数据不回显带外查询pikaqiu靶场搭建

P1 文件上传下载&#xff08;解决无图形化和解决数据传输&#xff09; 解决无图形化&#xff1a; 当我们想下载一个文件时&#xff0c;通常是通过浏览器的一个链接直接访问网站点击下载的&#xff0c;但是在实际的安全测试中&#xff0c;我们获取的权限只是一个执行命令的窗口…...

按键修改阈值功能、报警功能、空气质量功能实现

按键修改阈值功能 要使用按键&#xff0c;首先要定义按键。通过查阅资料&#xff0c;可知按键的引脚如图所示&#xff1a;按键1&#xff08;S1&#xff09;通过KEY0与PA0连接&#xff0c;按键2&#xff08;S2&#xff09;通过KEY1与PE2连接&#xff0c;按键3&#xff08;S3&…...

spring重点整理篇--springMVC(嘿嘿,开心哟)

Spring MVC是的基于JavaWeb的MVC框架&#xff0c;是Spring框架中的一个组成部分(WEB模块) MVC设计模式&#xff1a; Controller&#xff08;控制器&#xff09; Model&#xff08;模型&#xff09; View&#xff08;视图&#xff09; 重点来了&#x1f604; SpringMVC的工作机制…...

图像融合评估指标Python版

图像融合评估指标Python版 这篇博客利用Python把大部分图像融合指标基于图像融合评估指标复现了&#xff0c;从而方便大家更好的使用Python进行指标计算&#xff0c;以及一些I/O 操作。除了几个特征互信息的指标没有成功复现之外&#xff0c;其他指标均可以通过这篇博客提到的P…...

20230303----重返学习-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数

day-019-nineteen-20230303-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数 变量 变量声明 变量 声明定义(赋值) var num;num 100; 声明与赋值分开var num 100; 声明时就赋值 赋值只能声明一次&#xff0c;可以赋值无数次 变量声明关键词 varconstletclassfunctio…...

Java面试题总结

文章目录前言1、JDK1.8 的新特性有哪些&#xff1f;2、JDK 和 JRE 有什么区别&#xff1f;3、String&#xff0c;StringBuilder&#xff0c;StringBuffer 三者的区别&#xff1f;4、为什么 String 拼接的效率低&#xff1f;5、ArrayList 和 LinkedList 有哪些区别&#xff1f;6…...

深圳大学计软《面向对象的程序设计》实验7 拷贝构造函数与复合类

A. Point&Circle(复合类与构造) 题目描述 类Point是我们写过的一个类&#xff0c;类Circle是一个新的类&#xff0c;Point作为其成员对象&#xff0c;请完成类Circle的成员函数的实现。 在主函数中生成一个圆和若干个点&#xff0c;判断这些点与圆的位置关系&#xff0c;…...

Java的JVM(Java虚拟机)参数配置

JVM原理 &#xff08;1&#xff09;jvm是java的核心和基础&#xff0c;在java编译器和os平台之间的虚拟处理器&#xff0c;可在上面执行字节码程序。 &#xff08;2&#xff09;java编译器只要面向jvm&#xff0c;生成jvm能理解的字节码文件。java源文件经编译成字节码程序&a…...

leetcode 困难 —— 数据流的中位数(优先队列)

题目&#xff1a; 中位数是有序整数列表中的中间值。如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化…...

7个常用的原生JS数组方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 7个常用的原生JS数组方法一、Array.map()二、Array.filter三、Array.reduce四、Array.forEach五、Array.find六、Array.every七、Array.some总结一、Array.map() 作用&#…...

一、一篇文章打好高数基础-函数

1.连续函数的性质考点分析函数的连续性主要考察函数的奇偶性、有界性、单调性、周期性。例题判断函数的奇偶性的有界区间为&#xff08;&#xff09; A.(-1,0) B(0,1) C(1,2) D(2,3)2.闭区间上连续函数的性质考点分析闭区间上连续函数的性质主要考察函数的最大最小值定理、零点…...

pipenv的基本使用

一. pipenv 基础 pipenv安装&#xff1a; pip install pipenvpipenv常用命令 pipenv --python 3 # 创建python3虚拟环境 pipenv --venv # 查看创建的虚拟环境 pipenv install 包名 # 安装包 pipenv shell # 切换到虚拟环境中 pip list # 查看当前已经安装的包&#xff0…...

OpenCV入门(三)快速学会OpenCV2图像处理基础

OpenCV入门&#xff08;三&#xff09;快速学会OpenCV2图像处理基础 1.颜色变换cvtColor imgproc的模块名称是由image&#xff08;图像&#xff09;和process&#xff08;处理&#xff09;两个单词的缩写组合而成的&#xff0c;是重要的图像处理模块&#xff0c;主要包括图像…...

基于PySide6的MySql数据库快照备份与恢复软件

db-camera 软件介绍 db-camera是一款MySql数据库备份&#xff08;快照保存&#xff09;与恢复软件。功能上与dump类似&#xff0c;但是提供了相对有好的交互界面&#xff0c;能够有效地管理导出的sql文件。 使用场景 开发阶段、测试阶段&#xff0c;尤其适合单人开发的小项目…...

个人网站有必要备案吗/伟哥seo博客

<marquee>滚动标签 <marquee>标签&#xff0c;它是成对出现的标签&#xff0c;首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容。<marquee>标签的属性主要有behavior、bgcolor、direction、width、height、hspace、vspace、loop、scro…...

国内外做的比较好的家装网站/关键词完整版

2019独角兽企业重金招聘Python工程师标准>>> 一.RabbitMq的术语解释 exchange:交换机&#xff0c;一个交换机可以有多个路由&#xff08;而每一个路由分别指向一个队列&#xff09;。 queue&#xff1a;队列&#xff0c;一个队列可以对应多个交换机。 route-key:路由…...

龙岗区网站建设/舟山seo

芯片缺货的情况依然没有缓解&#xff0c;ST的单片机价格也是居高不下&#xff0c;最近的一个设计中&#xff0c;使用了航顺的一款单片机HK32F103C8T6&#xff0c;价格要比ST的便宜不少&#xff0c;硬件兼容&#xff0c;软件需要做少量改动&#xff0c;上手起来还是比较容易。但…...

请人做彩票网站多少钱/网络营销环境

http://blog.orange11.nl/2009/09/17/exploring-the-world-of-android-part-2/...

网站服务器在国外的如何做百度推广/西安网站seo技术厂家

前言 金三银四&#xff0c;又是一年校招季。 经历过&#xff0c;才深知不易。最近&#xff0c;和作为校招面试官的同事聊了聊&#xff0c;问他们是如何去考察一个学生的&#xff0c;我简单归为以下几点&#xff1a; 聪明、反应快&#xff0c;这点自不必说&#xff0c;聪明意…...

做分类信息网站赚钱吗/网络广告的形式有哪些?

安装 在 Mac 下可以直接使用 homebrew 安装 nginx brew search nginxbrew install nginx启动 nginx: sudo nginx&#xff0c;访问 8080 应能看到欢迎界面 nginx -V 查看 nginx 的启动参数&#xff0c;配置文件的位置默认是 --conf-path/usr/local/etc/nginx/nginx.conf #重新加…...