当前位置: 首页 > 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)

http://www.lryc.cn/news/529874.html

相关文章:

  • EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析
  • 2025多目标优化创新路径汇总
  • 15JavaWeb——Maven高级篇
  • 使用Ollama本地化部署DeepSeek
  • 蓝桥杯刷题DAY1:前缀和
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册
  • MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
  • 微服务入门(go)
  • Baklib揭示内容中台实施最佳实践的策略与实战经验
  • C++11新特性之lambda表达式
  • 洛谷 P10289 [GESP样题 八级] 小杨的旅游 C++ 完整题解
  • 使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践
  • JWT入门
  • Python - Quantstats量化投资策略绩效统计包 - 详解
  • 智慧园区管理系统推动企业智能运维与资源优化的全新路径分析
  • 【数据结构-字典树】力扣14. 最长公共前缀
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL
  • Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别
  • L30.【LeetCode笔记】设计链表
  • java日志框架详解-Log4j2
  • C++中vector追加vector
  • 加一(66)
  • 远程连接-简化登录
  • canvas的基本用法
  • Tailwind CSS - Tailwind CSS 引入(安装、初始化、配置、引入、构建、使用 Tailwind CSS)
  • 鸿蒙开发黑科技“stack叠层”替代customdialog
  • FreeRTOS从入门到精通 第十五章(事件标志组)
  • 智慧园区管理平台实现智能整合提升企业运营模式与管理效率
  • markdown公式特殊字符
  • 【深度分析】微软全球裁员计划不影响印度地区,将继续增加当地就业机会