首页 > 数据库 >mysql数学和日期和加密函数

mysql数学和日期和加密函数

时间:2023-05-25 11:31:52浏览次数:54  
标签:加密 函数 -- expr2 expr1 DUAL mysql NOW SELECT

1. 数学相关函数  762

mysql数学和日期和加密函数_java

rand()返回一个随机浮点值v,范围在0到1之间(即其范围为0≤v≤1.0)。若已指定一个整数参数N.则它被用作种子值,用来产生重复序列。

1.1 练习

代码在E:\java学习\初级\course156\db_

math
#演示数学相关函数  762
-- ABS(num) 绝对值
SELECT ABS(-10) FROM DUAL;#10
-- BIN (decimal_ number ) 十进制转二进制
SELECT BIN(10)FROM DUAL
-- CEILING (number2 ) 向上取整,得到比num2大的最小整数
SELECT CEILING(1.1)FROM DUAL#2
SELECT CEILING(-1.1)FROM DUAL#-1
-- CONV(number2,from_ base,to_ base) 进制转换
#解释将8是个十进制转为二进制
SELECT CONV(8,10,2)FROM DUAL
-- FLOOR (number2 ) 向下取整,得到比num2小的最大整数
SELECT FLOOR(1.1)FROM DUAL#1
SELECT FLOOR(-1.1)FROM DUAL#-2
-- FORMAT (number,decimal places ) 保留 小数位数(四舍五入)
SELECT FORMAT(78.123458,2)FROM DUAL#保留两位小数78.12
SELECT FORMAT(78.125458,2)FROM DUAL#保留两位小数78.13
-- HEX (DecimalNumber ) 转十六进制
SELECT HEX(12)FROM DUAL
-- LEAST (number , number2 [..]) 求最小值
SELECT LEAST(0,1,-10,4)FROM DUAL
-- MOD (numerator ,denominator ) 求余
SELECT MOD(10,3)FROM DUAL#就是10%3=1
-- RAND([seed]) RAND([seed])返回随机数其范围为0<= v <=1.0
SELECT RAND() FROM DUAL
-- 如果使用 rand(seed) 返回随机数, 范围 0 ≤ v ≤ 1.0, 如果 seed 不变,
-- 该随机数也不变了
SELECT RAND(3) FROM DUAL#提示如果给了一个种子seed 3,这个随机数就不会变化

2. 时间日期相关函数  763

mysql数学和日期和加密函数_mysql_02

2.1 练习1  763

-- CURRENT_ DATE ( ) 当前日期

-- CURRENT_ _TIME ( ) 当前时间

-- CURRENT TIMESTAMP ( ) 当前时间戳

代码在E:\java学习\初级\course156\db_

date
#演示时间日期相关函数  763
-- CURRENT_ DATE ( ) 当前日期
SELECT CURRENT_DATE() FROM DUAL
-- CURRENT_ _TIME ( ) 当前时间
SELECT CURRENT_TIME() FROM DUAL
-- CURRENT TIMESTAMP ( ) 当前时间戳
SELECT CURRENT_TIMESTAMP() FROM DUAL

2.2 练习2  764

mysql数学和日期和加密函数_mysql函数_03

显示所有留言信息,发布日期只显示日期,不用显示时间。

请查前在10分钟内发布的帖子

请在mysql的sql语句中求出2011-11-11和1990-1-1相差多少天

请用mysql的sql语句求出你活了多少天? [练习]

如果你能活80岁,求出你还能活多少天[练习]比如 1986-11-11出生

代码在E:\java学习\初级\course156\db_

date
-- 创建测试表 信息表
CREATE TABLE mes(
	id INT ,
	content VARCHAR(30), 
	send_time DATETIME);
-- 添加一条记录
INSERT INTO mes
	VALUES(1,'北京新闻',CURRENT_TIMESTAMP())
INSERT INTO mes
	VALUES(2,'上海新闻',NOW())	
INSERT INTO mes
	VALUES(3,'广州新闻',NOW())
SELECT *FROM mes
SELECT NOW() FROM DUAL

-- 显示所有留言信息,发布日期只显示日期,不用显示时间。
SELECT id,content,DATE(send_time)
	FROM mes;
