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

数据库对象

数据库对象

数据库对象是构成数据库结构的基本单位,它们定义了数据库存储的数据类型、数据的组织方式以及数据之间的关系。在数据库中,对象可以包括表,视图,索引,触发器,存储过程,函数等多种类型,每种类型的对象都有其特定的用途和功能。

数据库函数

MySQL函数是MySQL数据库提供的内部函数,这些内部函数可帮助用户更加方便的处理表中的数据。函数就像预定的公式一样存放在数据库里,每个用户都哭调用已经存在的函数来完成某些功能。

⚠️函数就是输入值然后得到相应的输出结果,输入值称为参数,输出值称为返回值。

函数库方便地实现业务逻辑的重用,并且MySQL数据库允许用户自己创建函数,以适应实际的业务操作。正确使用函数会让读者在编写sql语句时起到事半功倍的效果。

MySQL函数用来对数据表中的数据进行相应的处理,以便得到用户希望得到的数据,使MySQL数据库的功能更加强大。

MySQL函数包括数学函数,字符串函数,日期和时间函数,条件判断函数,系统信息函数和加密函数等。

数值型函数

1.取余函数MOD(x,y)

返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,它返回除法运算后的余数。

案例:


mysql> select mod(63,8),mod(120,10),mod(15.5,3);
+-----------+-------------+-------------+
| mod(63,8) | mod(120,10) | mod(15.5,3) |
+-----------+-------------+-------------+
|         7 |           0 |         0.5 |
+-----------+-------------+-------------+
1 row in set (0.00 sec)

2.取整函数

CEIL(X)和CEILING(X)的意义相同,返回不小于x的最小整数值,返回值转换为一个bigint。

案例1:

mysql> select ceil(-2.5),ceiling(2.5);
+------------+--------------+
| ceil(-2.5) | ceiling(2.5) |
+------------+--------------+
|         -2 |            3 |
+------------+--------------+
1 row in set (0.01 sec)

FLOOR(X)函数返回小于x的最大整数值。

案例2:

mysql> select floor(5),floor(5.66),floor(-4),floor(-4.66);
+----------+-------------+-----------+--------------+
| floor(5) | floor(5.66) | floor(-4) | floor(-4.66) |
+----------+-------------+-----------+--------------+
|        5 |           5 |        -4 |           -5 |
+----------+-------------+-----------+--------------+
1 row in set (0.00 sec)

RAND()函数被调用时,可以产生一个在0和1之间的随机数。

案例3:
 
mysql> select rand(),rand(),rand();
+--------------------+--------------------+----------------------+
| rand()             | rand()             | rand()               |
+--------------------+--------------------+----------------------+
| 0.6713687541627965 | 0.6082631588059134 | 0.027209562274822557 |
+--------------------+--------------------+----------------------+
1 row in set (0.00 sec)

由运行结果可知,每次调用rand()函数,都会随机生成一个0~1之间的随机数。

当时用整数作为参数时,rand()使用该值作为随机数的种子发生器。每次种子使用给定值生成,rand()将产生一个可重复的系列数字。

案例:


mysql> select rand(1),rand(),rand(1);
+---------------------+---------------------+---------------------+
| rand(1)             | rand()              | rand(1)             |
+---------------------+---------------------+---------------------+
| 0.40540353712197724 | 0.31125836569001747 | 0.40540353712197724 |
+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)

round(x)函数返回最接近x的整数

案例4:


mysql> select round(-6.6),round(-8.44),round(3.44);
+-------------+--------------+-------------+
| round(-6.6) | round(-8.44) | round(3.44) |
+-------------+--------------+-------------+
|          -7 |           -8 |           3 |
+-------------+--------------+-------------+
1 row in set (0.00 sec)

3.字符串函数

length(str)函数返回值为字符串str的字节长度。

案例1:

mysql> select length('name'),length('数据库');
+----------------+------------------+
| length('name') | length('数据库') |
+----------------+------------------+
|              4 |                6 |
+----------------+------------------+
1 row in set (0.00 sec)

concat(s1,s2,s3,…)函数返回结果为连接参数产生的字符串,或许有一个或者多个参数。

若有一个参数为null,则返回值为null。

案例2:

mysql> select concat('mysql','zbc'),concat('mysql',null);
+-----------------------+----------------------+
| concat('mysql','zbc') | concat('mysql',null) |
+-----------------------+----------------------+
| mysqlzbc              | NULL                 |
+-----------------------+----------------------+
1 row in set (0.01 sec)

替换字符串函数insert(s1,x,len,s2)返回字符串s1,起始于x位置,并且用len个字符串长的字符串代替s2。

若 x 超过字符串长度,则返回值为原始字符串。假如 len 的长度大于其他字符串的长度,则从位置 x 开始替换。若任何一个参数为 NULL,则返回值为 NULL。

