数据库处理函数

news/2024/4/28 19:26:01/文章来源:https://blog.csdn.net/Hdhdi/article/details/136974810

目录

一、单行处理函数

二、多行处理函数(分组函数) 


一、单行处理函数

单行处理函数常见的有哪些?

1、lower 转换小写        select lower(ename) as ename from emp;

2、upper 转换大写        select upper(name) as name from t_student;

3、substr取子串(substr(被截取的字符串,起始下标,截取的长度))

select substr(ename, 1, 1) as ename from emp;        注意:起始下标从1开始,没有0.

找出员工名字第一个字母是A的员工信息?

        第一种方式:模糊查询        select ename from emp where ename like 'A%';

        第二种方式:substr函数      select ename from emp where substr (ename,1,1) = 'A';

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

                                  select concat (upper (substr (name,1,1)) ,substr (name,2,length (name) - 1))                         as result from t_student;

4、length 取长度        select length (ename)enamelength from emp;

5、trim 去空格        select * from emp where ename = trim('    KING');

6、str_ to date 将字符串转换成日期

7、date format 格式化日期

8、format 设置千分位

9、round 四舍五入        

        select round(1236.567,1) as result from emp;//保留1个小数

        select round(1236.567,2) as result from emp;//保留2个小数

        select round(1236.567,-1) as result from emp;//保留到十位。

10、rand()生成随机数        select rand() from emp;

11、ifnull可以将null转换成一个具体值

注意:NULL只要参与运算,最终结果一定是NULL。为了避免这个现象,需要使用ifnull函数。ifnull函数用法:ifnull(数据,被当做哪个值)如果“数据”为NULL的时候,把这个数据结构当做哪个值。

补助为NULL的时候,将补助当做0        

        select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp;

12、concat函数进行字符串的拼接        select concat(empno,ename) from emp;

13、case..when..then.when..then..else..end

当员工的工作岗位是MANAGER的时候,工资上调108,当工作岗位是SALESMAN的时候,工资上调508,其它正常。|(注意:不修改数据库,只是将查询结果显示为工资上调)

select ename,job,sal from emp;