-- 请查前在40分钟内发布的帖子
#解释send_time为新闻发布时间,40 MINUTE是相差40分钟,NOW()是现在的时间,
#将 新闻发布的时间+40分钟 得到的时间 大于 现在的时间,就是 在新闻发布40分钟内 符合条件
SELECT * FROM mes
	WHERE DATE_ADD(send_time,INTERVAL 40 MINUTE) >= NOW()
#写法二
#将 现在的时间-40分钟 得到的时间 小于 新闻发布的时间,就是 在新闻发布40分钟内 符合条件
SELECT * FROM mes
	WHERE DATE_SUB(NOW(),INTERVAL 40 MINUTE) <= send_time
	
-- 请在mysql的sql语句中求出2011-11-11和1990-1-1相差多少天   764
SELECT DATEDIFF('2011-11-11','1990-01-01')FROM DUAL
-- 请用mysql的sql语句求出你活了多少天? [练习]
SELECT DATEDIFF(NOW(),'2001-02-22') FROM DUAL
-- 如果你能活80岁,求出你还能活多少天[练习]比如 1986-11-11出生
-- 先求出活 80 岁 时, 是什么日期 X
-- 然后在使用 datediff(x, now()); 
-- INTERVAL 80 YEAR : YEAR 可以是 年月日,时分秒
-- '1986-11-11' 可以 date,datetime timestamp 1986-11-11->datetime
SELECT DATEDIFF(DATE_ADD('1986-11-11',INTERVAL 80 YEAR),NOW()) 
	FROM DUAL

2.2.1使用细节  764

DATE ADD()中的interval 后面可以是year minute second day等

DATE SUB()中的interval 后面可以是year minute second hour day等

DATEDIFF(date1,date2)得到的是天数,而且是date1-date2 的天数,因此可以取负数

这四个函数的日期类型可以是date, datetime或者timestamp

2.3 练习3  765

-- TIMEDIFF(date1,date2) 两个时间差(多少小时多少分钟多少秒)

-- NOW() 当前时间

-- YEAR|Month|DAY|DATE (datetime ) 年月日

-- UNIX_TIMESTAMP():返回的是1970-1-1到现在的秒数

-- FROM_ UNIXTIME():可以把UNIX_TIMESTAMP()的秒数,转成指定格式的日期

-- %Y-%m-%d 格式是规定好的,表示年月日

在实际开发中,我们也经常使用int来保存一个unix时间戳,然后使用from unixtime() 进行转换,还是非常有实用价值的

代码在E:\java学习\初级\course156\db_

date
-- TIMEDIFF(date1,date2) 两个时间差(多少小时多少分钟多少秒)   765
SELECT TIMEDIFF('10:11:11','06:11:11')FROM DUAL
-- NOW() 当前时间
SELECT NOW() FROM DUAL
-- YEAR|Month|DAY|DATE (datetime ) 年月日
SELECT YEAR(NOW()) FROM DUAL#取出年
SELECT MONTH(NOW()) FROM DUAL#取出月
SELECT DAY(NOW()) FROM DUAL#取出日
SELECT DATE(NOW()) FROM DUAL#取出日期
-- UNIX_TIMESTAMP():返回的是1970-1-1到现在的秒数
SELECT UNIX_TIMESTAMP()FROM DUAL
-- FROM_ UNIXTIME():可以把UNIX_TIMESTAMP()的秒数,转成指定格式的日期
-- %Y-%m-%d 格式是规定好的,表示年月日
-- 意义:在开发中,可以存放一个整数,然后表示时间,通过 FROM_UNIXTIME 转换
SELECT FROM_UNIXTIME(1671957893,'%Y-%m-%d')FROM DUAL
SELECT FROM_UNIXTIME(1671957893,'%Y-%m-%d %H:%i:%s')FROM DUAL

3. 加密和系统函数  766

mysql数学和日期和加密函数_java_04

3.1 基本使用

 演示用户表,存放密码时,是MD5

代码在E:\java学习\初级\course156\db_

pwd

