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
上一篇: 我的暑假网络兼职经历
下一篇: OSI及TCP/IP的概念和区别
推荐阅读