Mysql(三)

目录

函数

字符串函数

 数值函数

日期函数

流程函数

管理用户

查询用户


函数

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。

字符串函数

字符串中内置了很多字符串函数,常用的几个如下:

函数功能
concat ( s1 , s2 , ....  ,sn )字符串拼接,将s1,.... ,sn拼接为一个字符串
lower(str)将str转为小写
upper(str)将str转为大写
lpad( str , n , pad)左填充,用pad对str的左边进行填充,达到n个长度 
rpad( str , n , pad )右填充,用pad对str的右边进行填充,达到n个长度
trim (str)去掉字符串头尾空格(不包括中间)
substring( str , start , len)返回字符串str从start位置起的len个长度的字符串

演示如下:

#字符串函数

#--concat 拼接
select concat('Hello',' Mysql');

#转化为小写
select lower('Hello');

#转化为大写
select upper('Hello');

#左补齐 直到n
select lpad('01',5,'-');

#右对齐 
select rpad('01',5,'-');

#去除头尾空格
select trim(' Hello Mysql ');

#截取
select substring('hello mysql',1,5);

update emp02 set workno = lpad (workno,5,'0');

 数值函数

常见的数值函数如下:

函数功能
ceil ( x )向上取整
floor( x )向下取整
mod( x , y )返回x/y的模
rand ( )

返回0 ~ 1的随机数

round( x , y )求参数x 的四舍五入的值,保留y位小数

演示如下:

#数值函数

#向上取整
select ceil(1.1);

#向下取整
select floot(1.9);

#取模
select mod(7,4);

#随机数
select rand();

#保留小数位数,四舍五入
select round(2.344,2);

#生成一个六位随机验证码

select rpad(round(rand()*1000000,0),6,'0');

日期函数

常见的日期函数:

函数

功能

curdate()

返回当前日期

curtime()

返回当前时间

now()返回当前日期和时间
year( date)

获取指定date的年份

month(date)获取指定date的月份
day(date)获取指定date的日期
date_add( date , INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间
datediff( date1 , date2 )返回起始时间date1 和 结束时间date2之间的时间
演示如下:
#日期函数

#curdate() 当前日期
select curdate();

#curtime() 当前时分秒
select curtime();

# now()返回当前时间
select now();

#Year Month Day
select year(now());

select month(now());

select day(now());

#date_add 返回往后推70天、70月、70年
select date_add(now(),interval 70 day);

select date_add(now(),interval 70 month);

select date_add(now(),interval 70 year);

#datediff 指定俩个时间间隔天数(前-后)

select datediff('2022-04-01','2022-04-22');

#按截至现在入职天数进行倒序排序
select name,datediff(curdate(),entrydate) as '入职天数' from emp02 order by 入职天数 desc;

流程函数

流程函数也是很常用的一类函数,可以在 SQL 语句中实现条件筛选,从而提高语句的效率
函数功能
IF ( value  , t , f )如果value为true,则返回t,否则返回f
IFNULL( value1, value2)如果value1不为空则返回value1,否则返回valus2
CASE WHEN [  vall  ]  THEN  [ res1 ] ... ELSE [  default ] END 如果vall为true,返回res1, ... 
CASE [ expr ] WHEN  [  vall ] THEN  [ res1 ] ... ELSE [  default  ] END   如果expr的值等于vall,返回res1, ...否则返回default默认值

演示如下:

#流程控制函数

-- if
select if(false,'ok','Error');

-- ifnull
select ifnull('ok','Default');

select ifnull(null,'Default');

-- case when then else end
-- 需求:查询表中员工姓名和工作地址(北京/上海 ---> 一线城市,其他---->二线城市)

select name,(case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else 

'二线城市' end) '工作地址' from emp02;


create table score(

id int comment 'ID',
	
name varchar(20) comment '姓名',

math int comment '数学',
	
english int comment '英语', 

chinese int comment '语文' ) comment '学员成绩表';

select * from score;

insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);



select 
 id,
 name,	
 (case when math>=85 then '优秀' when math>=60 then '合格' else '不及格' end ) '数学',
 (case when english>=85 then '优秀' when english>=60 then '合格' else '不及格' end ) '英语',
 (case when chinese>=85 then '优秀' when chinese>=60 then '合格' else '不及格' end ) '语文'from score;

管理用户

查询用户

select * from mysql.??( 该数据库名)

注意事项:

  • 在Mysql中需要通过用户名@主机名的方式,来唯一标识一个用户
  • 主机名可以使用 % 通配
  • 这类SQL开发人员操作的比较少,主要是DBA( Datebase  Administrator  数据库管理员)使用

 

演示如下:
#DCL用户管理

#创建用户 itcast,只能在当前主机localhost访问,密码123456

create user 'itcars'@ 'localhost'identified by '123456';
create user 'itcart'@'localhost'identified by '123456';

#创建用户Jay,可以在任意主机访问该数据库

create user 'Jay'@'%' identified by '123456';

#修改用户Jay的访问密码

alter user 'Jay'@'%' identified with mysql_native_password by '1234';

#删除itcars@localhost
drop user 'itcars'@'localhost';

#查询权限
show grants for 'Jay'@'%';

#授予权限 *.*所有权限
grant all on  dbesxt00001.*to'Jay'@'%';

#撤销权限
revoke all on dbesxt00001.* from 'Jay'@'%';

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值