案例3:

mysql> select insert('mysql',2,4,'zbc') as col1,insert ('mysql',-1,4,'zbc') as col2 ,insert('mysql',3,20,'zbc') as col3;+------+-------+-------+
| col1 | col2  | col3  |
+------+-------+-------+
| mzbc | mysql | myzbc |
+------+-------+-------+
1 row in set (0.01 sec)

lower函数将字符串中所有的字母字符转换成小写

案例4:

mysql> select lower('BLUE'),lower('bule');
+---------------+---------------+
| lower('BLUE') | lower('bule') |
+---------------+---------------+
| blue          | bule          |
+---------------+---------------+
1 row in set (0.00 sec)

字母大写转换函数 UPPER(str) 可以将字符串 str 中的字母字符全部转换成大写。

案例5:

mysql> select upper('green'),upper('GREen');
+----------------+----------------+
| upper('green') | upper('GREen') |
+----------------+----------------+
| GREEN          | GREEN          |
+----------------+----------------+
1 row in set (0.00 sec)

LEFT(s,n) 函数返回字符串 s 最左边的 n 个字符。

案例6:

mysql> select left('mysql',3);
+-----------------+
| left('mysql',3) |
+-----------------+
| mys             |
+-----------------+
1 row in set (0.00 sec)

RIGHT(s,n) 函数返回字符串 s 最右边的 n 个字符。


mysql> select right('mysql',3);
+------------------+
| right('mysql',3) |
+------------------+
| sql              |
+------------------+
1 row in set (0.00 sec)
案例7:

使用 REPLACE 函数进行字符串替换操作


mysql> select replace('aaa.mysql.com','a','w');
+----------------------------------+
| replace('aaa.mysql.com','a','w') |
+----------------------------------+
| www.mysql.com                    |
+----------------------------------+
1 row in set (0.00 sec)
案例8:

使用 REVERSE 函数反转字符串


mysql> select reverse('hello');
+------------------+
| reverse('hello') |
+------------------+
| olleh            |
+------------------+
1 row in set (0.00 sec)

4.日期和时间函数

CURDATE() 和 CURRENT_DATE() 函数的作用相同,将当前日期按照“YYYY-MM-DD”或“YYYYMMDD”格式

的值返回,具体格式根据函数用在字符串或数字语境中而定。

案例1:

mysql>  SELECT CURDATE(),CURRENT_DATE();
+------------+----------------+
| CURDATE()  | CURRENT_DATE() |
+------------+----------------+
| 2025-02-01 | 2025-02-01     |
+------------+----------------+
1 row in set (0.00 sec)

CURTIME() 和 CURRENT_TIME() 函数的作用相同,将当前时间以“HH:MM:SS”或“HHMMSS”格式返回,具体格式根据函数用在字符串或数字语境中而定。

案例2:

mysql> select curtime(),current_time();
+-----------+----------------+
| curtime() | current_time() |
+-----------+----------------+
| 16:52:17  | 16:52:17       |
+-----------+----------------+
1 row in set (0.00 sec)

NOW() 和 SYSDATE() 函数的作用相同,都是返回当前日期和时间值,格式为“YYYY-MM-DD HH:MM:SS”或“YYYYMMDDHHMMSS”,具体格式根据函数用在字符串或数字语境中而定。

案例3:

mysql> select now(),sysdate();
+---------------------+---------------------+
| now()               | sysdate()           |
+---------------------+---------------------+
| 2025-02-01 16:53:17 | 2025-02-01 16:53:17 |
+---------------------+---------------------+
1 row in set (0.00 sec)
案例4:

使用month函数返回指定日期中的月份


mysql> select month('2025-02-01');
+---------------------+
| month('2025-02-01') |
+---------------------+
|                   2 |
+---------------------+
1 row in set (0.00 sec)
案例5:

使用 MONTHNAME() 函数返回指定日期中月份的名称

mysql> select monthname('2025-02-01');
+-------------------------+
| monthname('2025-02-01') |
+-------------------------+
| February                |
+-------------------------+
1 row in set (0.01 sec)
案例6:

使用 DAYNAME(date) 函数返回指定日期的工作日名称。


mysql> select dayname('2025-02-01');
+-----------------------+
| dayname('2025-02-01') |
+-----------------------+
| Saturday              |
+-----------------------+
1 row in set (0.00 sec)

DAYOFWEEK(d) 函数返回 d 对应的一周中的索引(位置)。1 表示周日,2 表示周一,……,7 表示周六。这些索引值对应于ODBC标准。

案例7:

mysql> select dayofweek('2025-02-01');
+-------------------------+
| dayofweek('2025-02-01') |
+-------------------------+
|                       7 |
+-------------------------+
1 row in set (0.00 sec)
案例8:

