详细分析Mysql常用函数(附Demo)

目录

  • 前言
  • 1. 聚合函数
  • 2. 字符串函数
  • 3. 日期函数
  • 4. 条件函数
  • 5. 数值函数
  • 6. 类型转换函数

前言

由于实战中经常运用,索性来一个总结文

创建一个名为 employees 的表,包含以下字段:

employee_id:员工ID,整数类型
first_name:员工名,字符串类型
last_name:员工姓,字符串类型
salary:工资,整数类型
hire_date:入职日期,日期类型

具体创建表格内容:

CREATE TABLE employees (employee_id INT,first_name VARCHAR(50),last_name VARCHAR(50),salary INT,hire_date DATE
);

数据内容:

INSERT INTO employees (employee_id, first_name, last_name, salary, hire_date) VALUES
(1, 'Alice', 'Smith', 60000, '2020-03-15'),
(2, 'Bob', 'Johnson', 75000, '2019-07-20'),
(3, 'Charlie', 'Brown', 50000, '2021-01-10'),
(4, 'David', 'Lee', 80000, '2018-11-05'),
(5, 'Emma', 'Garcia', 55000, '2022-05-28');

1. 聚合函数

以下函数比较简单,就不放结果图了

  • COUNT():计算行数或非空值的数量
    SELECT COUNT(*) AS total_employees FROM employees;
  • SUM():计算指定列的总和
    SELECT SUM(salary) AS total_salary FROM employees;
  • AVG():计算指定列的平均值
    SELECT AVG(salary) AS average_salary FROM employees;
  • MIN():找到指定列的最小值
    SELECT MIN(salary) AS min_salary FROM employees;
  • MAX():找到指定列的最大值
    SELECT MAX(salary) AS max_salary FROM employees;

2. 字符串函数

  • CONCAT():连接两个或多个字符串
    SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
    在这里插入图片描述

  • SUBSTRING():从字符串中提取子字符串
    SELECT SUBSTRING(first_name, 1, 2) AS initials FROM employees;
    在这里插入图片描述

  • LENGTH():计算字符串的长度
    SELECT first_name, LENGTH(first_name) AS name_length FROM employees;
    在这里插入图片描述

  • UPPER():将字符串转换为大写
    SELECT UPPER(last_name) AS last_name_upper FROM employees;
    在这里插入图片描述

  • LOWER():将字符串转换为小写
    SELECT LOWER(first_name) AS first_name_lower FROM employees;
    在这里插入图片描述

  • TRIM():去除字符串两端的空格
    SELECT TRIM(last_name) AS last_name_trimmed FROM employees;
    在这里插入图片描述

  • REPLACE():替换字符串中的子字符串
    SELECT REPLACE(first_name, 'a', 'A') AS replaced_name FROM employees;
    在这里插入图片描述

3. 日期函数

  • NOW():返回当前日期和时间

  • SELECT NOW() AS current_datetime;

  • DATE():从日期时间值中提取日期部分
    SELECT hire_date, DATE(hire_date) AS hire_date_only FROM employees;
    在这里插入图片描述

  • YEAR():从日期中提取年份
    SELECT hire_date, YEAR(hire_date) AS hire_year FROM employees;

  • MONTH():从日期中提取月份
    SELECT hire_date, MONTH(hire_date) AS hire_month FROM employees;

  • DAY():从日期中提取天数
    SELECT hire_date, DAY(hire_date) AS hire_day FROM employees;

  • DATEDIFF():计算两个日期之间的天数差异
    SELECT hire_date, DATEDIFF(NOW(), hire_date) AS days_since_hire FROM employees;
    在这里插入图片描述

4. 条件函数

  • case结构:
SELECTemployee_id,first_name,last_name,salary,CASEWHEN salary < 1000 THEN 'A'WHEN salary < 2000 THEN 'B'WHEN salary < 3000 THEN 'C'ELSE 'D'END AS salary_level
FROM employees;

截图如下:

在这里插入图片描述

  • if结构如下:
SELECTemployee_id,first_name,last_name,salary,IF(salary < 60000, '需要关注', '正常') AS status
FROM employees;

截图如下:

在这里插入图片描述

5. 数值函数

  • ROUND():四舍五入到指定的小数位数
