MySQL学习笔记九

第十一章使用数据处理函数

11.1函数

SQL支持函数来处理数据但是函数的可移植性没有SQL强。

11.2使用函数

11.2.1文本处理函数

输入:

SELECT vend_name,UPPER(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;

输出:

说明:UPPER()将文本转换为大写。

输入:

SELECT vend_name,LEFT(vend_name,3) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;

输出:

说明:LEFT()函数用来从字符串左侧截取文本,LEFT(要截取的文本,截取的位数)。

输入:

SELECT vend_name,LENGTH(vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:LENGRH(字符串)函数用来返回字符串的长度。

输入:

SELECT vend_name,LOCATE('ou',vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:LOCATE(待查找的字符串,被查找的字符串)找出串的一个子串,返回的是子串在串中的位置。

输入:

SELECT vend_name,LOCATE('ou',vend_name,4) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:LOCATE(待查找的字符串,被查找的字符串,从第几个字符串开始查找)从串的第几个位置开始找出串的一个子串,返回的是子串在串中的位置。

输入:

SELECT vend_name,LOWER(vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:LOWER(字符串)将串转换为小写。

输入:

SELECT vend_name,RIGHT(vend_name,3) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:RIGHT(字符串,截取位数)从右边截取字符串相应的位数。

输入:

SELECT cust_name,cust_contact
FROM customers
WHERE cust_contact = 'Y. Lie';

输出:

输入:

SELECT cust_name,cust_contact
FROM customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Y. Lie');

输出:

说明:SOUNDEX()返回串的SOUNDEX值。SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但MySQL(就像多数DBMS一样)都提供对SOUNDEX的支持。

第一次查询之所以找不到相应的结果,是因为表中录入的数据存在错误,使用SOUNDEX()函数就可以在读音类似的情况下规避掉这种问题。

输入:

SELECT vend_name,SUBSTR(vend_name FROM 2 FOR 3) AS vend_name_change
FROM vendors
ORDER BY vend_name;

输出:

说明:SUBSTRING(字符串,FROM 开始位数 FOR 子串长度)返回串的子串。

11.2.2日期和时间处理函数

输入:

SELECT cust_id, order_num
FROM orders
WHERE order_date = '2005-09-01';

输出:

说明:MySQL使用的日期格式为yyyy-mm-dd。但是这样的检索中可能存在由于储存的时间不仅仅包含了日期还包含了时间,此时单单凭借日期的检索是很难实现的。

输入:

SELECT cust_id, order_num
FROM orders
WHERE DATE(order_date) = '2005-09-01';

输出:

说明:DATE()函数返回日期时间的日期部分。这样的比较是更加可靠的。

输入:

SELECT TIME('2025-04-08 13:45:00');

输出:

说明:TIME()返回的日期时间的时间部分。

输入:

SELECT ADDDATE('2025-04-08',1);

输出:

说明:ADDDATE(日期,所增加天数/周等),在日期上增加一段时间。

输入:

SELECT ADDDATE('2025-04-08',-1);

输出:

说明:也可以减少,只需要把INTERVAL变为负数即可。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 HOUR);

输出:

说明:增加两个小时。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 HOUR);

输出:

说明:减少两个小时。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 MINUTE);

输出:

说明:增加两分钟。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 MINUTE);

输出:

说明:减少两分钟。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 SECOND);

输出:

说明:增加两秒。

输入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 SECOND);

输出:

说明:减少两秒。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 WEEK);

输出:

说明:可以变更后面的UNIT实现不同时间段的增减。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 WEEK);

输出:

说明:减少两周。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 MONTH);

输出:

说明:变更为MONTH就是两个月的增加。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 MONTH);

输出:

说明:也可以减少,只需要把INTERVAL变为负数即可。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 YEAR);

输出:

说明:也可以增加两年。

输入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 YEAR);

输出:

说明:减少两年。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',2);

输出:

说明:增加两秒。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',-2);

输出:

说明:减少两秒。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',200);

输出:

说明:增加两分钟。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',-200);

输出:

说明:减少两分钟。

输入:

SELECT ADDTIME('2025-04-08 14:18:00','00:01:00');

输出:

说明:增加一分钟。

输入:

SELECT ADDTIME('2025-04-08 14:18:00','-00:01:00');

输出:

说明:减少一分钟。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',10000);

输出:

说明:增加一小时。

输入:

SELECT ADDTIME('2025-04-08 14:18:00',-10000);

输出:

说明:减少一小时。

输入:

SELECT ADDTIME('2025-04-08 14:18:00','01:00:00');

输出:

说明:增加一小时。

输入:

SELECT ADDTIME('2025-04-08 14:18:00','-01:00:00');

输出:

说明:减少一小时。

输入:

SELECT CURDATE();

