目录

一、常用sql函数

1.concat():字符串拼接

2.ifnull(str1,str2):若str1为null,返回str2;否则,返回str1;

4.特别提示:+号与concat()

5.in

6.is / is not

7.安全等于:<=>

8.LENGTH(str):字符串长度;upper:转大写;lower:转小写;

9.substr(str,a,b):在str中从索引a开始,截取b个字符

10.示例:substr、upper、lower、concat

11.instr(str1,str2)

12.trim:去除前后空格或其它指定字符

13.lapd、rapd

14.replace(str1,str2,str3):使用str3替换str1中的str2

15、round、ceil、floor、truncate、mod、rand

16、now()、curdate()、str_to_date()、date_format()、datediff

17、流程控制函数:if、case

18:聚合函数:sum、、max 、min 、count


一、常用sql函数

1.concat():字符串拼接

特别注意:NULL和任何的数据concat拼接,结果都是NULL;

#将last_name、first_name拼接中间以“,”间隔;
SELECT concat(last_name,',',first_name) as 姓名
from employees;

2.ifnull(str1,str2):若str1为null,返回str2;否则,返回str1;

#若commission_pct为null,返回0,否则返回commission_pct
SELECT IFNULL(commission_pct,0) as 奖金率;

3.根据上面两个函数,示例:拼接可能为null的数据字段值,应该使用ifnull()+concat()

#为了防止commission_pct为null,导致concat()拼接结果为null,所以使用ifnull()判断
SELECT CONCAT(first_name,',',last_name,',',job_id,',',IFNULL(commission_pct,0))as OUT_PUT
FROM employees;

4.特别提示:+号与concat()

#+号,在sql中,如果拼接字段是字符串数据,它会转换为数据类型,作算术运算;
#如果不能转换为数据,就为0;+号和concat()函数不同;+号虽然在java或python中可以拼接字符,
#但在sql中,是向算术倾向的;

5.in

SELECT last_name,job_id FROM employees WHERE job_id IN ('IT_PORT','AD_VP','AD_PRES');

6.is / is not

特别注意:=号不能判断一个值是null;需要使用:IS;但是注意,is、is not只能用来判断字段值null

SELECT last_name,commission_pct FROM employees WHERE commission_pct is NULL;
#而下面这句则不行
#SELECT last_name,commission_pct FROM employees WHERE commission_pct = NULL;

7.安全等于:<=>

特别注意:<=>这个符号可以判断任何字段值是否等于,包括上面的值为null的情况;

SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

8.LENGTH(str):字符串长度;upper:转大写;lower:转小写;

9.substr(str,a,b):在str中从索引a开始,截取b个字符

特别注意:sql的索引从1开始

SELECT SUBSTR(last_name,2,3) FROM employees;

10.示例:substr、upper、lower、concat

#姓名首字母大写,其他字母小写,下划线连接
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),LOWER(SUBSTR(last_name,2)),"__",LOWER(first_name)) as 姓名
FROM employees;

11.instr(str1,str2)

返回str2字符串在str1中的起始索引,如果没有就返回0
SELECT INSTR("杨不悔爱上了殷六侠","殷六侠") AS out_put;#返回:7

12.trim:去除前后空格或其它指定字符

SELECT TRIM( '    刘德华          ') AS output;
#刘德华
SELECT TRIM('a' FROM "aaa刘aa德aa华") AS 输出;
#刘aa德aa华

13.lapd、rapd

#lapd:用指定的字符实现左填充指定长度,如果字符长度大于指定长度,则从左保留指定长度字符
SELECT lpad('影视计算机',20,"*") AS 输出;
SELECT lpad('影视计算机',2,"*") AS 输出;
SELECT lpad('计算机',4,"影视") AS 输出;#如果指定填充的字符填充后,大于指定长度,那么之后在指定用于填充字符截取部分进行填充;
#rpad用指定的字符实现右填充指定长度,如果字符长度大于指定长度,则从从保留指定长度字符
SELECT rpad('影视计算机',20,"*") AS 输出;
SELECT rpad('影视计算机',2,"*") AS 输出;
SELECT rpad('计算机',4,"影视") AS 输出;#如果指定填充的字符填充后,大于指定长度,那么之后在指定用于填充字符截取部分进行填充;

