【MYSQL】-函数

在这里插入图片描述
💖作者:小树苗渴望变成参天大树🎈
🎉作者宣言:认真写好每一篇博客💤
🎊作者gitee:gitee✨
💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!

文章目录

  • 前言
  • 一、日期函数
  • 二、字符串函数
  • 三、数学函数
  • 四、其他函数
  • 五、总结


前言

前一篇我们讲解完毕了表的基本操作,我们在常用的是select,今天我们讲解的是mysql的一系列函数,在我们语言层面有许多自带函数让我们可以更好去使用,在sql中也有许多好用的函数让我们去使用,在上篇已经使用过了聚集函数,他的好处已经让我们感受到了,今天说的函数也特别方便。话不多说,我们开始进入正文。

一、日期函数

在这里插入图片描述

后面的我们提到的日期就是年月日,时间就是时分秒。

  1. 获取日期:
    在这里插入图片描述

  2. 获取时间:
    在这里插入图片描述

  3. 获取日期时间:
    在这里插入图片描述
    在这里插入图片描述
    这两个函数的效果是一样的,但是本质不一样。

  4. 获取日期时间中的日期部分(函数可以嵌套使用)
    在这里插入图片描述

  5. 在日期的基础上加日期或者时间
    在这里插入图片描述
    在这里插入图片描述

  6. 在日期的基础上减日期或者时间
    在这里插入图片描述
    在这里插入图片描述

date_add和date_sub函数的第一个参数可以不用是完整的日期和时间,单纯的日期也是可以的。

  1. 求两个日期的差
    在这里插入图片描述

总结
其他的不传参的函数都是字面意思,前三个函数和数据类型的日期类型相似。传参的函数看到data说明必须要传日期,但是也可以把时间带上。

案例1:
创建一张表,记录生日
在这里插入图片描述
添加当前日期:

insert into tmp(birthday) values(current_date());

在这里插入图片描述

案例2:
创建一个留言表
在这里插入图片描述
插入数据
在这里插入图片描述
显示所有留言信息,发布日期只显示日期,不用显示时间

select content,date(sendtime) from msg;

在这里插入图片描述
请查询在2分钟内发布的帖子

------|-----------|-------------|------------------
初始时间 now() 初始时间+2min

select * from msg where date_add(sendtime, interval 2 minute) > now();

在这里插入图片描述

二、字符串函数

在这里插入图片描述
有几个函数非常简单,就不使用表中的数据給大家演示了。

  1. charset(str)
    在这里插入图片描述

  2. instr(str,substring) 返回子串的起始位置
    在这里插入图片描述

  3. ucase(str) 转成大写、lcase(str) 转成小写(不是字母的不做处理)
    在这里插入图片描述

  4. left(str,len) 从str中左边l取len个字符、right(str,len) 从str中右边l取en个字符

在这里插入图片描述
5. strcmp(str1,str2) 比较两个字符串是否相等(相等为0,不想等为-1)
在这里插入图片描述

接下来的函数操作通过表中的数据給大家演示

  1. exam_result表
    在这里插入图片描述

(1)concat
要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分”

select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from exam_result;

在这里插入图片描述
(2)length(str)
求exam_result表中学生姓名占用的字节数
在这里插入图片描述

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;
如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数
(与字符集编码有关)

  1. emp表
    在这里插入图片描述

(1)replace(str s_str,r_str) 在str中用r_str替换s_str

将EMP表中所有名字中有S的替换成’上海’

 select ename,replace(ename,'S','上海') from emp;

在这里插入图片描述

(2)substring(str,pos,len)从str的pos位置,取len个字符
截取EMP表中ename字段的第二个到第三个字符

select substring(ename,2,2),ename from emp;

在这里插入图片描述

以首字母小写的方式显示所有员工的姓名
在这里插入图片描述

substring第三个参数不写默认取到结尾

三、数学函数

在这里插入图片描述

  1. abs(num)绝对值
    在这里插入图片描述
  2. bin(num) 十进制转换二进制
    在这里插入图片描述

我们看到带有小数的数转二进制只取前面整数部分进行转换

  1. hex(num) 转换成十六进制
    在这里插入图片描述
  2. conv(num,from_num,to_num) 进制转换(相对灵活)
    在这里插入图片描述
  3. format(num,len),控制num的精度,格式化(小数也四舍五入)
    在这里插入图片描述
  4. rand(),随机数,返回随机浮点数,范围[0.0,1.0)
    在这里插入图片描述
  5. mod(num1,num2) 求模

在这里插入图片描述
8. ceiling(num) 向上取整,floor(num)向下取整
在这里插入图片描述
在这里插入图片描述

