【MySQL】精细讲解:数据库内置函数深度学习解析

news2024/12/25 10:08:33

        前言:本节内容讲述mysql里面的函数的概念, 在mysql当中, 内置了很多函数工作。 这些函数丰富了我们的操作。 比如字符串函数、数据函数以及一些其他函数等等。

        ps:友友们学习了表的基本操作后就可以观看本节内容啦!

目录

日期函数

current_date和current_time

current_timestamp

now函数

date提取日期

date_add和date_sub时间推导

datediff时间相减

字符串函数

charset(str) 返回字符串的字符集

concat拼接字符串

length求字符串长度

replace替换字符

substring字符串截取

ltrim和rtrim

数学函数

abs

bin十进制转二进制

conv将一个数字从某个进制转化为另一个进制

ceiling和floor取整

其他函数

user()

database();

md密码加密


日期函数

current_date和current_time

        在mysql中, 使用select可以直接使用current函数:

select current_date;

     

        同样的, 也可以直接使用current_time:

select current_time;

 

         上面current_date是显示当前的日期, current_time是现实当前的时间, 所以, 两个函数一起使用就能查看当前的日期以及时间:

select current_date, current_time;

 

current_timestamp

        我们除了可以上面的两个函数一起使用, 也可以使用current_timestamp查看时间戳:

select current_timestamp;

 

now函数

        我们也可以使用now函数, 查看当前的时间:(now函数必须加括号)

select now();

date提取日期

        我们也可以使用date(日期和时间)来截取当前的日期:

select date('1999-10-1 06:06:06');

 

date_add和date_sub时间推导

        date_add可以进行时间的加法推导, 就是当前的时间加上一个日期, 分钟或者秒之后是什么日期,什么时间。 如下为例子:

select date_add('2020-10-1', interval 10 day);
select date_add('2020-10-1', interval 40 day);
select date_add(now(), interval 10 day);
select date_add(now(), interval 10 minute);

select date_sub(now(), interval 10 day);
select date_sub(now(), interval 1000 day);
select date_sub(now(), interval 10000 day);
select date_sub(now(), interval 10000 minute);

datediff时间相减

        datediff可以进行时间的相减:

select datediff(now(), '2000-1-1');

字符串函数

charset(str) 返回字符串的字符集

        

select charset(字符串);

 

        charset能返回字符的编码格式。

concat拼接字符串

        concat能够连接字符串, 可以跟两个参数, 拼接两个字符串;也可以跟三个参数, 拼接三个字符串, 也可以跟更多....。

select concat('字符串', '字符串2');
select concat('字符串', '字符串2', '字符串3');
select concat('字符串', '字符串2', '字符串3', ...);

length求字符串长度

        注意, length求的是字节, 不是字符个数。 

select length(字符串);


      

replace替换字符

        replace能够替换字符

就比如我们将我们员工表中含有'S'的数据替换成上海:

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

        replace 三个参数中第一个参数是原数据列, 第二个参数是被替换的字符, 第三个参数是目标的字符。

substring字符串截取

        substring能够截取一个字符串, 从第几个位置截取到第几个位置:

substring('字符串', 起始位置, 截取长度);

        将字符串分割:

select ename, substirng(ename, 1, 1), substring(ename,2) from emp; 第三个参数不写表示截取到最后一个字符。

ltrim和rtrim

        ltrim和rtrim可以去掉字符串中的左右空格:

数学函数

abs

        abs取绝对值, 不解释:

select abs(10);
select abs(-10);

bin十进制转二进制

select bin(20);
select bin(10);
select bin(1);
select bin(2);

conv将一个数字从某个进制转化为另一个进制

select conv(数字, 进制1, 进制2);

ceiling和floor取整

        我们从负数到整数。 我们一般取整就是四舍五入。 但是我们celling使用的是将小数去掉。 即对于正数来说, 是向下取整。对于负数来说, 是向上取整。正数和负数都向零趋近, 所以, 这种取整方式叫做向零取整。

        另一种取整方式是向上取整, 就是对于负数-3.1, 去掉小数位-3。 对于正数3.1, 向上取整为4。

        ceiling是向上取整:

        floor是向下取整 

 、