使用week函数查询指定日期是一年中的第几周


mysql> select week('2025-02-01');
+--------------------+
| week('2025-02-01') |
+--------------------+
|                  4 |
+--------------------+
1 row in set (0.00 sec)
案例9:

DAYOFYEAR(d) 函数返回 d 是一年中的第几天,范围为 1~366。


mysql> select dayofyear('2025-02-01');
+-------------------------+
| dayofyear('2025-02-01') |
+-------------------------+
|                      32 |
+-------------------------+
1 row in set (0.00 sec)

相关文章:

数据库对象

数据库对象 数据库对象是构成数据库结构的基本单位,它们定义了数据库存储的数据类型、数据的组织方式以及数据之间的关系。在数据库中,对象可以包括表,视图,索引,触发器,存储过程,函数等多种类…...

EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析

EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析 0 预览一 该文件功能宏定义数据结构打印宏三 h文件翻译四 c文件翻译该文档修改记录:总结0 预览 一 该文件功能 该文件包含了一些全局定义和宏,用于 IgH EtherCAT 主站(EtherCAT Master)的实现。包括了一些超时设定、宏定义…...

2025多目标优化创新路径汇总

多目标优化是当下非常热门且有前景的方向!作为AI领域的核心技术之一,其专注于解决多个相互冲突的目标的协同优化问题,核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中,几乎处处都有它的身影。 但随着需求场景的…...

15JavaWeb——Maven高级篇

Maven高级 Web开发讲解完毕之后,我们再来学习Maven高级。其实在前面的课程当中,我们已经学习了Maven。 我们讲到 Maven 是一款构建和管理 Java 项目的工具。经过前面 10 多天 web 开发的学习,相信大家对于 Maven 这款工具的基本使用应该没什…...

使用Ollama本地化部署DeepSeek

1、Ollama 简介 Ollama 是一个开源的本地化大模型部署工具,旨在简化大型语言模型(LLM)的安装、运行和管理。它支持多种模型架构,并提供与 OpenAI 兼容的 API 接口,适合开发者和企业快速搭建私有化 AI 服务。 Ollama …...

蓝桥杯刷题DAY1:前缀和

所谓刷题,讲究的就是细心 帕鲁服务器崩坏【算法赛】 “那个帕鲁我已经观察你很久了,我对你是有些失望的,进了这个营地,不是把事情做好就可以的,你需要有体系化思考的能力。” 《幻兽帕鲁》火遍全网,成为…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯项目基本介绍 🚦项…...

MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译

感谢阅读 注意不含评估以后的翻译原论文地址标题以及摘要介绍部分MiniRAG 框架2.1 HETEROGENEOUS GRAPH INDEXING WITH SMALL LANGUAGE MODELS2.2 LIGHTWEIGHT GRAPH-BASED KNOWLEDGE RETRIEVAL2.2.1 QUERY SEMANTIC MAPPING2.2.2 TOPOLOGY-ENHANCED GRAPH RETRIEVAL 注意不含评…...

微服务入门(go)

微服务入门(go) 和单体服务对比:里面的服务仅仅用于某个特定的业务 一、领域驱动设计(DDD) 基本概念 领域和子域 领域:有范围的界限(边界) 子域:划分的小范围 核心域…...

Baklib揭示内容中台实施最佳实践的策略与实战经验

内容概要 在当前数字化转型的浪潮中,内容中台的概念日益受到关注。它不再仅仅是一个内容管理系统,而是企业提升运营效率与灵活应对市场变化的重要支撑平台。内容中台的实施离不开最佳实践的指导,这些实践为企业在建设高效内容中台时提供了宝…...

C++11新特性之lambda表达式

