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

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()函数返回一个数的平方根。

相关文章:

  • ETPNav:基于演进拓扑规划的连续环境视觉语言导航模型
  • VUE中的路由处理
  • 2025我们关注DeepSeek什么?
  • Ollama部署离线大模型
  • 前端跨页面通信完全指南
  • 利用Python requests库爬虫程序示例
  • Spring IOC 容器加载过程
  • C++实现文件断点续传:原理剖析与实战指南
  • Tips:用proxy解决前后端分离项目中的跨域问题
  • 研发效率破局之道阅读总结(1)研发效能
  • Windows 图形显示驱动开发-WDDM 2.0功能_IoMmu 模型
  • 开源推荐#2:Social Auto Upload — 自动化上传视频到社交媒体
  • 已知Word内容格式固定,通过宏实现Word转Excel
  • 【区块链安全 | 第三十七篇】合约审计之获取私有数据(一)
  • 理解 DuckDB 的逻辑计划(Logical Plan)、优化器(Optimizer)和物理执行计划模块的工作流程
  • [Godot] C#简单实现人物的控制和动画
  • Spring MVC 逻辑视图(JSP、Thymeleaf、FreeMarker)与非逻辑视图(JSON、Excel、PDF、XML)详解及示例
  • 2025年AI生成引擎搜索发展现状与趋势总结​​
  • 【数学】线性代数(Python)
  • 水果成篮 -- 滑动窗口
  • 今天北京白天气温超30℃,晚间为何下冰雹?
  • 习近平举行仪式欢迎巴西总统卢拉访华
  • 共情场域与可持续发展——关于博物馆、美术馆运营的新思考
  • 从600名外到跻身大满贯,孙发京:走过的路成就了现在的我
  • 80后莆田市文旅局长马骏登台与杨宗纬合唱,“演唱会秒变旅游推介会”
  • 超新星|罚丢点球的那道坎,刘诚宇靠自己迈了过去