其他函数

user()

查看当前用户:

select user();

database();

select database();

 

md密码加密

        我们在向数据库中进行插入密码的时候, 一定要使用md进行加密。 否则如果数据库被人盗走, 那么这个服务里面的所有用户的密码账号就全部被盗取了, 这个危害就太大了。 所以我们如果要插入密码, 一定要使用md进行转码:

create table user3(
id int primary key auto_increment,
password varchar(32)
);

insert into user3(password) values('helloworld');
insert into user3(password) values(md5('helloworld'));

        然后我们就能看到如下图为两个密码的区别, id为1是没有加密的密码; id为2是加密后的密码, 这个密码只能由数据库自己识别。 这个md5转化成的这个加密字符串一定是等长的, 即便原字符串只有1个字符, 转化后的字符串也是等长的。 

        未来我们想要利用密码筛选信息怎么筛选呢? 同样是使用md5:

select id from user3 where password = md5('helloworld');

  ——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!   

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

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

相关文章

亚信安全与飞书达成深度合作

近日,亚信安全联合飞书举办的“走近先进”系列活动正式走进亚信。活动以“安全护航信息化 共筑数字未来路”为主题,吸引了众多数字化转型前沿企业的近百位领导参会。作为“走近先进”系列的第二场活动,本场活动更加深入挖掘了数字化转型的基础…

[less] Operation on an invalid type

我这个是升级项目的时候遇到的,要从 scss 升级到 less,然后代码中就报了这个错误 我说一下代码的错误过程,但是这里没有复现,因为我原本报错的代码要复杂很多,而且是公司代码,不方便透露,这是我…

“iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题

目录 文件和证书未加载或特殊字符问题 证书过期或Profile文件错误 确认开发者证书和私钥是否匹配 创建证书选择错误问题 申请苹果 AppId时勾选服务不全问题 ​总结 在上线ios平台的时候,在Hbuilder中打包遇见了问题,生成ipa文件时候,一…

大语言模型(LLM)安全:十大风险、影响和防御措施

一、什么是大语言模型(LLM)安全? 大语言模型(LLM)安全侧重于保护大型语言模型免受各种威胁,这些威胁可能会损害其功能、完整性和所处理的数据。这涉及实施措施来保护模型本身、它使用的数据以及支持它的基…

基础知识学习上

基础知识学习上 1.关于print1.1 format 方法 2.运算符2.1 除法运算2.2 幂运算 3.条件控制语句3.1 if语句3.2 循环语句 4.复杂数据类型4.1列表4.2字典4.3字符串 5.函数 1.关于print 分隔符 print(1, 2, 3, 4, sep-) print(1, 2, 3, 4, sep。)结尾符 print(1, 2, 3, 4, end?) pr…

开源远程桌面工具:RustDesk

在远程办公和远程学习日益普及的今天,我们经常需要远程访问办公电脑或帮助他人解决电脑问题。 市面上的远程控制软件要么收费昂贵,要么需要复杂的配置,更让人担心的是数据安全问题。 最近我发现了一款名为 RustDesk 的开源远程桌面工具&…

双通道CAN转以太网(三格电子)

一、功能描述 SG-CANET-210 是一款用来把 CAN 总线数据转为网口数据的设备。网口支 持 TCP Sever 、TCP Client 、UDP Sever 、UDP Client 、UDP Broadcast 模式,可以 通过软件配置和网页配置。设备提供两路 CAN 接口,两路 CAN 可分别配置为 不同的工作…

WebApis学习笔记,第二节:高级语法

WebApis学习笔记,第二节:高级语法 一、JS组成 我们再回顾一下JS的组成:ECMAScript: 规定了js基础语法核心知识。 比如:变量、分支语句、循环语句、对象等等Web APIs : DOM 文档对象模型, 定义了一套操作HTML文档的AP…