#演示加密和系统函数  766
-- USER() 查询用户
-- 可以查看登录到 mysql 的有哪些用户,以及登录的 IP
SELECT USER() FROM DUAL -- 得到用户@IP地址
-- DATABASE() 查询数据库名称
SELECT DATABASE()FROM DUAL;
-- MD5(str)  为字符串算出一个MD5 32的字符串,(用户密码)加密
SELECT MD5('lzl')FROM DUAL
SELECT LENGTH(MD5('lzl'))FROM DUAL#MD5加密后都是32位的

-- 演示用户表,存放密码时,是MD5
CREATE TABLE hsp_user
	(id INT , 
	`name` VARCHAR(32) NOT NULL DEFAULT '',
	pwd CHAR(32) NOT NULL DEFAULT '');
INSERT INTO hsp_user
	VALUES(100,'中国',MD5('lzl'))
SELECT * FROM hsp_user
SELECT * FROM hsp_user
	WHERE `name`='中国' AND pwd = MD5('lzl')
-- PASSWORD(str) 加密函数 MySQL 数据库的用户密码就是 PASSWORD 函数加密
SELECT PASSWORD('lzl') FROM DUAL
-- select * from mysql.user \G 从原文密码str计算并返回密码字符串,通常用于对mysql数据库的用户密码加密
SELECT * FROM mysql.user

4. 流程控制函数  767

4.1 演示

mysql数学和日期和加密函数_java_05

代码在E:\java学习\初级\course157\db_

control

#演示流程控制函数  767
# IF(expr1,expr2,expr3) 如果 expr1 为 True ,则返回 expr2 否则返回 expr3
SELECT IF(TRUE,'北京','上海')FROM DUAL
# IFNULL(expr1,expr2) 如果 expr1 不为空 NULL,则返回 expr1,否则返回 expr2
SELECT IFNULL(NULL,'中国')FROM DUAL #中国
SELECT IFNULL('jack','中国')FROM DUAL #jack
# SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 END; [类似多重分支.]
# 如果 expr1 为 TRUE,则返回 expr2,如果 expr3 为 t, 返回 expr4, 否则返回 expr5
SELECT CASE
	WHEN TRUE THEN 'jack'
	WHEN FALSE THEN 'tom'
	ELSE 'mary' END     #返回jack

4.2 案例应用  767

1. 查询emp 表如果comm是null ,则显示0.0

2.如果emp表的job是CLERK则显示职员,如果是MANAGER则显示经理如果是SALESMAN则显示销售人员,其它正常显示.

mysql数学和日期和加密函数_mysql函数_06

代码在E:\java学习\初级\course157\db_

control

#演示流程控制函数  767
# IF(expr1,expr2,expr3) 如果 expr1 为 True ,则返回 expr2 否则返回 expr3
SELECT IF(TRUE,'北京','上海')FROM DUAL
# IFNULL(expr1,expr2) 如果 expr1 不为空 NULL,则返回 expr1,否则返回 expr2
SELECT IFNULL(NULL,'中国')FROM DUAL #中国
SELECT IFNULL('jack','中国')FROM DUAL #jack
# SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 END; [类似多重分支.]
# 如果 expr1 为 TRUE,则返回 expr2,如果 expr3 为 t, 返回 expr4, 否则返回 expr5
SELECT CASE
	WHEN TRUE THEN 'jack'
	WHEN FALSE THEN 'tom'
	ELSE 'mary' END     #返回jack
	
-- 1. 查询emp 表如果comm是null ,则显示0.0
-- 说明,判断是否为 null 要使用 is null, 判断不为空 使用 is not
SELECT ename ,IF(comm IS NULL,0.0,comm)
	FROM emp
#写法二
SELECT ename,IFNULL(comm,0.0)
	FROM emp
-- 2.如果emp表的job是CLERK则显示职员,如果是MANAGER则显示经理如果是SALESMAN则显示销售人员,其它正常显示.
SELECT ename,(SELECT CASE
		WHEN job='CLERK' THEN '职员'
		WHEN job='MANAGER' THEN '经理'
		WHEN job='SALESMAN' THEN '销售人员'
		ELSE job END) AS 'job'
	FROM emp;