14.replace(str1,str2,str3):使用str3替换str1中的str2

SELECT REPLACE('周芷若爱上了张无忌张无忌喜欢周芷若',"周芷若","赵敏")AS out_put;

15、round、ceil、floor、truncate、mod、rand

#数学函数,注意数学函数中的第二个参数一般都是保留几位小数
#round:四舍五入;
SELECT ROUND(-1.65);
SELECT round(1.5678,3);#保留3位小数
#ceil:向上取整,返回>=该参数的最小整数
SELECT ceil(-1.02);
SELECT ceil(1.02);
#floor 向下取整,返回<=该参数的最大整数
SELECT FLOOR(-1.02);
SELECT FLOOR(1.02);
#truncate 截断,参数2表示保留小数位数
SELECT TRUNCATE(1.69999,2);
#mod 取余
SELECT MOD(10,3);
#rand()
#获取随机数,返回0-1之间的小数

16、now()、curdate()、str_to_date()、date_format()、datediff

#日期函数
#now 返回当前系统日期+时间
SELECT NOW();
#curdate 返回当前系统日期,不带时间
SELECT CURDATE();
#curtime 返回当前系统时间,不带日期
SELECT curtime();
#可以指定显示:年、月、日、小时、分钟、秒(year、month、day、hour、minute、second)
SELECT YEAR(NOW()) 年;
SELECT SECOND(NOW()) 秒;
#str_to_date:将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('9-9-2020','%d-%m-%Y') as 年月日;
#date_format:将日期转换成字符
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') as 年月日;
#datediff:返回两个日期相差的天数
select DATEDIFF('2020-01-02','2020-01-01');#返回:1

17、流程控制函数:if、case

#if(表达式1,表达式2,表达式3):1成立返回2,否则返回3
SELECT if(10<5,"对","错");
SELECT last_name,commission_pct,IF(commission_pct IS NULL,"没奖金,哈哈","有奖金,吃肉")FROM employees;
#case
SELECT salary 合同工资, department_id,
CASE department_idWHEN 30 THEN salary*1.1WHEN 40 THEN salary*1.2WHEN 50 THEN salary*1.3ELSE 0
END as 新工资
FROM employees;

18:聚合函数:sum、、max 、min 、count

特别注意:聚合函数都忽略null值,即:遇到null直接跳过;

#sum:求和、avg 平均值、max 最大值、min 最小值、count 计算个数
SELECT SUM(salary) from employees;
SELECT SUM(salary) 求和,avg(salary) 平均,MIN(salary) 最小,MAX(salary) 最大,COUNT(salary) 个数 FROM employees;
#注意:
#1.聚合函数中sum、avg一般用于处理数值型;max、min、count可以处理任何类型;
#2.NULL类型不参与聚合函数运算,即:在执行这几种方法时,null被忽略跳过;
#3.可以和关键字distinct搭配,实现去重的聚合
SELECT sum(DISTINCT salary),sum(salary) FROM employees; #可以看出加了distinct的要小很多
#count()函数最常用:下面两种均是统计表中所有行数:*或常量
SELECT COUNT(*) FROM employees;
SELECT COUNT(1) from employees;#在count()参数添加常量

