使用单行函数
Posted nameofworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用单行函数相关的知识,希望对你有一定的参考价值。
1. 写一个查询显示当前日期,列标签显示为 Date。
select CURDATE()"DATE" FROM dual;
2. 对每一个雇员,显示 employee number、last_name、salary 和 salary 增加 15%,并且表示成整数,列标签显示为 New Salary。将你的 SQL 语句存到名为 lab3_2.sql 的文本文件中。
select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0)"NEW SALARY"
FROM employees;
4. 修改查询 lab3_2.sql 添加一个列,该列从新薪水 New Salary 列中减去旧薪水,列标签为 Increase。保存内容到文件 lab3_4.sql 中。运行修订的查询。
select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0) AS "NEW SALARY",salary*1.15-salary AS "INCREASE"
FROM employees;
5. 写一个查询用首字母大写,其它字母小写显示雇员的 last names,显示名字的长度,对所有名字开始字母是 J、A 或 M 的雇员,给每列一个适当的标签。用雇员的 last names 排序结果。
select last_name "Name",LENGTH(last_name) AS "Length"
from employees
where last_name LIKE 'J%' OR last_name LIKE 'A%' OR last_name LIKE 'M%'
ORDER BY last_name;
6. 对每一个雇员,显示其last name,并且计算从雇员受雇日期到今天的月数,列标签MONTHS_WORKED。按受雇月数排序结果,四舍五入月数到最靠近的整数月。 注:你的结果将不同。
select last_name,ROUND(TIMESTAMPDIFF(MONTH,hire_date,CURDATE()),0) AS "MONTH_WORKED"
FROM employees
ORDER BY TIMESTAMPDIFF(MONTH,hire_date,CURDATE());
8. 创建一个查询显示所有雇员的 last name 和 salary。格式化为 15 个字符长度,用 $ 左填充,列标签 SALARY。
select last_name,lpad(replace(REPLACE(salary,',',''),'.00',''),15,'$') AS SALARY
FROM employees;
10. 显示 last name、hire date 和 雇员开始工作是周几,列标签 DAY,用星期一作为周的起始日排序结果。
select last_name,hire_date,CASE DAYOFWEEK(hire_date)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
end "DAY"
from employees
ORDER BY DAYOFWEEK(hire_date-1);
11. 创建一个查询显示雇员的 last names 和 commission (佣金) 比率。如果雇员没有佣金,显示 “No Commission”,列标签 COMM。
select last_name,IF(commission_pct IS NULL,'No Commission',commission_pct) "COMM"
from employees;
12. 创建一个查询显示雇员的 last names 并带星号显示他们的年薪,每个星号表示1000美圆。按薪水降序排序数据。列标签为 EMPLOYEES_AND_THEIR_SALARIES。
select CONCAT(last_name,rpad('*',round(salary/1000,0),'*'))"EMPLOYEES_AND_THEIR_SALARIES"
FROM employees
ORDER BY salary DESC;
13. 用 CASE 语法,写一个查询,按照下面的数据显示所有雇员的基于 JOB_ID 列值的级别。
工作 级别
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
不在上面的 0
select job_id,CASE job_id
WHEN "AD_PRES" THEN "A"
WHEN "ST_MAN" THEN "B"
WHEN "IT_PROG" THEN "C"
WHEN "SA_REP" THEN "D"
WHEN "ST_CLERK" THEN "E"
ELSE "0"
END "G"
FROM employees;
加油加油^-^
MySQL中的常见函数之单行函数
前言
MySQL数据库中提供了很丰富的函数,涵盖了不同的类型,合理使用这些函数会让我们在使用MySQL时更加方便,常见函数又分为单行函数和分组函数,本章给大家总结了大部分单行函数的使用。
单行函数
单行函数分为:
- 字符函数
- 数字函数
- 日期函数
- 其他函数
- 流程控制函数
字符函数
字符函数包括:
- length:获取参数值的字节个数
- concat:拼接字符串
- substr:截取指定索引处后的字符
- instr:返回子串第一次出现的索引,如果找不到则返回0
- trim:去掉字符串左右两边的空格,使用(‘需要去掉的内容’ from)可以去除单引号中出现的前后有的内容
- upper:将字母转为大写
- lower:将字母转为小写
- lpad:用指定的字符实现做填充指定长度
- rpad:用指定的字符实现由填充指定长度
- replace:替换,使用 replace(‘字符串’,‘需要替换的内容’,‘替换后的内容’)可以将字符串中需要替换的内容替换为替换后的内容。
数学函数
数学函数包括:
- round:四舍五入(可在需要四舍五入的数字后加“,小数点后保留的位数”)
- ceil:向上取整,返回的值为>=该参数的最小整数
- floor:向下取整,返回的值为<=该参数的最大整数
- truncate:截断,截断数字小数点后的指定位数
- mod:取余,相当于算术运算符“%”
日期函数
在MySQL中的日期对应的符号:
- %Y:四位的年份
- %y:两位的年份
- %m:月份(01,02,03,……,11,12)
- %c:月份(1,2,……,11,12)
- %d:日(01,02,……)
- %H:小时(24小时制)
- %h:小时(12小时制)
- %i:分钟(00,01,……,59)
- %s:秒(00,01,……,59)
日期函数包括:
- now:返回当前系统日期+时间
- curdate:返回当前系统日期,不包含时间
- curtime:返回当前时间,不包含日期
- year、month、monthname、day、hour、minute、second:获取指定的部分的年、月、日、时、分、秒
- str_to_date:将日期格式的字符转换成指定格式的日期
- date_format:将日期转换成指定格式字符
其他函数
其他函数包括:
- version:查看版本号
- database:查看当前数据库
- user:查看当前用户
流程控制函数
流程控制函数有:
- if函数:if else的效果,使用时类似于三元运算符,第一位是一个判断语句,判断正确则会输出第二位的内容,否则输出第三位的内容
- case函数:有两种使用方法,一种类似于switch case的效果,另一种类似于多重if语句的效果
case函数的使用:
case函数的使用方法一:
case 要判断的字段或表达式
when 常量1 then 要显示的值1 或 语句1;
when 常量2 then 要显示的值2 或 语句2;
...
else 要显示的值n 或 语句n;
end
其作用相当于java中的switch case
switch(变量或表达式){
case 常量1: 语句1; break;
...
default: 语句n; break;
}
case函数的使用方法二:
case
when 条件1 then 要显示的值1 或 语句1;
when 条件2 then 要显示的值2 或 语句2;
...
else 要显示的值n 或 语句n
end
其作用相当于java中的多重if
if(条件1){
语句1;
}else if(条件2){
语句2;
}
...
else{
语句n;
}
**注意两者的差别:**第一种用法在when后面跟的是常量,相当于switch case语句,第二种用法在when后面跟的是条件表达式,相当于多重if语句。
总结:
本章总结了MySQL中的常见函数中的单行函数,包括了字符函数、数学函数、日期函数、其他函数和流程控制函数,在MySQL的学习和使用的过程中,我们需要大量的使用到这些函数,所以需要熟练掌握和使用,为之后的MySQL学习和使用打下良好的基础。
以上是关于使用单行函数的主要内容,如果未能解决你的问题,请参考以下文章