输出:

说明:返回当前日期。

输入:

SELECT CURTIME();

输出:

说明:返回当前时间。

输入:

SELECT DATEDIFF('2025-04-08','2025-04-10');

输出:

说明:返回两个日期之间的差值。结果以天数形式返回。

输入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 YEAR);

输出:

说明:DATE_ADD()高度灵活的日期计算函数。这里使用的是在当前日期上增加两年。

输入:

SELECT DATE_ADD('2025-04-08',INTERVAL -2 YEAR);

输出:

说明:在当前日期上减少两年

输入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 QUARTER),
DATE_ADD('2025-04-08',INTERVAL -2 QUARTER);

输出:

说明:QUARTER是季度的意思。

输入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 HOUR),DATE_ADD('2025-04-08',INTERVAL -2 HOUR);

输出:

说明:增加或减少两个小时。

输入:

SELECT DATE_FORMAT(CURDATE(), '%Y-%m-%d');

输出:

说明:返回一个格式化的日期或字符串。

输入:

SELECT DATE_FORMAT(CURDATE(), '%Y/%m/%d');

输出:

输入:

SELECT DAY(CURDATE());

输出:

说明:DAY()函数返回一个日期的天数部分。

输入:

SELECT DAYOFWEEK(CURDATE());

输出: 

说明:DAYOFWEEK()函数返回对应的星期几。但是这里需要注意数字1对应的是周日,以此类推。这里的3代表的是星期二。

输入:

SELECT HOUR(CURTIME());

输出:

说明:HOUR()函数返回一个时间的小时部分。

输入:

SELECT MINUTE(CURTIME());

输出:

说明:MINUTE()函数返回一个时间的分钟部分。

输入:

SELECT MONTH(CURTIME());

输出:

说明:MONTH()函数返回一个时间的月份部分。

输入:

SELECT SECOND(CURTIME());

输出:

说明:SECOND()函数返回一个时间的秒部分。

输入:

SELECT TIME(CURTIME());

输出:

说明:TIME()函数返回一个日期时间的时间部分。

输入:

SELECT YEAR(CURTIME());

输出:

说明:YEAR()函数返回一个日期的年份部分。

输入:

SELECT NOW();

输出:

说明:NOW()返回当前日期和时间。

11.2.3数值处理函数

输入:

SELECT ABS(-5.2);

输出:

说明:ABS()函数返回一个数的绝对值。

输入:

SELECT COS(PI()/3);

输出:

说明:COS()函数返回一个角度的余弦值。PI()表示π

输入:

SELECT EXP(1);

输出:

说明:EXP()函数返回一个数的指数值。以e为底数。

输入:

SELECT MOD(12,5);

输出:

说明:MOD()函数返回除操作的余数值。

输入:

SELECT RAND();

输出:

说明:RAND()函数返回一个随机数。

输入:

SELECT SIN(PI()/6);

输出:

说明:SIN()函数返回一个角度的正弦值。

输入:

SELECT TAN(PI()/4);

输出:

说明:TAN()函数返回一个角度的正切。

输入:

SELECT SQRT(4);

输出:

说明:SQRT()函数返回一个数的平方根。

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

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

相关文章

认识vue中的install和使用场景

写在前面 install 在实际开发中如果你只是一个简单的业务实现者,那么大部分时间你是用不到install的,因为你用到的基本上都是别人封装好的插件、组件、方法、指令等等,但是如果你需要给公司的架构做建设,install就是你避不开的一个…

【SpringCloud】构建分布式系统的利器

一、引言 在当今数字化时代,随着业务规模的不断扩大和用户量的急剧增长,单体应用逐渐暴露出诸多局限性,如可扩展性差、维护困难等。分布式系统应运而生,而 Spring Cloud 则成为了构建分布式系统的热门框架之一。它提供了一系列丰…

mkdir通配符详解