【ubuntu24.04.1最简洁安装方案】

我的电脑配置: 128GB固态硬盘,1TB 机械硬盘,我把整个 windows 系统全噶掉了,只安装ubuntu24.04.1一个Linux系统噶windows系统, 推荐使用 DiskGenius这个工具,好用,但是也要弄明白了再用啊&#…

【spring的底层原理】Bean的生命周期

文章目录 什么是Bean的生命周期Bean的生命周期可以分为几个步骤Bean的定义阶段加载BeanDefinition中指定的类实例化前(可选)实例化属性注入Aware接口回调BeanPostProcessor前置处理初始化初始化前(可选)初始化初始化后&#xff08…

全面前端显示:鹅成熟与否识别

1.背景意义 研究背景与意义 随着生态保护意识的增强和生物多样性的重要性日益凸显,水鸟尤其是加拿大鹅的保护与管理成为了生态学研究的一个重要领域。加拿大鹅在北美地区广泛分布,其种群数量的变化不仅反映了生态环境的健康状况,也对当地生…

label studio+sam实现半自动标注

1、主要参考:https://github.com/open-mmlab/playground/tree/main/label_anything 这里提醒大家一点,有人使用过程中,出现自动标注无反应,就是操作步骤出现了问题!一定记住按这个顺序操作!!&a…

Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存

excel保存数据的三种方式: 1、pandas保存excel数据,后缀名为xlsx; 举例: import pandas as pddic {姓名: [张三, 李四, 王五, 赵六],年龄: [18, 19, 20, 21],住址: [广州, 青岛, 南京, 重庆] } dic_file pd.DataFrame(dic) dic_file…

Hutool工具类生成二维码

1、引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutoo…

Java 基于SpringBoot+vue框架的老年医疗保健网站

大家好&#xff0c;我是Java徐师兄&#xff0c;今天为大家带来的是Java Java 基于SpringBootvue框架的老年医疗保健网站。该系统采用 Java 语言开发&#xff0c;SpringBoot 框架&#xff0c;MySql 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强 &#xff0c;可供大…

华为FusionCube 500-8.2.0SPC100 实施部署文档

环境&#xff1a; 产品&#xff1a;FusionCube 500版本&#xff1a;8.2.0.SPC100场景&#xff1a;虚拟化基础设施平台&#xff1a;FusionCompute两节点 MCNA * 2硬件部署&#xff08;塔式交付场景&#xff09;免交换组网&#xff08;配置AR卡&#xff09; 前置准备 组网规划 节…

社团管理新体验:SpringBoot技术

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了社团管理系统的开发全过程。通过分析社团管理系统管理的不足&#xff0c;创建了一个计算机管理社团管理系统的方案。文章介绍了社团管理系统的系统分析部分&…

SSM之Bean

前言 这一节讲bean 1.初始spring 点projects Framework是spring的基础 spring官网 这三个主流 2. 系统架构 3. 核心概念 4. Ioc入门案例 其中Dao就是我们原来管理数据库的&#xff0c;service就是业务层 这个代码很简单 要交给spring管理&#xff0c;首先要有一个配置文…

Spring循环依赖如何解决的?

一、什么是循环依赖 循环依赖&#xff1a;说白是一个或多个对象实例之间存在直接或间接的依赖关系&#xff0c;这种依赖关系构成了构成一个环形调用。 第一种情况&#xff1a;自己依赖自己的直接依赖 第二种情况&#xff1a;两个对象之间的直接依赖 第三种情况&#xff1a;多个…

Mac vscode 激活列编辑模式

列编辑模式在批量处理多行文本时&#xff0c;非常有效&#xff0c;但 vscode 默认情况下&#xff0c;又没有激活&#xff0c;因此记录一下启动方法&#xff1a; 激活列编辑模式 然后就可以使用 Alt&#xff08;Mac 上是 Option 或 Command 键&#xff09; 鼠标左键 滑动选择了…