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
相关文章
|
1天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
8 3
|
6天前
|
SQL 关系型数据库 MySQL
MySQL DDL DML DQL DCL 通用语法
MySQL DDL DML DQL DCL 通用语法
|
15天前
|
SQL 关系型数据库 MySQL
DQL语言之基础查询(mysql)
DQL语言之基础查询(mysql)
|
15天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
22天前
|
SQL 关系型数据库 MySQL
mysql多表查询、函数查询
mysql多表查询、函数查询
|
7天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
11天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
36 4
|
1天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
4天前
|
监控 关系型数据库 MySQL
|
5天前
|
关系型数据库 MySQL 数据安全/隐私保护
安装mysql和远程连接
安装mysql和远程连接
28 0