SELECTemployee_id,first_name,last_name,salary,ROUND(salary) AS rounded_salary
FROM employees;
  • ABS():返回数的绝对值
SELECTemployee_id,first_name,last_name,salary,ABS(salary) AS absolute_salary
FROM employees;
  • SQRT():返回数的平方根
SELECTemployee_id,first_name,last_name,salary,SQRT(salary) AS sqrt_salary
FROM employees;

以上三个执行代码,数据都一样,截图如下:

在这里插入图片描述

6. 类型转换函数

CAST():将一个数据类型转换为另一个数据类型

(证书转换为浮点数,此处使用DECIMAL不是FLOAT)

SELECTemployee_id,first_name,last_name,salary,CAST(salary AS DECIMAL) AS salary_decimal
FROM employees;

截图如下:

在这里插入图片描述

其他函数:
IFNULL():如果表达式为 NULL,则返回替代值

SELECTemployee_id,first_name,IFNULL(last_name, 'Unknown') AS last_name_fixed,salary,hire_date
FROM employees;

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

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

相关文章

Linux的图形资源及指令

一、火车 1.切换到超级用户 su 2.下载资源 yum install -y sl 3.输入指令 sl&#xff0c;得到火车图形 如果没有得到该图形&#xff0c;就将2处改为yum install -y epel-release。 二、Linux的logo 1.在超级用户模式下下载资源 yum install -y linux_logo 2.输…

Eureka删除失效服务

方式一&#xff1a; curl -X DELETE http://主节点IP:1200/eureka/apps/LY-SM-BPM-EXPANSION-SVC/6dc2f49bca12:ly-sm-bpm-expansion-svc:6932 如果方式一过一会还会出现的话&#xff0c;采用 方式二&#xff1a; curl -X PUT http://主节点IP:1200/eureka/apps/LY-SM-BPM-…

物联网(iot)深度解析——FMEA软件

物联网即IoT&#xff0c;是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术&#xff0c;实时采集任何需要监控、连接、互动的物体或过程&#xff0c;采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息&#xff0c;通过…

C语言——字符函数与字符串函数

正文开始&#xff1a;在编程过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;C语⾔标准库中提供了 一系列库函数&#xff0c;接下来我们就学习⼀下这些函数。 1. 字符分类函数 C语⾔中有⼀系列的函数是专门做字符分类的&#…

android远程更新下载apk

最近业务有涉及到&#xff0c;奈何是个app代码小白&#xff0c;遂记录一下 一&#xff1a;AndroidManifest.xml文件配置 application标签里面加上 android:networkSecurityConfig"xml/network_config" <!-- app下载更新配置--> <uses-permission andr…

【Qt 学习笔记】Qt常用控件 | 显示类控件Progress Bar的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件Progress Bar的使用及说明 文章编号&#xff…

iOS NSFileManager获取设备硬盘剩余可用容量不准确问题

方法1. 通用 NSFileManager attributesOfFileSystemForPath: error: 方法2. available(iOS 11.0) NSURL resourceValuesForKeys: error: 发现问题&#xff1a;方法1获取到的剩余值并不准确&#xff0c;测得使用剩余值远小于实际的手机存储容量剩余。所以使用方法2优先。下面代…

网络防火墙技术知多少?了解如何保护您的网络安全

在当前以网络为核心的世界中&#xff0c;网络安全成为了至关重要的议题。网络防火墙是一种常见的保护网络安全的技术&#xff0c;用于监控和控制网络流量&#xff0c;阻止未经授权的访问和恶意活动。今天德迅云安全就带您了解下防火墙的一些相关功能和类型。 防火墙的五个功能…

完全卸载清理干净xcode

1、删除主磁盘的&#xff1a;资源库(Library)/ Preferences/com.apple.dt.Xcode.plist 2、删除用户下的&#xff1a;/Users/administrator/Library/Preferences/com.apple.dt.xcodebuild.plist 3、删除用户下的&#xff1a;/Users/administrator/Library/Preferences/com.app…

find和grep查找搜索命令常用的一些使用方式

目录 find和grep查找搜索命令常用的一些使用方式 一、find命令 二、grep命令 find和grep查找搜索命令常用的一些使用方式 一、find命令 我们知道在Windows系统中想要搜索查找文件&#xff0c;一般需要满足两个条件&#xff1a; 1、知道在哪些目录中查找 2、知道查找的内容&…

