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 表名; 查询多个字段,使用“,”隔开 select 字段名,字段名 from 表名; 查询所有字段 1.把每个字段都写上 select 字段名,字段名,字段名.. from 表名; 2.使用*(效率低,可读性差) select *…...
应急响应-ubuntu系统cpu飙高
这里写目录标题一、排查过程二、处置过程三、溯源总结一、排查过程 1、查看CPU使用情况 top -c2、查看异常进程的具体参数 ps -aux3、通过微步查询域名信息 4、查看异常进程的监听端口 netstat -anlpt5、查找服务器内的异常文件 ls cat run.sh cat mservice.sh6、查看脚本…...
MDK软件使用技巧
本文主要汇总MDK软件使用技巧 一、字体大小及颜色修改 第一步点击工具栏的这个小扳手图标 进去后显示如下,先设置 Encoding 为:Chinese GB2312(Simplified),然后设置 Tab size 为:4 以更好的支持简体中文,否则&…...
3 333333
全部 答对 答错 单选题 1. 一个项目来取代目前公司的文件存储系统已经获批。外部供应商提供硬件,内部团队开发软件。这个团队是自组织的,由一般的专家组成。团队建议迭代地与供应商合作,但供应商表示拒绝。因此,只有软件将被迭代…...
1528. 重新排列字符串
1528. 重新排列字符串https://leetcode.cn/problems/shuffle-string/ 难度简单52收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新…...
【8】【用户操作日志】操作日志SpringBootStarter
操作日志 此版本操作日志主要就是通过AOP拦截器实现的,整体主要分为AOP拦截器、自定义函数、日志上下文、扩展接口;组件提供了6个扩展点,自定义函数、日志上下文、用户信息获取,日志保存,自定义异常获取,入…...
【游戏逆向】寻路函数隐藏检测点分析
案例: 某游戏出现调用寻路函数失败异常崩溃。 基本情况分析: 在刚登陆游戏的时候直接调用寻路函数崩溃。 手动寻路以后再调用寻路不崩溃。(排除了函数编写错误的可能) 猜测可能检测方法: 有某一个标志位(全局类型)在游戏刚登陆的时候没…...
【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法
【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法 一、检查Zabbix监控平台状态1.检查Zabbix各组件容器状态2.奸诈Zabbix-server状态二、下载监控模板1.进入Zabbix官网下载页面2.查看下载模板三、创建一个测试容器1.创建一个测试容器2.检查测试容器状态3.访问测试web服务四、…...
这款 Python 工具进行数据分析及数据可视化真的很棒啊
前言 大家好,今天我们以全国各地区衣食住行消费数据为例,来分析2022年中国统计年鉴数据,统计全国各地人民的消费地图,看看: 哪个省份的人最能花钱 哪个省份的人最舍得花钱 哪个省份的人最抠门 全国各地区人民在吃、穿…...
visual Studio Code常用快捷键
1、向上/向下移动代码行 alt 下箭头/上箭头 2、向上/向下复制一行代码 shiftalt 下箭头/上箭头 3、选定多个相同的单词 ctrl d 4、全局替换 ctrl h 5、快速定位到某一行 ctrl g 6、放大缩小整个编辑器界面 ctrl / - 7、添加多个光标 Ctrl Alt 上箭头/下箭头…...
基础(一)十六进制转八进制
试题 基础练习 十六进制转八进制 资源限制 内存限制:512.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第…...
梯度提升算法决策过程的逐步可视化
梯度提升算法是最常用的集成机器学习技术之一,该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础,所以在这篇文章中,我们将从头开始构建一个梯度增强模型并将其可视化。 梯度提升算法介绍 梯度提升算法&#x…...
Linux系统调用之文件属性操作函数
前言 如果,想要深入的学习Linux系统调用中access,chmod,chown,truncate这些有关于文件属性的操作函数,还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令: man 2 access/chmod/chown/truncate 即可…...
VMware 安装 银河麒麟高级服务器操作系统 V10 + QT 开发环境搭建
下载并安装vmware 下载银河麒麟操作烯烃服务器版v10的镜像文件从官网下载,因为是x86的电脑芯片,选择AMD64版,即vmare 安装麒麟操作系统注意事项:安装位置选择自动分区网络和主机名设置打开网络,ip4就不用再设置了创建一…...
2023年疫情开放,国内程序员薪资涨了还是跌了?大数据告诉你答案
自从疫情开放,国内各个行业都开始有复苏的迹象,尤其是旅游行业更是空前暴涨,那么互联网行业如何? 有人说今年好找工作多了,有人说依然是内卷得一塌糊涂,那么今年开春以来,各个岗位的程序员工资…...
太赫兹频段耦合器设计相关经验总结
1拿到耦合器的频段后,确定中心频率和波导的宽度和高度 此处贴一张不同频段对应的波导尺寸图 需要注意的是1英寸 2.54厘米,需注意换算 具体网址:矩形波导尺寸 | 扩维 (qualwave.com) 仅列举我比较常用的太赫兹频段部分 2.以220~320GHz频段&a…...
反弹shell数据不回显带外查询pikaqiu靶场搭建
P1 文件上传下载(解决无图形化和解决数据传输) 解决无图形化: 当我们想下载一个文件时,通常是通过浏览器的一个链接直接访问网站点击下载的,但是在实际的安全测试中,我们获取的权限只是一个执行命令的窗口…...
按键修改阈值功能、报警功能、空气质量功能实现
按键修改阈值功能 要使用按键,首先要定义按键。通过查阅资料,可知按键的引脚如图所示:按键1(S1)通过KEY0与PA0连接,按键2(S2)通过KEY1与PE2连接,按键3(S3&…...
spring重点整理篇--springMVC(嘿嘿,开心哟)
Spring MVC是的基于JavaWeb的MVC框架,是Spring框架中的一个组成部分(WEB模块) MVC设计模式: Controller(控制器) Model(模型) View(视图) 重点来了😄 SpringMVC的工作机制…...
图像融合评估指标Python版
图像融合评估指标Python版 这篇博客利用Python把大部分图像融合指标基于图像融合评估指标复现了,从而方便大家更好的使用Python进行指标计算,以及一些I/O 操作。除了几个特征互信息的指标没有成功复现之外,其他指标均可以通过这篇博客提到的P…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