select

        ename,

        job,

        (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal

from

        emp;

二、多行处理函数(分组函数) 

多行处理函数的特点:输入多行,最终输出一行。

5个:count 计数          select count (ename) from emp;

         sum 求和            select sum(sal) from emp;

         avg 平均值          select avg(sal) from emp;

         max 最大值         select max(sal) from emp;

         min 最小值          select min(sal) from emp;

注意:

        1、分组函数在使用的时候必须先进行分组,然后才能用。

        2、如果没有对数据进行分组,整张表默认为一组。

        3、分组函数自动忽略NULL,你不需要提前对NULL进行处理。

        4、分组函数中count(*)和count(具体字段)有什么区别?

                count(具体字段):表示统计该字段下所有不为NULL的元素的总数。

                count(*):统计表当中的总行数。(只要有一行数据count则++)因为每一行记录不可

        能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。

        5、分组函数不能够直接使用在where子句中。

                因为分组函数在使用的时候必须先分组之后才能使用。where执行的时候,还没有分

        组。所以where后面不能出现分组函数。

        6、所有的分组函数可以组合起来一起用。

分组查询

        1、在实际的应用中,可能有这样的需求,需要先进行分组,然后对每一组的数据进行操作。这个时候我们需要使用分组查询。

        select

                ...

        from

                ...

        group by

        ...

        计算每个部门的工资和?         select job,sum(sal) from emp group by job; 

        注意:在一条select语句当中,如果有group by语句的话,select后面只能跟:参加分组的字段,以及分组函数。其它的一律不能跟。  

        找出每个部门的最高薪资?        select deptno,max (sal) from emp group by deptno;
     

        2、使用having可以对分完组之后的数据进一步过滤。having不能单独使用,having不能代替where,having必须和group by联合使用。

        eg:要求显示最高薪资大于3000

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

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

        优化策略:where和having,优先选择where,where实在完成不了了,再选择having。 

   3、将之前的关键字全部组合在一起,来看一下他们的执行顺序?

                select...

                from...

                where...

                group by...

                having...

                order by...

        以上关键字的顺序不能颠倒1.from  2. where  3. group by  4.having  5.select  6.order by

        从某张表中查询数据,先经过where条件筛选出有价值的数据。对这些有价值的数据进行分组。分组之后可以使用having继续筛选。select查询出来。最后排序输出!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1026367.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务篇-C 深入理解第一代微服务(SpringCloud)_V 深入理解Config分布式配置中心

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 Part 1 理论部分 1 什么是SpringCloud Config? 当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务&am…

电脑访问网页获取路由器WAN口内网IP

因为运维过程中容易出现路由器配置了固定IP但是没人知道后台密码,不确定这个办公室的IP地址,且使用tracert路由追踪也只会出现路由器的LAN口网关并不会出现WAN口IP。 今日正好遇到了个好方法,经过测试可以正常使用。 方法如下: 内…

Jenkins用户角色权限管理

Jenkins作为一款强大的自动化构建与持续集成工具,用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定,避免敏感信息泄露。 1、安装插件:Role-based Authorization Strategy 系统管理 > 插件管理 > 可…

大话设计模式之模板方法模式

模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类…

c++的学习之路:5、类和对象(1)

一、面向对象和面向过程 在说这个定义时,我就拿c语言举例,在c语言写程序的时候,基本上就是缺什么函数,就去手搓一个函数,写的程序也只是调用函数的,而c就是基于面向对象的开发,他关注的不再是单…

5、双亲委派机制

双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过, 再由顶向下进行加载。 详细流程: 每个类加载器都有一个父类加载器。父类加载器的关系如下,启动类加载器没有父类加载器&#xff1…

WPF使用外部字体,思源黑体,为例子

1.在工程中新建文件夹&#xff0c;命名为“Font"。 2.将下载好的字体文件复制到Font文件夹。 3.在工程中&#xff0c;加入静态资源 <Window.Resources><FontFamily x:Key"SYBold">/AnalyzeImage;Component/Font/#思源黑体 CN Bold</FontFamily…

【亲测】如何注册使用Midjourney

文章目录 1.Midjourney是什么2.Midjourney适合哪些人群3.如何订阅Midjourney3.1&#xff1a;注册登录步骤3.2&#xff1a;选择订阅方案3.3&#xff1a;用虚拟信用卡付费订阅 4.Midjourney基础使用教程 原文链接&#xff1a; Midjourney 如何订阅注册及使用基础教程 OnlyFans …

Python提示‘ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘

一、问题背景 在学习Python编程使用matplotlib时&#xff0c;总是提示: ModuleNotFoundError: No module named numpy.core._multiarray_umath 问题大致描述如下&#xff1a; D:\WorkSpace\PythonWorkSpace\Python编程-从入门到实践\venv\Scripts\python.exe D:\WorkSpace\Pyt…

Linux 进程通信:匿名管道、实现进程池

目录 一、进程间通信 1、 为什么需要进程通信 2、发展和分类 二、管道 1、概念 2、特点 2、复制并共享 3、用fork来共享管道原理 4、站在文件描述符角度-深度理解管道 5、站在内核角度-管道本质 三、匿名管道 1、概念 2、创建 3、snprintf 4、父子进程中进行单…

Java Swing游戏开发学习19

内容来自RyiSnow视频讲解 这一节讲的是**Entity ArrayList(Render Order Revised)**实体数组列表&#xff08;渲染顺序修改&#xff09;。 前言 由于NPC和player的实体碰撞区域比他们本身的大小要小&#xff0c;所以会造成一个bug&#xff0c;当前的绘制顺序是&#xff0c;NP…

High 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开靶场找到该漏洞页面 先右键检查输入框属性 还是和之前一样的&#xff0c;所以直接输入 HTML 标签提交…

StringRedisTemplate与RedisTemplate详解【序列化的方式不同】

spring 封装了 RedisTemplate 对象来进行对redis的各种操作&#xff0c;它支持所有的 redis 原生的 api。在RedisTemplate中提供了几个常用的接口方法的使用&#xff0c;分别是: private ValueOperations<K, V> valueOps; private HashOperations<K, V> hashOps; …

微服务(基础篇-006-Docker安装-CentOS7)

目录 05-初识Docker-Docker的安装_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p46&spm_id_frompageDriver&vd_source60a35a11f813c6dff0b76089e5e138cc 0.安装Docker 1.CentOS安装Docker 1.1.卸载&#xff08;可选&#xff09; 1.2.安装dock…

HCIP —— 生成树 (下)

目录 STP&#xff08;生成树&#xff09;的角色选举 根网桥 根端口 选举规则&#xff1a; 指定端口 生成树的端口状态 STP的接口状态&#xff1a;禁用、阻塞、侦听、学习、转发 五种状态 禁用状态 阻塞状态 侦听状态 学习状态 转发状态 当生成树拓扑结构发生变化 …

球面数据的几何深度学习--球形 CNN

目录 一、说明二、球形 CNN概述三、球面数据的对称性四、标准&#xff08;平面&#xff09;CNN的局限性五、卷积并发症六、球面卷积七、球面卷积是不够的 一、说明 球面数据的几何深度学习–球形 CNN。通过对物理世界的平移对称性进行编码&#xff0c;卷积神经网络 &#xff0…

3.21系统栈、数据结构栈、栈的基本操作、队列、队列的基本操作------------》

栈 先进后出、后进先出 一、系统栈 大小&#xff1a;8MB 1、局部变量 2、未经初始化为随机值 3、代码执行到变量定义时为变量开辟空间 4、当变量的作用域结束时回收空间 5、函数的形参和返回值 6、函数的调用关系、保护现场和恢复现场 7、栈的增长方向&#xff0c;自高…

yolov8 pose keypoint解读

yolov8进行关键点检测的代码如下&#xff1a; from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # pretrained YOLOv8n model# Run batched inference on a list of images results model([im1.jpg, im2.jpg]) # return a list of Results objects# Pr…

SD卡备份和烧录ubuntu20.04镜像

设备及系统&#xff1a;nuc幻影峡谷工控机&#xff0c;ubuntu20.04&#xff0c;树莓派4B&#xff0c;SD卡读卡器 一、确定SD卡设备号的两种方法 方法1&#xff1a; 将有ubuntu镜像的SD卡插入读卡器&#xff0c;再将读卡器插入电脑主机&#xff0c;在 工具 中打开 磁盘&#…

PostgreSQL FDW(外部表) 简介

1、FDW: 外部表 背景 提供外部数据源的透明访问机制。PostgreSQL fdw(Foreign Data Wrapper)是一种外部访问接口,可以在PG数据库中创建外部表,用户访问的时候与访问本地表的方法一样,支持增删改查。 而数据则是存储在外部,外部可以是一个远程的pg数据库或者其他数据库(…