DQL语言之常见函数(mysql)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: DQL语言之常见函数(mysql)
概念:将一组逻辑语句封装在方法体中,对外暴露方法名
好处:1、隐藏了实现细节 2、提高了代码的重用性
调用: select 函数名(实参列表) 【from 表】;
特点:
  a)叫什么(函数名)
  b)干什么(函数功能)
分类:
  a)单行函数
  eg: concat、length、ifnull等
  
    字符函数:
      length、
      concat、
      trim、
      substr、
      instr、
      upper、
      lower、
      lpad、
      rpad、
      replace
    数学函数:
      round、
      ceil、
      floor、
      truncate、
      mod
    日期函数:
      now、
      curdate、
      curtime、
      year、
      month、
      monthtime、
      day、
      hour、
      minute、
      second、
      str_to_date
      date_format
      datediff
    其他函数:
      version、
      database、
      user
    控制函数:
      if、
      case  
  
  b)分组函数
  
  功能: 做统计使用,又称为统计函数、聚合函数、组函数
#1、字符函数
#a) length 获取参数值的字节个数 
SELECT LENGTH('john');
SELECT LENGTH('张三丰hahaha');  
##utf8下 一个汉字占3个字节
#b) concat 拼接字符串
SELECT CONCAT(credit,'_',teacher) FROM course;
#c) upper lower
SELECT LOWER('John');
#d) substr 、 substring
##注意:索引从1开始
##截取从指定索引处后面所有字符
SELECT SUBSTR('love',2) 结果;
##截取从指定索引处指定字符长度的字符(第二个参数指定截取长度)
SELECT SUBSTR('love',2,1);
#e) instr
#返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('loove','o');
#f) trim
SELECT LENGTH(TRIM('   hahaha  '));
SELECT TRIM('a' FROM 'hahaha ');
SELECT TRIM('a' FROM 'hahaha');
#g) lpad 用指定的字符实现左填充的指定长度
SELECT LPAD('love',10,'*');
#h) rpad 用指定的字符实现右填充的指定长度
SELECT RPAD('love',10,'you');
SELECT RPAD('love',2,'you');
#i) replace 替换
SELECT REPLACE('lovl','l','h');
#2)数学函数
#a) round 四舍五入
SELECT ROUND(-1.65);
 
SELECT ROUND(1.567,2);
#b) ceil 向上取整,返回>=该参数的最小整数
SELECT CEIL(-1.2);
#c) floor 向下取整,返回<=该参数的最大整数
SELECT FLOOR(-1.23);
#d) truncate 截断
SELECT TRUNCATE(1.65,1);
#e) mod 取余
#mod(a,b) : a-a/b*b;
#注意:结果为正还是为负,只与第一个参数有关
SELECT MOD(10,-3);
#3)日期函数
#a) now 返回当前系统日期+时间
SELECT NOW();
#b) curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
#c) curtime 返回当前时间,不包含日期
SELECT CURTIME();
#d) 可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW());
SELECT YEAR('1999-12-16');
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());  #月份英文表示
#e) str_to_date: 将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('1-19 2020','%m-%d %Y');
#f) date_format:将日期转换成字符
SELECT DATE_FORMAT('1998-2-5','%Y年%m月%d日');
#g) datediff 计算两个日期相差的天数
SELECT DATEDIFF(NOW(),'2000-12-16');
#4、其他函数
SELECT VERSION();
SELECT DATABASE();
SELECT USER();
#5、流程控制函数
#a) if函数 : if else 的效果
SELECT IF(10<5,'大','小');
#b) case 函数的使用一: switch case的效果
  case 要判断的字段或表达式
  when 常量1 then 要显示的语句1; (如果是语句的话后面要加分号)
  when 常量2 then 要显示的值2
  ...
  else 要显示的值n或语句n
  end
#c) case 函数的使用二: 类似于多重if
  case
  when 条件1 then 要显示的值1或语句1;
  when 条件2 then 要显示的值2或语句2;
  ...
  else 要显示的值n或语句n;
  end
#二、分组函数
分类:
sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数
特点:
  1、sum、avg 一般用于处理数值型
     max、min、count 可以处理任何类型
  2、以上分组函数都忽略null值
  3、可以和 distinct  搭配实现去重的运算
  4、count 函数的单独介绍
    一般使用count(*)用作统计行数
  5、和分组函数一同查询的字段有限制:要求是 group by 后的字段
#和 distinct 搭配
SELECT SUM(DISTINCT credit),SUM(credit) FROM course;
SELECT COUNT(DISTINCT credit),COUNT(credit) FROM course;
# count 函数的详细介绍
##统计行数
SELECT COUNT(*) FROM course; 
SELECT COUNT(1) FROM course;
效率:
MYISAM 存储引擎下, COUNT(*) 的效率高
INNODB 存储引擎下, COUNT(1)和 COUNT(*)的效率差不多,比 COUNT(字段)要高一些

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL 数据库
【MySQL】内置函数 -- 详解
【MySQL】内置函数 -- 详解
|
6天前
|
存储 SQL 关系型数据库
【MySQL进阶之路 | 基础篇】存储函数
【MySQL进阶之路 | 基础篇】存储函数
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】MySQL函数之单行函数
【MySQL进阶之路 | 基础篇】MySQL函数之单行函数
|
9天前
|
SQL 关系型数据库 MySQL
RDS for MySQL的DDL、DML和DQL
这篇文章介绍了MySQL中处理数据的几种主要操作:DDL(Data Definition Language),DML(Data Manipulation Language)和DQL(Data Query Language)。首先讲解了如何使用CREATE DATABASE, ALTER DATABASE和DROP DATABASE语句来创建、修改和删除数据库。
19 1
|
14天前
|
SQL 关系型数据库 MySQL
DQL操作MySql
DQL操作MySql
18 0
|
14天前
|
SQL 关系型数据库 MySQL
MySQL第三战:CRUD,函数1以及union&union all
MySQL第三战:CRUD,函数1以及union&union all
|
14天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
110 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
14天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
14天前
|
关系型数据库 MySQL 数据库
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
|
14天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)