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

专门做中式服装平台的网站岳阳网站开发报价

专门做中式服装平台的网站,岳阳网站开发报价,制作ppt的软件免费,水果电子商务网站建设规划书文章目录 函数字符串函数常见函数举例说明具体场景 数值函数常见函数举例说明具体场景 日期函数常见函数举例说明具体场景 流程函数常见函数举例说明具体场景 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经…

文章目录

  • 函数
    • 字符串函数
      • 常见函数
      • 举例说明
      • 具体场景
    • 数值函数
      • 常见函数
      • 举例说明
      • 具体场景
    • 日期函数
      • 常见函数
      • 举例说明
      • 具体场景
    • 流程函数
      • 常见函数
      • 举例说明
      • 具体场景

函数

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

我们先来看两个场景:
在这里插入图片描述

1). 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。 而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计算出天数呢?

2). 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?

其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。
MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。

准备工作

drop table if exists employee;create table emp(
id int comment '编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
workaddress varchar(50) comment '工作地址',
entrydate date comment '入职时间'
)comment '员工表';INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

字符串函数

常见函数

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

函数功能
CONCAT(S1,S2,…Sn)字符串拼接,将S1,S2,…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个长度的字符串(下标从1开始)

举例说明

-- A. concat : 字符串拼接
select concat('Hello' , ' MySQL'); -- B. lower : 全部转小写
select lower('Hello'); -- C. upper : 全部转大写
select upper('Hello'); -- D. lpad : 左填充
select lpad('01', 5, '-'); -- E. rpad : 右填充
select rpad('01', 5, '-'); -- F. trim : 去除空格
select trim(' Hello MySQL ');-- G. substring : 截取子字符串
select substring('Hello MySQL',1,5);

具体场景

案例:
由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001。
update emp set workno = lpad(workno, 5, '0');
在这里插入图片描述

处理完毕后, 具体的数据为:
在这里插入图片描述

数值函数

常见函数

常见的数值函数如下:

函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,Y)返回x/y的模
RAND()返回0~1内的随机数
ROUND(x,Y)求参数x的四舍五入的值,保留y位小数

举例说明

演示如下:

-- A. ceil:向上取整
select ceil(1.1); -- B. floor:向下取整
select floor(1.9); -- C. mod:取模
select mod(7,4); -- D. rand:获取随机数
select rand(); -- E. round:四舍五入
select round(2.344,2); 

具体场景

案例:
通过数据库的函数,生成一个六位数的随机验证码。
思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础
上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0
select lpad(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之间的天数

举例说明

演示如下:

-- A. curdate:当前日期
select curdate(); 
-- B. curtime:当前时间
select curtime(); 
-- C. now:当前日期和时间
select now(); 
-- D. YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());
select MONTH(now());
select DAY(now());
-- E. date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );
-- F. datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');

具体场景

案例:
查询所有员工的入职天数,并根据入职天数倒序排序。
思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

流程函数

常见函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

函数功能
IF(value,t,f)如果value为true,则返回t,否则返回 f
IFNULL(valuel , value2)如果value1不为空,返回value1,否则 返回value2
CASE WHEN [val1 ] THEN [res1]... ELSE [default] END 如果val1为true,返回res1,…否 则返回default默认值 (相当于if … else)
CASE [expr ] WHEN [val1] THEN [res1]...ELSE [default]END如果expr的值等于val1,返回 res1,…否则返回default默认值 (相当于switch的等值判断)

举例说明

演示如下:

-- A. if
select if(true, 'Ok', 'Error'); -- Ok
select if(false, 'Ok', 'Error'); -- Error-- B. ifnull
select ifnull('Ok','Default'); -- Ok
select ifnull('','Default'); --  注意这里什么都没有空字符串 != null
select ifnull(null,'Default'); -- Default-- C. case when then else end
-- 需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)
-- 使用第二个等值判断的流程函数
selectname,( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else
'二线城市' end ) as '工作地址'
from emp;

具体场景

案例: 将成绩大于等于85输出优秀,大于等于60及格,否则不及格。

create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '数学',english int comment '英语',chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95
), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

具体的SQL语句如下:

-- 因为是范围使用第一个判断的流程函数
selectid,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;

MySQL的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例场景,

思考一下需要用到什么样的函数来实现?
1). 数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢? -------->
答案: datediff
2). 数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢? ---------->
答案: case … when …

http://www.dtcms.com/wzjs/565892.html

相关文章:

  • 中国公司查询网站绿色农业网站源码
  • 免费企业建站系统源码wordpress文章摘录
  • 有哪些网站可以做简历知名商城网站建设
  • 沈阳开发网站朗域装饰公司电话
  • asp做的网站asp源代码破解网站后台账号密码
  • 凉山网站建设兰州市七里河建设局网站
  • 外贸网站建设流程手机赚钱
  • 个人网站开发背景及意义十大免费跨境电商平台
  • 网站开发应如何入账wordpress迁移换域名
  • 外国做水吧设计的网站关键词排名公司
  • 网站内链 工具wordpress get_search_form()多个条件查询
  • 黄金网站app免费视频大全武安做网站
  • 怎么建立本地网站网络平台宣传方式有哪些
  • 河南省住房和城乡建设厅门户网站西安建筑网站建设
  • 规范门户网站的建设和管理办法wordpress获取文章中的图片
  • 国外二手手表网站惠州app开发公司
  • 南京汽车企业网站建设青蛙网站建设
  • 贵州省建设厅官方网站官网北京最大的互联网公司
  • 遵义在线网站建设黄页号码是啥
  • 用html建设网站阿里云 wordpress 安装
  • 建设网站要备案吗wordpress 调试插件
  • windows 2008 搭建网站seo sem sns的区别
  • 专业网站建站字体大全
  • 简述网站内容管理流程网上注册网站要钱吗
  • 企业网站开发成本女装关键词排名
  • 临沂网站优化哪家好工商企业年报查询入口
  • 北京通信管理局网站备案外贸网站的建设
  • 如何搭建内网网站网站设计导航栏怎么做
  • 网站建设四不问题杭州网站设计成功柚v米科技
  • 做淘宝网站需要多少钱wordpress变为中文