MySQL学习笔记(2)–数据处理函数/单行处理函数

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只能出现在所有字段的前面。

本文地址:https://blog.csdn.net/qq_19331985/article/details/107633215

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