4. 常见函数

一、字符函数

  1. 概念

    • 类似于Java的方法,将一组逻辑语句封装在方法中,对外暴露方法名
  2. 优点

    • 隐藏了实现细节
    • 提高代码的重用性
  3. 调用

    • select 函数名(实参列表) 【 from 表】;
  4. 特点

    • 叫什么(函数名)
    • 干什么(函数功能)
  5. 分类

    • 单行函数(如 concat、length、ifnull)
    • 分组函数(功能:做统计使用,又称为统计函数、聚合函数、组函数)
  6. concat拼接字符串【utf8中汉字占三个字符】

    • select concat (last_name,’-‘,first_name) as 姓名 from student;
  7. upper、lower大小写

    • select upper(‘tom’);

    • select lower(‘tom’);

    • 实例:将姓变大写,名变小写,然后拼接

      select concat(upper(last_name),’-’,lower(first_name)) as 姓名 from student;

  8. substr、sbustring【索引从1开始】

    • 截取从指定索引处后方所有字符

      SELECT SUBSTR(‘iPhone13ProMax’,7) AS output (13ProMax)

    • 截取从指定索引处指定字符长度的字符

      SELECT SUBSTR(‘iPhone13ProMax’,7,2) AS output (13)

    • 姓名中首字符大写,其他字符小写,然后用_拼接,显示出来

      SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),’-’,LOWER(SUBSTR(last_name,2))) AS output from student;

  9. instr 返回字符串第一次出现的索引

    • SELECT INSTR(‘iPhone13ProMax’,‘iPhone’) AS output 结果:1
  10. trim【除去字段两边内容默认去除空格】

    • SELECT TRIM(‘ 何浩祥 ’) AS out_put结果:何浩祥
    • SELECT TRIM (‘aa’ from ‘aaaaa何aaa浩祥aaaa’) AS out_put 结果:何aaa浩祥
  11. LPAD用指定的字符实现左填充指定长度

    • SELECT LPAD (‘何浩祥’,10,’6’) AS out_put; 结果:6666666何浩祥
  12. RPAD用指定的字符实现右填充指定长度

    • SELECT RPAD (‘何浩祥’,10,’!’) AS out_put; 结果:何浩祥!!!!!!!
  13. replace 替换

    • SELECT REPLACE(‘何浩祥牛逼何浩祥牛逼’,’牛逼’,’厉害’) AS HHXNB;

二、数字函数

  1. round四舍五入

    • SELECT ROUND(1.56) 2
    • SELECT ROUND(1.527,2) 1.53
  2. ceil 向上取整,返回>=该参数的最小整数

    • SELECT CEIL(1.001) 2
  3. floor 向下取整,返回<=该参数的最大整数

    • SELECT FLOOR(-9.99) -10
  4. truncate 【截断】

    • SELECT TRUNCATE(1.6999,1) 1
  5. mod 取余

    • mod(a,b): a-a/b*b
    • SELECT MOD(10,3); 1

三、日期函数

  1. SELECT NOW(); 返回系统当前日期

  2. SELECT CURDATE(); 返回当前系统日期,不包含时间

  3. SELECT CURTIME(); 返回当前时间不包含日期

  4. 指定部分,年、月、日、时分秒

    • SELECT YEAR(‘2000-11-13’) AS 年;
    • SELECT MONTH(NOW()) AS 月;
    • SELECT MONTHNAME(NOW()) AS 月; 月份的英文
  5. STR_TO_DATE将字符通过指定格式转换日期

    • 查询入学时间为2008-12-11的学生信息

      SELECT * FROM student WHERE inschool=‘2008-12-11’;

      SELECT * FROM student WHERE inschool=STR_TO_DATE(‘12-11 2008’,’%c-%d %Y);

  6. DATE_FORMAT 将日期转换为字符

    • SELECT DATE_FORMAT(NOW(),’%y年%m月%d日’) AS out_put;
  7. DATEDIFF,两个时间相差的天数

    SELECT DATEDIFF(NOW(),’2000-11-13’);

四、 其他函数

  • SELECT VERSION (); 版本号

  • SELECT DATABASE(); 当前数据库

  • SELECT USER(); 当前用户

五、流程控制函数

  1. if 函数:if else的效果

    • SELECT IF(10>5,’大’,’小’);

    • 查询学生信息,是否获得奖状

      SELECT name,awards,IF(awards IS NULL ‘没奖状 呵呵’,’有奖状哈哈 ’) AS 备注 FROM student;

  2. case函数的使用

    1. switch case

      • case 要判断的字段或表达式

        when 常量1 then 要显示的值1或语句1

        when 常量2 then 要显示的值2或语句2

        。。。

        else 要显示的值n或语句n

        end

      • 案例查询学生的英语成绩

        一班的显示成绩为成绩的1.3倍

        二班的显示成绩为成绩的1.2倍

        三班的显示成绩为成绩的1.1倍

        其他班显示原始成绩

        SELECT Englis AS 原始成绩,class

        case class

        when ‘一班’ then English*1.3

        when ‘二班’ then English*1.2

        when ‘三班’ then English*1.1

        else English

        end as 附加成绩

        from student

    2. 多重if

      • case

        when 条件1 then 要显示的值1或者语句1

        when 条件2 then 要显示的值2或者语句2

        。。。

        else 要显示的语句n

        end

      • 案例如果英语成绩大于90,显示级别为A

        案例如果英语成绩大于80,显示级别为B

        案例如果英语成绩大于60,显示级别为C

        其他情况显示D

        SELECT English

        case

        when English>90 then ‘A’

        when English>80 then ‘B’

        when English>60 then ‘C’

        ELSE ‘D’

        END AS 成绩级别

        FROM student