四、其他函数

  1. user()查询当前用户
    在这里插入图片描述
  2. database()显示当前正在使用的数据库
    在这里插入图片描述
  3. ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
    在这里插入图片描述
  4. mds(str) 对一个字符串进行md5摘要,摘要后得到一个32位字符串
    password()函数,MySQL数据库使用该函数对用户加密

对于数据库,关于密码有关的字段,最好都要进行加密,防止别人盗取你的表数据知道了用户的密码就麻烦。
在这里插入图片描述

md5是一种哈希算法生成一个固定长度的字符串插入到表中的,password()是sql自带的。

五、总结

我们这些函数在必要的时候是非常有用的,希望大家掌握

查找字符串中逗号出现的次数大家先不要看答案哦

select id, LENGTH(string) - LENGTH(replace(string, ',','')) cnt from strings;

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

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

相关文章

虚拟化技术和云计算的关系

1、云计算底层就是虚拟化技术。 (1)常见的虚拟化技术:VMware(闭源的,需要收费)、XEN、KVM (2)大部分公司用的虚拟化方案:XEN、KVM 2、虚拟化的历史 (1&am…

List常见方法和遍历操作

List集合的特点 有序: 存和取的元素顺序一致有索引:可以通过索引操作元素可重复:存储的元素可以重复 List集合的特有方法 Collection的方法List都继承了List集合因为有索引,所以有了很多操作索引的方法 ublic static void main…

zookeeper之集群搭建

1. 集群角色 zookeeper集群下,有3种角色,分别是领导者(Leader)、跟随着(Follower)、观察者(Observer)。接下来我们分别看一下这三种角色的作用。 领导者(Leader): 事务请求(写操作)的唯一调度者和处理者,保…

Java项目:100SpringBoot图书管理系统

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 图书管理系统基于SpringBootMybatis开发,系统分为两种角色,分别是管理员和普通用户。 管理员功能如下: 书籍类别管理…

最新ChatGPT网站源码,支持Midjourney绘画,GPT语音对话+GPT-4识图理解能力+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Python中property特性属性是什么

在Java中,通常在类中定义的成员变量为私有变量,在类的实例中不能直接通过对象.属性直接操作,而是要通过getter和setter来操作私有变量。 而在Python中,因为有property这个概念,所以不需要写getter和setter一堆重复的代…

遇到DDOS怎么办,盾真的可以抗攻击吗

网络在以难以想象的速度发展,黑客们针对网络漏洞发起的攻击也从未停止,但复杂的网络环境让网络安全的维护更为艰难,如果游戏公司没有做好防御措施,黑客发起攻击只是时间问题。在网络攻击愈加多元化的今天,游戏行业可以…

【C语言】一篇文章深入解析联合体和枚举且和结构体的区别

文章目录 📝前言🌠 联合体类型的声明🌉联合体的特点 🌠相同成员的结构体和联合体对⽐🌉联合体⼤⼩的计算 🌠联合体应用🌉枚举类型的声明 🌠枚举类型的优点🌉 枚举类型的使…

听GPT 讲Rust源代码--src/tools(38)

File: rust/src/tools/clippy/clippy_dev/src/lib.rs rust/src/tools/clippy/clippy_dev/src/lib.rs文件是Clippy开发工具的入口文件,其作用是提供Clippy开发过程中所需的功能和工具。Clippy是一个Rust代码的静态分析工具,用于提供各种有用的代码规范、编…

[Angular] 笔记 22:ElementRef

chatgpt: ElementRef 是 Angular 中的一个类,它用于包装对 DOM 元素的引用。它允许开发者直接访问与 Angular 组件关联的宿主 DOM 元素。 当在 Angular 中需要直接操作 DOM 元素时,可以使用 ElementRef。通常情况下,最好避免直接操作 DOM&a…

八皇后问题(C语言)

了解题意 在一个8x8的棋盘上放置8个皇后,使得任何两个皇后都不能处于同一行、同一列或同一斜线上。问有多少种方法可以放置这8个皇后? 解决这个问题的目标是找到所有符合要求的皇后摆放方式,通常使用回溯算法来求解。回溯算法会尝试所有可能…

56.网游逆向分析与插件开发-游戏增加自动化助手接口-通过UI分析自动药水设定功能

内容来源于:易道云信息技术研究院VIP课 上一节内容:自动药水设定功能的逆向分析-CSDN博客 这次是假设没有之前的思路积累的话,怎样去找按钮事件。 通过ui当做切入点去做,就是一个窗口它显示不显示,游戏怎样控制这个…