标签:加密,函数,--,expr2,expr1,DUAL,mysql,NOW,SELECT
From: https://blog.51cto.com/u_15784725/6346289

相关文章

  • java函数式编程stream流操作lambda表达式使用方法引用用法等练习
    java函数式编程stream流操作lambda表达式使用方法引用用法等练习 @Testvoidtest01(){System.out.println("111");List<Author>authors=getAuthor();//stream流打对象中一个字段authors.stream().distinct().forEach(author......
  • MySQL8中binlog过期参数
    binlog_expire_logs_seconds设置二进制日志过期时间(以秒为单位)。二进制日志文件过期后,可以被自动删除。可能的删除发生在启动时和刷新二进制日志(flushlogs、或日志容量超过max_binlog_size的设置)时。默认的二进制日志过期时间为2592000秒,即30天(30*24*60*60秒)。如果binlo......
  • 【MySQL】【锁】MySQL 中的锁
    1  前言我们这节来看看MySQL中的锁,采用Q&A的形式,看起来会比较轻松。2 锁的分类在MySQL里,根据加锁的范围,可以分为全局锁、表级锁和行锁三类。3  全局锁3.1  全局锁是怎么用的?要使用全局锁,则要执行这条命令:flushtableswithreadlock执行后,整个数据库就处......
  • #Powerbi 1分钟学会,SUMMARIZE函数,分组汇总并新建表
    今天我们来学习一个新的表函数,SUMMARIZE函数是DAX中的一个函数,它可以根据一列或多列对数据进行分组,并且可以使用指定的表达式为汇总后的表添加新列,形成一张新表。一:基础语法SUMMARIZE函数的语法是:SUMMARIZE (表, 分组列1 [, 分组列2]… [, 名称, 表达式]…)其中:表,是任何......
  • mysql 多个count(*)结果展示在一行
    1select2count(DISTINCTqid,IF(question_type='单选题',TRUE,NULL))as单选题总数,3count(DISTINCTqid,IF(question_type='多选题',TRUE,NULL))as多选题总数,4count(DISTINCTqid,IF(question_type='判断题',TRUE,NULL))as判断题总......
  • 现代 CSS 解决方案:CSS 原生支持的三角函数
    在CSS中,存在许多数学函数,这些函数能够通过简单的计算操作来生成某些属性值,例如:calc():用于计算任意长度、百分比或数值型数据,并将其作为CSS属性值。min()和max():用于比较一组数值中的最大值或最小值,也可以与任意长度、百分比或数值型数据一同使用。clamp():用于将属性值......
  • 【MySQL用法】mysql日期时间函数总结(附带mysql官网介绍)
    MySQL提供了大量丰富的函数,在MySQL的使用中经常会用到各种函数,本文记录的是常见的MySQL的日期与时间函数,主要用于处理日期和时间值。MySQL获得当前日期+时间函数获得当前日期+时间(date+time)函数:now(),SYSDATE();SELECTnow(),SYSDATE();sysdate()日期时间函数跟now()类似,区......
  • C++中const和constexpr关键字解析:常量、函数和指针
    C++中const和constexpr的作用很多C++的初学者看到const这个关键字的第一反应都是一头雾水,主要是因为const可以出现在很多的位置,以及后面加入的constexpr更是常常感到困惑,今天就为大家一一解释出现它们的含义和以及作用const关键字const修饰变量这是最基本的一种用法,顾名思义,就是......
  • mysql is neither service nor target!?(suse12 sp5)
    今天想在自己的Suse虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql.cp/data/mysql/support-files/mysql.server/etc/init.d/mysqldchmod+x/etc/init.d/mysqldchkconfig--level35mysqldonchkconfig--addmysqldchkconfig--list1.servicemysqlstart;......
  • C语言函数大全-- x 开头的函数(4)
    C语言函数大全本篇介绍C语言函数大全--x开头的函数1.xdr_struct1.1函数说明函数声明函数功能bool_txdr_struct(XDR*xdrs,void*addr,...);用于编码或解码结构体数据参数:xdrs:指向XDR数据结构的指针,表示要进行编码或解码的数据流addr:指向待编......