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

MySQL:函数

提醒: 设定下面的语句是在数据库名为 db_book里执行的。
创建user_info表

注意:pwd为密码字段,这里使用了VARCHAR(128)类型,为了后面方便对比,开发项目里一般使用char(32),SQL语句里使用MD5加密函数

USE db_book;
CREATE TABLE user_info(id INT NOT NULL AUTO_INCREMENT,userName VARCHAR(30) DEFAULT NULL,age INT,sex VARCHAR(4) DEFAULT NULL,moblie VARCHAR(11) DEFAULT NULL,pwd VARCHAR(128) DEFAULT NULL,birthday DATE DEFAULT NULL,avatar  VARCHAR(100) DEFAULT NULL,num INT,PRIMARY KEY(id)
);

为user_info表里添加多条数据

USE db_book;
INSERT INTO user_info(userName,age,sex,moblie,pwd,birthday,avatar,num)VALUES('用户1',20,'男',12345678901,123456,'2024-03-01',NULL,1),('用户2',22,'男',13345678902,'123456adc','2023-10-01',NULL,2),('用户3',23,'女',14345678903,'2423adbc','2022-12-08','https://test.avatar.1234abc',3),('Test4',24,'男',13345678902,'123456adc4','2021-04-02',NULL,4123400),('test5',25,'女',15345678902,'123456adc5','2020-11-22',NULL,51234666);

查询user_info表数据

在这里插入图片描述

一、日期和时间函数

  1. CURDATE() 返回当前日期
    只包含年、月、日部分,格式为YYYY-MM-DD;
  2. CURTIME() 返回当前时间
    只包含时、分、秒部分,格式为HH:MM:SS
  3. MONTH(d)返回日期d中的月份值,范里是1~12
  4. NOW()函数 返回当前日期和时间
    包含年、月、日、时、分、秒,格式为YYYY-MM-DD HH:MM:SS
  5. UNIX_TIMESTAMP(date)函数
    将date转化为UNIX时间戳
SELECT CURDATE(),CURTIME(),NOW(),UNIX_TIMESTAMP(NOW()),MONTH(birthday)FROM db_book.user_info;/*日期和时间函数*/

执行结果
在这里插入图片描述

UNIX_TIMESTAMP 函数示例
在终端里执行: SELECT UNIX_TIMESTAMP(now());
在这里插入图片描述

CURDATE()函数示例
在终端里执行:SELECT CURDATE();
在这里插入图片描述

其他几个日期函数执行操心和上面一样

使用AS为列名设置别名

SELECT CURDATE(),CURTIME(),NOW(),MONTH(birthday) AS m FROM db_book.user_info;

执行结果
在这里插入图片描述

二、字符串函数

  1. CHAR_LENGTH(s) 计算字符串s的字符数;
  2. UPPER(s) 把所有字母变成大写字母;
  3. LOWER(s) 把所有字母变成小写字母;
SELECT userName,CHAR_LENGTH(userName),UPPER(userName),LOWER(userName)FROM db_book.user_info;/*字符串函数*/

执行结果
在这里插入图片描述

三、数学函数

  1. A BS(x)求绝对值
  2. SQRT(x)求平方根
  3. MOD(x.y)求余
SELECT num,ABS(num) FROM db_book.user_info;/*求绝对值*/
3.1 求绝对值

执行结果
在这里插入图片描述

SELECT SQRT(num) FROM db_book.user_info;/*对num求平方根*/

执行结果
在这里插入图片描述

3.2 求平方根
SELECT SQRT(4);/*对4求平方根*/

终端里执行结果
在这里插入图片描述

MySQL Workbench执行结果
在这里插入图片描述

3.3 求余
SELECT MOD(9,2);/*求余*/

终端执行结果
在这里插入图片描述

四、加密函数

  1. PASSWORD(Str) 一般对用户的密码加密 不可逆
    注意:mysql8.0 已经弃用PASSWORD()函数了,可以使用MD5函数代替
  2. MD5(str)普通加密 不可逆
  3. ENCODE(SLr,pswd_str)加密函数,结果是一个二进制数,必须使用BLOB 类型的字段来保存它;
    注意:mysql8.0 已经找不到ENCODE()函数了,可以使用MD5函数代替
  4. DECODE(crypt_str,pswd_str)解密函数;
    注意:mysql8.0 已经找不到DECODE()函数了,可以使用MD5函数代替
4.1 PASSWORD

注意:mysql8.0 已经弃用PASSWORD()函数了,可以使用MD5函数代替
在mysql8.0以下版本执行下面SQ语句

INSERT INTO db_book.user_info(userName,age,sex,moblie,pwd,birthday,avatar,num)VALUE('用户6',26,'男',16345678906,PASSWORD('123456abcd'),'2024-03-01',NULL,20666);
4.2 MD5
INSERT INTO db_book.user_info(userName,age,sex,moblie,pwd,birthday,avatar,num)VALUES('用户7',27,'男',17645678907,MD5('123456abcd'),'1996-06-21',NULL,20670);

执行结果
在这里插入图片描述

查询user_info表数据
在这里插入图片描述

4.3 ENCODE

注意:mysql8.0 已经找不到ENCODE()函数了,可以使用MD5函数或其他函数代替
在mysql8.0以下版本执行下面SQ语句

INSERT INTO db_book.user_info(userName,age,sex,moblie,pwd,birthday,avatar,num)
VALUES('用户8',28,'男',17645678907,MD5('23456ad'),'1995-06-21',ENCODE('https://abcd.avatar','ak'),20680);
4.4 DECODE

注意:mysql8.0 已经找不到DECODE()函数了,可以使用MD5函数或其他代替
在mysql8.0以下版本执行下面SQ语句

SELECT DECODE(avatar,'ak') FROM db_book.user_info WHERE num = 20680;

推荐

MySQL:常用的SQL语句

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

相关文章:

  • C/C++内存管理及内存泄漏详解
  • 什么是系统工程(字幕)41
  • 测开新手:pytest+requests+allure自动化测试接入Jenkins学习
  • 学习网络编程No.11【传输层协议之UDP】
  • 向爬虫而生---Redis 基石篇6 <拓展HyperLogLog>
  • JavaScript中的this
  • 宝塔php站点设置伪静态规则 访问 a.com 时候跳转到 a.com/b.html
  • git介绍4.2
  • 【深入了解设计模式】组合设计模式
  • 4.Java---方法+重载
  • 蓝桥杯Java B组历年真题(2013年-2021年)
  • C++笔记(五)--- 虚函数(virtual)
  • 编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E
  • 【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环
  • Cisco Secure ACS 5.8.0.32 安装 + Crack 教程
  • 项目准备March
  • 集智书童 | YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
  • Codeforces Round 894 (Div. 3)----->C. Flower City Fence
  • CryoEM - CryoAI: Amortized Inference of Poses 工程源码复现
  • 项目预备知识
  • redis实战笔记汇总
  • elment-ui table表格排序后 清除排序箭头/恢复默认排序 的高亮样式
  • MySQL数据库基本操作(二)
  • Unity(第十部)时间函数和文件函数
  • 【Java学习笔记】
  • Python列表生成式你学会了吗
  • 【Mybatis】快速入门 基本使用 第一期
  • 在 Rust 中实现 TCP : 1. 联通内核与用户空间的桥梁
  • STM32-ADC一步到位学习手册
  • 【文件管理】关于上传下载文件的设计