###函数查询

-- 查看所有用户
SELECT USER,HOST FROM mysql.user
CREATE USER xxx

-- 赋予权限
GRANT ALL ON student.* TO xxx@'%'


CREATE DATABASE student

**/***
  **函数查询--时间查询**
    **时间处理**
    **时间获取**
    **时间计算等**
***/**
-- 获取时间信息
SELECT YEAR(NOW()),MONTH('2023-07-17'),DATE(NOW()),DAY(NOW()),
       HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());

-- 获取名字
SELECT MONTHNAME(NOW()),DAYNAME(NOW());

-- 获取部分信息
-- 星期相关
SELECT WEEK(NOW()),WEEKDAY('2023年7月17日08:29:49'),WEEKOFYEAR(NOW());

-- 天相关
SELECT DAYOFMONTH(NOW()),DAYOFMONTH(NOW()),DAYOFMONTH(NOW());

-- 日期的计算/转化
SELECT DATE_ADD(NOW(),INTERVAL 2 DAY)-- 当前时间的对应之后的日期
SELECT DATE_ADD(NOW(),INTERVAL 2 MINUTE)
SELECT DATE_SUB(NOW(),INTERVAL 3 MONTH)-- 当前时间的对应之前的日期
SELECT DATE_SUB(NOW(),INTERVAL 3 MONTH)
SELECT DATEDIFF(NOW(),'2001-10-04')-- 两个日期之间相差多少天
SELECT TIMESTAMPDIFF(HOUR,'2001-10-04',NOW())
SELECT TIMESTAMPDIFF(MINUTE,'2001-10-04',NOW())
SELECT TIMESTAMPDIFF(SECOND,'2001-10-04',NOW())
SELECT TO_DAYS(NOW()) -- 1970-01-01标准日期
SELECT TO_seconds(NOW()) -- 日期转化成整数
SELECT FROM_DAYS(419589) -- 整数转化成日期
SELECT LAST_DAY(NOW()) -- 当前日期当前月的最后一天
SELECT MAKEDATE(2023,128) -- 给定年数,获取多少天之后的日期
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %W %H:%i:%s') -- 格式化日期

/*
  练习
    1:十八年后还是一条好汉
    2:当前车辆入库2023-07-17 6:06:05,十五分钟内不收费,
       超过每半小时收费5元(不足按半个小时算)计算 2023-07-18 09:11:12出库应该付多少钱
    3:产品生产日期是2023-07-17 12:24:24 25小时后过期 
       计算过期时间,按照中文习惯显示
    4:假设人的寿命为99岁,计算你还能活多少年,多少天,多少秒
*/

-- 1
SELECT DATE_ADD(NOW(),INTERVAL 18 YEAR) 后还是一条好汉

-- 2
SELECT CEILING((
    TIMESTAMPDIFF(SECOND,'2023-07-17 06:06:05','2023-07-18 09:11:12')/60-15)/30)*5

-- 3
SELECT DATE_FORMAT(DATE_ADD('2023-07-17 12:24:24',INTERVAL 25 HOUR),'%Y年%m月%d日 %H:%i:%s')

-- 4
SELECT DATEDIFF(DATE_ADD('2023-10-04',INTERVAL 99 YEAR),NOW())
SELECT TIMESTAMPDIFF(HOUR,NOW(),DATE_ADD('2023-10-04',INTERVAL 99 YEAR))
SELECT TIMESTAMPDIFF(SECOND,NOW(),DATE_ADD('2023-10-04',INTERVAL 99 YEAR))

SELECT TIMESTAMPDIFF(YEAR,NOW(),DATE_ADD('2002-08-18 02:30:30',INTERVAL 99 YEAR))年,
TIMESTAMPDIFF(DAY,NOW(),DATE_ADD('2002-08-18 02:30:30',INTERVAL 99 YEAR)) 天,
TIMESTAMPDIFF(SECOND,NOW(),DATE_ADD('2002-08-18 02:30:30',INTERVAL 99 YEAR)) 秒

**/***
  **函数查询--信息函数**
    **获取一些数据库系统中的信息**
***/**

-- 获取当前用户
SELECT USER(),CURRENT_USER(),SYSTEM_USER

-- 获取当前数据库
SELECT DATABASE()

-- 获取版本信息
SELECT VERSION()

-- 返回最近一个查询获取的信息条数
SELECT FOUND_ROWS()

-- 返回autoincrement 字段最后一次插入数据的id
SELECT LAST_INSERT_ID()

-- 获取一串唯一的ID号
SELECT UUID()

**/*****
  **函数查询---判断函数**
    **用户判断条件是否满足**
    
*/**

-- if判断 第一个表达式是判断条件,如果结果是true或不等于null,就返回第二个值,否则返回第一个值
SELECT IF(12<10,'今天心情挺不错','真他妈傻逼')

-- 非空函数 如果第一个值为null则返回第二个值,否则返回第一个值
SELECT IFNULL('傻逼','智障')
SELECT IFNULL(NULL,'智障')

/*
  函数查询---加密运算
*/

-- 不可逆
SELECT PASSWORD('abc')
SELECT MD5('abc')

-- 可逆
SELECT ENCODE('abcdefg','123456')
SELECT DECODE('abcdefg','123456'),'123456'

**/***
  **选择查询**
    **依赖于已有的数据,根据条件进行数据的筛选**
***/**

-- 练习--仓库
warehouse仓库
GRANT ALL ON warehouse.* TO xxx@'%'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值