在 mkdir 命令中使用通配符可以简化批量创建目录的操作。通配符如 {} 和 * 可以用来生成多个目录名称,从而减少重复输入。以下是一些常见的使用方法和示例。 使用 {} 通配符 {} 通配符可以用来生成一系列的目录名称,语法如下: mkdir dir_{…

Transformer的Word Embedding

一、Transformer 中的词嵌入是什么? 1. 定义与作用 • 词嵌入(Word Embedding):将离散的词语映射为低维连续向量,捕捉语义和语法信息。 • 在 Transformer 中的位置: • 输入层:每个词通过嵌入…

Linux 进程间通信:信号机制

Linux 进程间通信:信号机制 在多进程操作系统中,进程之间的通信至关重要,尤其是在Linux系统中,信号(Signal)作为一种特殊的进程间通信方式,广泛用于进程之间的协调和控制。信号可以看作是操作系…

基于TRIZ创新方法论的九屏法分析系统

1. 文件头与库导入 # -*- coding: utf-8 -*- import streamlit as st import pandas as pd import numpy as np import plotly.graph_objects as go from datetime import datetime from sklearn.ensemble import RandomForestRegressor ​​作用​​:设置文件编码…

【LangChain框架组成】 LangChain 技术栈的模块化架构解析

目录 整体架构概述 整体架构层级划分 模块详细解析 1. 部署与服务层(LangServe & Deployments) 2. 应用模板层(Templates & Committee Architectures) 3. 核心功能层(LangChain) 4. 社区扩展…

自定义数据结构的QVariant序列化 ASSERT failure in QVariant::save: “invalid type to save“

自定义数据结构放入QVariant,在序列化时抛出异常 ASSERT failure in QVariant::save: “invalid type to save” 自定义数据结构如struct MyData,除了要在结构体后面加 struct MyData { ... } Q_DECLARE_METATYPE(MyData)如果需要用到流的输入输出&…

vxe-table 启用 checkbox-config.reserve 实现分页复选框选择功能、获取已选数据的用法

vxe-table 启用 checkbox-config.reserve 实现分页复选框选择功能、获取已选数据的用法 查看官网:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:https://gitee.com/x-extends/vxe-table 效果 代码 获取已选择…

蓝桥杯-门牌制作

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝要为一条街的住户制作门牌号。 这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。 小蓝制作门牌的方法是先制作 00 到 99 这几个数字…

C#调用Lua方法1+C#调用Lua方法2,3

xLua中Lua调用C#代码 原因:C#实现的系统,因为Lua可以调用,所以完全可以换成Lua实现,因为Lua可以即时更改,即时运行,所以游戏的代码逻辑就可以随时更改。 实现和C#相同效果的系统,如何实现&#…

macOS Chrome - 打开开发者工具,设置 Local storage

文章目录 macOS Chrome - 打开开发者工具设置 Local storage macOS Chrome - 打开开发者工具 方式2:右键点击网页,选择 检查 设置 Local storage 选择要设置的 url,显示右侧面板 双击面板,输入要添加的内容 2025-04-08&#xff…

zustand 源码解析

文章目录 实现原理createcreateStore 创建实例CreateStoreImpl 实现发布订阅createImpl 包装返回给用户调用的 hookuseSyncExternalStoreWithSelector 订阅更新zustand 性能优化自定义数据更新createWithEqualityFncreateWithEqualityFnImpl 返回 hookuseSyncExternalStoreWith…

kotlin,Android,jetpack compose,日期时间设置

AI生成,调试出来学习,这些小组件会用了,就可以组合一个大点的程序了。 package com.example.mydatetimeimport android.app.AlertDialog import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.co…

构建k8s下Helm私有仓库与自定义Chart开发指南

#作者:程宏斌 文章目录 自定义helm模板1、开发自己的chare包2、调试chart3、安装chart 自定义helm模板 https://hub.helm.sh/ 1、开发自己的chare包 [rootmaster ~]# helm create mychare //创建一个名为mychare的chare包 [rootmaster ~]# tree -C mychare/ //以…

MOP数据库中的EXPLAIN用法

EXPLAIN 是 SQL 中的一个非常有用的工具,主要用于分析查询语句的执行计划。执行计划能展示数据库在执行查询时的具体操作步骤,像表的读取顺序、使用的索引情况、数据的访问方式等,这有助于我们对查询性能进行优化。 语法 不同的数据库系统&…

项目范围蔓延的十大诱因及应对策略

项目范围蔓延的十大诱因及应对策略是什么?主要在于: 缺乏清晰目标、利益相关方过多、需求变更未及时管控、缺少优先级体系、沟通链条冗长、管理层干预频繁、资源与预算不匹配、技术风险被低估、合同或协议不完善、缺乏阶段性验收与复盘。其中缺乏清晰目标…

做好一个测试开发工程师第二阶段:java入门:idea新建一个project后默认生成的.idea/src/out文件文件夹代表什么意思?

时间:2025.4.8 一、前言 关于Java与idea工具安装不再展开,网上很多教程,可以自己去看 二、project建立后默认各文件夹代表意思 1、首先new---->project后会得到文件如图 其中: .idea文件代表:存储这个项目的历史…

算法进阶指南 分形

问题描述 分形,具有以非整数维形式充填空间的形态特征。通常被定义为: “一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。 现…

18-产品经理-跟踪进度

禅道是一个可以帮助产品经理跟踪研发进度的系统。通过禅道,产品经理可以从多个角度了解产品的研发状态。在仪表盘中,可以展示所有产品或单一产品的概况,包括需求、计划和发布数量,研发需求状态,Bug修复率和计划发布数。…