MySQL数据库(二):常用SQL函数(处理不同类型数据转换场景)相关推荐

  1. 达梦数据库DM8常用SQL函数

    在DM_SQL中支持数值.字符.日期.转换等种类的函数来满足用户不同的需求. 通过查询V$ifun和V$ifun_arg可以得到数据库提供的所有的函数以及其对应的参数要求. select a.NAME ...

  2. MySQL数据库中常用SQL语句

    开发过程中我们经常会用到各种SQL语句,今天小编就来和大家分享一些简单的SQL语句的使用,便于大家对于项目的开发. 1.查询:查询本字段带文字的数据. select * from student  w ...

  3. mysql数据库 常用函数_《MySQL数据库》常用函数整理

    原标题:<MySQL数据库>常用函数整理 以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对 ...

  4. 第十三章:Sqlserver2019数据库之Transact-SQL 语法基础及常用 SQL 函数总结

    目录 一.Transact-SQL 语法基础 1.1 常量 1.2 变量 1.3 注释符.运算符与通配符 1.4 流程控制 二.SQL 函数 学前必备知识 第一章:SQL Server 数据库环境搭建 ...

  5. MySQL 中的常用日期函数

    MySQL 中的常用日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 ...

  6. 第二十三章 MySQL数据库 手册2 SQL语句

    第二十三章 MySQL数据库 手册2 SQL语句 实验二:用SQL语句,管理数据库 `危险命令,delete 后不加 where 条件代表删除所有数据 delete.` `更加危险的删除命令trunc ...

  7. 软件创新实验室:MySQL数据库与简单SQL语句使用

    文章目录 前言 简介 特点 SQL DDL:操作数据库.表 DML:增删改表中数据 DQL:查询表中的记录 后记 拓展 范式 第一范式 1NF 第二范式 2NF 第三范式 3NF B+树 节点结构 插 ...

  8. mysql数据库中常用的类型_MySQL数据库中常用字段类型

    MySQL数据库中常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:D ...

  9. IDEA连接MySQL数据库并执行SQL查询操作

    打开IDEA后,新建一个项目或者在已有项目上均可操作!!! 1 打开数据库页面 1.1 方式一 在主页面工具栏上找到View(视图)-Tool Windows(工具窗口)-Database(数据库), ...

最新文章

  1. PostgreSQL 数据访问 offset 的质变 case
  2. Dubbo——Dubbo协议整合Jackson序列化解决方案
  3. 简历石沉大海、面试被刷?拒绝你的HR小姐姐,可能只是个AI
  4. 管理学中的知名定律之阿尔巴德定理
  5. python下载显示文件丢失_Microsoft.PythonTools.resources.dll
  6. 机器学习顶刊文献_人工智能顶刊TPAMI2019最新《多模态机器学习综述》
  7. simple introduction to AUTOFS
  8. Codewars-Javascript训练手册:Date 对象
  9. 2026.静态分析工具pclint
  10. windows7 x86_64系统安装xampp后apache无法启动,端口冲突
  11. 输出一串小于100的随机数(rand())
  12. KernelShark Documentation
  13. 《原力计划【第二季】》第 8 周周榜揭晓!!!
  14. mt6765和骁龙665哪个好_华为都把骁龙850用在了自家的win10设备上了,麒麟还会远吗?...
  15. Java语言基础--枚举
  16. pip3 install tesserocr安装失败
  17. 自定义nagios监控mogilefs存储节点脚本
  18. PHP PDO(mysql) 封装类
  19. pandas求协方差、相关系数、显著性检验
  20. 【日常】解决问题:SSR1080端口被占用的问题

热门文章

  1. 新手学HTML 5移动开发——面向iOS和Android平台 完整pdf扫描版
  2. 利用pyecharts绘制微博粉丝地区分布图
  3. html带滚动条的文本框自动滚,Powerpoint中实现带滚动条文本框的技巧
  4. 联想电脑为什么合盖和按电源键不睡眠
  5. tiptop 编译运行_TIPTOP开发技术试题-答案
  6. java纸牌游戏程序报告_java--纸牌游戏自动出牌
  7. redis通过命令批量删除key
  8. jpsall查看集群jps状态sh脚本
  9. 【小程序】CF 逆战 CFHD活动助手一键领取小程序版
  10. 【HAL库】STM32CubeMX开发----STM32F407----ETH+LAN8720A+LWIP----ping通