(助力国赛)数学建模可视化!!!含代码1(折线图、地图(点)、地图(线)、地图(多边形)、地图(密度)、环形图、环形柱状图、局部放大图)

众所周知&#xff0c;数学建模的过程中&#xff0c;将复杂的数据和模型结果通过可视化图形呈现出来&#xff0c;不仅能够帮助我们更深入地理解问题&#xff0c;还能够有效地向评委展示我们的研究成果。   今天&#xff0c;作者将与大家分享8种强大的数学建模可视化图形及其在…

.Net RabbitMQ(消息队列)

文章目录 一.RabbitMQ 介绍以及工作模式1.RabbitMQ的介绍&#xff1a;2.RabbitMQ的工作模式&#xff1a; 二.RabbitMQ安装1.安装Erlang语言环境2.安装RabbitMQ 三.在.Net中使用RabbitMQ1.HelloWorld模式2.工作队列模式3.发布订阅模式4.Routing路由模式和Topics通配符模式 一.Ra…

使用Python工具库SnowNLP对评论数据标注(二)

这一次用pandas处理csv文件 comments.csv import pandas as pd from snownlp import SnowNLPdf pd.read_csv("C:\\Users\\zhour\\Documents\\comments.csv")#{a: [1, 2, 3], b: [4, 5, 6], c: [7, 8, 9]}是个字典 emotions[] for txt in df[sentence]:s SnowNLP(…

Kali Linux扩容(使用图形化界面)

因为今天在拉取vulhub中的镜像的时候报错空间不够&#xff0c;因为最开始只给了20GB的空间&#xff0c;所以现在需要扩容了&#xff0c;结合了一下网上的找到了简便的解决方法 1.首先虚拟机设置->磁盘->扩展 小插曲&#xff1a;在对虚拟机磁盘进行扩容以后&#xff0c;…

【数学建模】建筑工地开工问题

题目&#xff1a; 某公司有 6 6 6个建筑工地要开工&#xff0c;每个工地的位置(用平面坐标 ( a , b ) (a,b) (a,b)表示&#xff0c;距离单位: k m km km)及水泥日用量 d ( 单位 : t ) d(单位:t) d(单位:t)由下表给出&#xff0c;目前有两个临时料场位于 P ( 5 , 1 ) &#xff0…

linux启动minicom、u-boot的常用命令、网络命令tftp、nfs/根文件系统、u-boot的bootargs环境变量

linux启动minicom sudo minicom -con进入minicom界面&#xff1a; 打开单片机 在打开之后&#xff0c;我们通过 printenv查看环境配置 在修改配置之前&#xff0c;我们最好先将环境初始化一下&#xff0c;初始化代码为 nand erase.chipu-boot的常用命令 尽管u-boot是一个…

element-ui组件封装技巧

element-ui组件封装技巧 1. 封装内外嵌套的组件 如breadcrumb和breadcrumb-item&#xff0c;这时需要把绑定到breadcrumb上的参数透传给子组件&#xff0c;于是可以 provide() {return {elBreadcrumb: this}; },子组件内&#xff1a; inject: [elBreadcrumb],访问的时候&am…

ObjectMapper解析JSON数据

ObjectMapper的作用 1.背景&#xff1a; 当我们调用API的时候捕获的数据&#xff0c;往往需要结合文档所定义的类进行转换&#xff0c;也就是Java对象与JSON 字符串之间的转换 2.作用&#xff1a; ObjectMapper 是 Jackson 库中的一个关键类&#xff0c;它的作用是将 JSON 数据…

Django中ValueError: localtime() cannot be applied to a naive datetime

这个特定的错误表明你试图将localtime()函数应用于一个“naive datetime”对象。在Python和Django中&#xff0c;datetime对象分为两种&#xff1a;naive&#xff08;无时区信息&#xff09;和aware&#xff08;有时区信息&#xff09;。localtime()函数期望一个aware datetime…

快手校招面试题

单选8道题&#xff08;每题四分&#xff09;&#xff08;操作系统&#xff0c;数据结构&#xff0c;计算机网络等&#xff09; 多选8道题&#xff08;每题四分&#xff09; 主要就是软考平常自己练的哪些选择填空。 然后是大题&#xff0c;一共三道&#xff08;每道17分&…