MySQL数据库-数据处理函数/单行处理函数

mysql学习笔记 专栏收录该内容
11 篇文章 1 订阅

1.文本处理函数

1.1常用函数

Lower转换小写
upper转换大写
substr取子串(substr(被截取的字符串,起始下标,截取的长度)
length取长度
trim去空格
str_to_date将字符串转换成日期
date_format格式化日期
format设置千分位
round四舍五入
rand()生成随机数
Ifnull可以将null转换成一个具体值

1. lower

查询员工,将员工姓名全部转换成小写 :

select lower(ename) from emp;

在这里插入图片描述

2. upper

查询job为manager的员工 :

select * from emp where job=upper('manager');

在这里插入图片描述

3. substr

查询姓名以M开头所有的员工 :

select * from emp where substr(ename, 1, 1)=upper('m');

在这里插入图片描述

4. length

取得员工姓名长度为5的 :

select length(ename), ename from emp where length(ename)=5;

在这里插入图片描述

5. trim

trim会去首尾空格,不会去除中间的空格。

取得工作岗位为manager的所有员工 :

select * from emp where job=trim(upper('manager  '));

在这里插入图片描述

6. str_to_date(必须严格按照标准输出)

查询1981-02-20入职的员工(第一种方法,与数据库的格式匹配上)
在这里插入图片描述
查询1981-02-20入职的员工(第二种方法,将字符串转换成date类型)
在这里插入图片描述
str_to_date可以将字符串转换成日期,具体格式str_to_date (字符串,匹配格式)

7. date_format

查询1981-02-20以后入职的员工,将入职日期格式化成yyyy-mm-dd hh:mm:ss
在这里插入图片描述
select date_format(now(),’%Y-%m-%d %H %i %s’);

now() 获得当前时间

日期格式的说明:

%Y:代表4位的年份

%y:代表2位的年份

%m:代表月, 格式为(01……12)

%c:代表月, 格式为(1……12)

%H:代表小时,格式为(00……23)

%h: 代表小时,格式为(01……12)

%i: 代表分钟, 格式为(00……59)

%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)

%T:代表 时间,格式为24 小时(hh:mm:ss)

%S:代表 秒,格式为(00……59)

%s:代表 秒,格式为(00……59)

8. format

查询员工薪水加入千分位 :

select empno, ename, Format(sal, 0) from emp;

在这里插入图片描述
查询员工薪水加入千分位和保留两位小数
在这里插入图片描述

9. round

四舍五入 :

select round(123.56);

在这里插入图片描述

10. rand()

生成随机数 :

select rand();

在这里插入图片描述
随机抽取记录数

11. case when then ……else…end

如果job为MANAGERG薪水上涨10%,如果job为SALESMAN工资上涨50%
在这里插入图片描述
其他的工资不动,需要添加else

select e.*.sal,case job when 'salesman' then sal*1.1 when 'clerk'  then sal*1.2 else sal end as new_sal from emp e; 

在这里插入图片描述

12. ifnull

在这里插入图片描述
数据处理函数又被称为单行处理函数,特点:输入一行输出一行

1.2全部函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
soundex()将一个文本串转换为描述其语音的字母模式算法,考虑类似的发音字符和音节,对串的发音比较而不是字母比较

subString(需要截取的字段,需要截取的起始位置,需要截取的长度)

trim():去除字符的左右的空格

示例:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.日期和时间处理函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.数值处理函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.高级函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.日期处理 (1)_str_to_date

1.作用

将“日期字符串”转换成“日期类型”数据。【varchar-----》date】

2.执行结果

date类型

3.使用格式

str_to_date(‘日期字符串’,’日期格式‘)

4.关于MYSQL日期格式

1.Java日期格式:

	yyyy		-- 年
​	MM			-- 月
​	dd			-- 日
​	HH			-- 时
​	mm			-- 分
​	ss			-- 秒
​	SSS			-- 毫秒

2.Java将字符串转换成日期类型:

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date date =  sdf.parse("1970-10-10");

3.MYSQL 日期格式:%Y-%m-%d

	%Y				-- 年%m			    -- 月%d				-- 日%H				-- 时%i				-- 分%s				-- 秒

示例:

mysql> select ename,hiredate from emp where hiredate = "1980-12-17";

在这里插入图片描述
正规写法:

mysql> 
select ename,hiredate from emp where hiredate = str_to_date("12-17-1980",'%m-%d-%Y');

在这里插入图片描述
注意:“1980-12-17”之所以能够查询通过,是因为当前字符串类型数据得数据格式与MYSQL数据库默认得日期类型相同,所以查询通过,如果是“12-17-1980”将会报异常

示例:

mysql> insert into t_student(id,name,birth) values(2,"heheda","11-12-1996");

在这里插入图片描述
正确写法:

mysql> 
insert into t_student(id,name,birth) 
values(2,"heheda",str_to_date("11-12-1996",'%m-%d-%Y'));

在这里插入图片描述

6.日期处理(2)_date_format

1.作用

将date转换成特定格式得日期字符串varchar【date----》varchar】

2.执行结果

varchar类型(具备特定格式的)

3.语法格式

date_format(日期类型格式,“日期格式”);

4.Java格式回顾

Java中的日期格式化:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date newTime = new Date();

String strTime = sdf.format(newTime);

示例:

mysql> select ename,date_format(hiredate,"%m-%d-%Y") as hiredate from emp;

在这里插入图片描述

mysql> select ename,date_format(hiredate,"%m/%d/%Y") as hiredate from emp;

在这里插入图片描述

select ename,hiredate from emp ====== select ename,date_format(hiredate,"%Y-%m-%d") as hiredate from emp; 这两个句子相等.

5.结论

date_format函数主要用在查询的语句中,来展示特定格式的日期字符串数据格式。

7 分组函数/聚合函数/多行处理函数

1.count(取得记录数)

在这里插入图片描述
注意:使用count时条件可以使用字段,也可以使用 * 号,但是使用字段时或忽略空值,使用星号将不会;
在这里插入图片描述
注意:在使用count函数时,使用where添加条件
在这里插入图片描述
意为:符合条件的所有记录总和

2.sum(求和)

在这里插入图片描述

3.avg(取平均值)

在这里插入图片描述

4.max(取最大的数)

在这里插入图片描述

5.min(取最小值)

在这里插入图片描述
注意:分组函数会自动忽略空值。分组函数不可直接使用在where后面

6.distinct

将查询结果中的重复数据去除,

注意:distinct只能出现在所有字段的前面。
在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

Eggsy.Li

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值