六、分组函数

  1. 功能:用作统计使用,又称为聚合函数或统计函数或者组函数

  2. 分类:sum求和、avg 平均值、max最大值、min最小值、count计算非空个数

  3. 简单使用:

    • SELECT SUM(English) FROM student;

    • SELECT AVG(English) FROM student;

    • SELECT MAX(English) FROM student;

    • SELECT MIN(English) FROM student;

    • SELECT COUNT(English) FROM student;

    • SELECT SUM(English) 和,AVG(English) 平均值,MAX(English) 最大值,MIN(English) 最小值,COUNT(English) 个数

      FROM student

    • SELECT SUM(English) 和,ROUND(AVG(English) ,2) 平均值,MAX(English) 最大值,MIN(English) 最小值,COUNT(English) 个数

      FROM student

  4. 特点

    • sum、avg一般用于处理数值型,max、min可以处理任何数据类型

    • 以上分组函数都忽略null值

    • 可以和distinct搭配去实现去重

      SELECT SUM(DISTINCT English),SUM(English) FROM student;

    • conut函数的详细介绍

      统计所有行数

      SELECT COUNT(*) FROM student;

      SELECT COUNT(1) FROM student;

    • 和分组函数一同查询的字段要求是group by后的字段

12.MYSQL基础-常见函数的更多相关文章

  1. 12. Mysql基础入门

    课程大纲 • 数据库概述 • MySQL基本操作 • MySQL索引基础 • MySQL高级特性

  2. (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)

    (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...

  3. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  4. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  5. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  6. mysql基础面试

    php面试题之五--MySQL数据库(基础部分) 五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($qu ...

  7. MySQL基础操作命令

    MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...

  8. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  9. mysql基础之基本数据类型

    原文:mysql基础之基本数据类型 列类型学习 mysql三大列类型 整型 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill ...

随机推荐

  1. node+express+mysql 实现登陆注册

    基于 node.express.mysql 实现的登录注册. 1.`首先在终端中 安装 node .` 2.`通过npm install express -g 命令全局安装 express`. 3.` ...

  2. SSM框架整合(Spring、SpringMVC、Mybatis)

    #毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...

  3. 告别收费BI!如何自己动手做一个免费的可视化数据报表还支持文档在线预览?

    本人大学刚毕业目前在一家互联网公司从事产品运营工作,一季度刚过,公司需要我出一份产品运营数据报表,由于产品用户数据.订单数据等数据量太大,我希望找一款Bi产品,支持我做出一个精美的可视化报表,还可以让 ...

  4. 2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS)

    2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS) 题意: 给一张n*n的图,起点为A,终点为 B,求从A到B转弯次数最少为多少. 分析: 是否存在 ...

  5. 2021.08.06 P4392 Sound静音问题(ST表)

    2021.08.06 P4392 Sound静音问题(ST表) [P4392 BOI2007]Sound 静音问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 序列a,求 ...

  6. docker进阶_dockerswarm

    DockerSwarm Docker Swarm简介 Docker Swarm的功能 ​ Docker Swarm包含两个方面:docker安全集群,以及一个微服务应用引擎 ​ 集群方面,swarm将 ...

  7. 微信小程序wx.login先执行onLaunch与onLoad加载顺序问题

    @ 目录 遇到问题 请求api返回需要先登录,实际上登录已成功 问题分析 解决问题 自定义回调函数 app.js index.js 扩展提问 学习交流 随机数字随机幸运数+ My Blog 技术交流 ...

  8. Linux-简-脚本集合

    编写脚本,求100以内所有正奇数之和 while加 if 判断 #!/bin/bash # # # sum=0 i=1 while (($i<=100));do sur=$[i%2] if [ ...

  9. 干货 | Keepalived高可用服务配置实例

    一个执着于技术的公众号 Keepalived系列导读 Keepalived入门学习 keepalived安装及配置文件详解 前言 在前面的章节中,我们学习了Keepalived简介.原理.以及Keep ...

  10. 十分钟快速了解《你不知道的 JavaScript》(上卷)

    最近刚刚看完了<你不知道的 JavaScript>上卷,对 JavaScript 有了更进一步的了解. <你不知道的 JavaScript>上卷由两部分组成,第一部分是< ...