1.介绍 C11引入了lambda表达式。lambda表达式提供一种简洁的方式来定义匿名函数对象,使得在需要临时定义一个函数时非常方便。 2.lambda表达式用法 lambda表达式的基本用法为: [捕获列表](参数列表)->返回类型 { 函数体 …...

洛谷 P10289 [GESP样题 八级] 小杨的旅游 C++ 完整题解

一、题目链接 P10289 [GESP样题 八级] 小杨的旅游 - 洛谷 二、题目大意 n个节点之间有n - 1条边,其中k个节点是传送门,任意两个传送门之间可以 以0单位地时间相互到达。问从u到v至少需要多少时间? 三、解题思路 输入不必多讲。 cin >> …...

使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践

Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI,是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手,感觉收获还蛮多的,今天来分享下开发过程中的一些经验~ 为啥要做这个…...

JWT入门

一、初识JWT:新时代的身份认证方案 在分布式系统成为主流的今天,传统的Session认证方式逐渐显露出局限性。JWT(JSON Web Token)作为现代Web开发的认证新标准,凭借其无状态、跨域友好和安全性等特性,正在成为…...

Python - Quantstats量化投资策略绩效统计包 - 详解

使用Quantstats包做量化投资绩效统计的时候因为Pandas、Quantstats版本不匹配踩了一些坑;另外,Quantstats中的绩效统计指标非常全面,因此详细记录一下BUG修复方法、使用说明以及部分指标的内涵示意。 一、Quantstats安装及版本匹配问题 可以…...

智慧园区管理系统推动企业智能运维与资源优化的全新路径分析

内容概要 在当今快速发展的商业环境中,园区管理的数字化转型显得尤为重要。在这个背景下,快鲸智慧园区管理系统应运而生,成为企业实现高效管理的最佳选择。它通过整合互联网、物联网等先进技术,以智能化的方式解决了传统管理模式…...

【数据结构-字典树】力扣14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“dog”,“racecar…...

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL

《深入浅出HTTPS​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL TLS/SSL协议和应用层协议无关,它只是加密应用层协议(比如HTTP)并传递给下层的TCP。 HTTP和TLS/SSL协议组合在一起就是HTTPS, HTTPS等…...

Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别

Go语言中的流程控制语句逻辑结构与其他编程语言类似,格式有些不同。Go语言的流程控制中,包括if、switch、for、range、goto等语句,没有while循环。 目录 1. if 语句 2. switch语句 3. for语句 4. range语句 5. goto语句(不常用…...

L30.【LeetCode笔记】设计链表

1.题目 707. 设计链表 - 力扣(LeetCode) 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向…...

java日志框架详解-Log4j2

一、概述 Apache Log4j 2 (Log4j – Apache Log4j 2)是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并参考了Logback中优秀的设计,同时修复了Logback架构中的一些问题。被誉为是目前最优秀的Java日志框架&#x…...

C++中vector追加vector

在C中,如果你想将一个vector追加到另一个vector的后面,可以使用std::vector的成员函数insert或者std::copy,或者简单地使用std::vector的push_back方法逐个元素添加。这里我将展示几种常用的方法: 方法1:使用insert方…...

加一(66)

66. 加一 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:vector<int> plusOne(vector<int>& digits) {bool plus_one true;for (int i digits.size() - 1; i > 0; --i) {if (plus_one) {int tmp digits[i] 1;if …...

远程连接-简化登录

vscode通过ssh连接远程服务器免密登录&#xff08;图文&#xff09;_vscode ssh-CSDN博客...

canvas的基本用法

canvas canvas元素简介 1.是个container元素<canvas width100 height100></canvas>&#xff0c;有开闭标签 2.有且只有width和height两个attribute&#xff0c;不需要写单位 canvas的基本使用 const canvasEl document.getElementById(canvas01) const ctx …...

Tailwind CSS - Tailwind CSS 引入(安装、初始化、配置、引入、构建、使用 Tailwind CSS)

一、Tailwind CSS 概述 Tailwind CSS 是一个功能优先的 CSS 框架&#xff0c;它提供了大量的实用类&#xff08;utility classes&#xff09;&#xff0c;允许开发者通过组合这些类来快速构建用户界面 Tailwind CSS 与传统的 CSS 框架不同&#xff08;例如&#xff0c;Bootstr…...

鸿蒙开发黑科技“stack叠层”替代customdialog

前一篇提到的问题,本篇博文提出了一个解决方案: arkui-x LongPressGesture触发customdialog踩坑记录-CSDN博客 前一段时间遇到的这个问题,通过排除法观察,锁定为customdialog组件有bug,极为容易挂死。不论如何调整使用方法,都还是会触发挂死。 反馈给arkui团队,说是在…...

FreeRTOS从入门到精通 第十五章(事件标志组)

参考教程&#xff1a;【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili 一、事件标志组简介 1、概述 &#xff08;1&#xff09;事件标志位是一个“位”&#xff0c;用来表示事件是否发生。 &#xff08;2&#xff09;事件标志组是一组事件标志位的集合&#x…...

智慧园区管理平台实现智能整合提升企业运营模式与管理效率

内容概要 在当今数字化的背景下&#xff0c;智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术&#xff0c;旨在通过智能整合各类资源与信息&#xff0c;帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…...

markdown公式特殊字符

个人学习笔记 根号 在 Markdown 中&#xff0c;要表示根号 3&#xff0c;可以使用 LaTeX 语法来实现。常见的有以下两种方式&#xff1a; 行内公式形式&#xff1a;使用一对美元符号 $ 将内容包裹起来&#xff0c;即 $\sqrt{3}$ &#xff0c;在支持 LaTeX 语法渲染的 Markdow…...