mysql函数,concat,日期处理,分组

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mysql函数,concat,日期处理,分组

group by

user表中有两个a,一个b,一个c用户(name),年龄分别为5,6,7
select name,count(*)  from usr  group by name;
  name  count(*)
      a     2
      b     1
      c     1
group by 字段 with rollup (可以根据某字段排序然后计算其他字段的和,平均数等)
select name,count(age) as age from usr  group by name with rollup
  name   age
      a     10
      b     6
      c     7
      null  23(总和)
  我们可以使用coalesce来设置一个取代null的名称,coalesce
  coalesce(a,b,c):a为空则取b,b为空则取c,c为空则为null,a不为空则取a
  select coalesce(name,'总数'),count(age) as age from usr  group by name with rollup
  name   age
      a     10
      b     6
      c     7
     总数   23

连接查询

外联接:
  1->A左外连B无where条件取左表A所有
  2->A左外连B有where条件(B is null) 取A除去B的部分
  3->A右外连B无where条件取右表B所有
  4->A右外连B有where条件(A is null) 取B除去A的部分
内连接:
  1->取A和B共有的部分
full outer join:
  1->无where条件取A和B的所有(相当于左外连和右外连接的结合取量表所有)
  2->有where条件(A is null OR B is null)取A,B所有除去A,B共有的部分(相当于A,B内连接的取反)

REGEXP正则

用法:
  where 字段 regexp '^d'
操作符:
  ^   以什么开头
  $   以什么结尾
  xx    包含xx
  a|b|c  例如'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。

mysql事务

mysql事务主要用于处理操作量大,复杂度高的数据,在一个人员管理系统中想要删除一个人员,需要删除他的邮箱,基本资料等,这些数据的操作语句就构成了一个事务.

mysql索引

索引分为单列索引和多列索引

MYSQL索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度.

实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录

过多的滥用会降低更新表的速度,如对表进行insert,update,delete.因为更新表的时候,mysql不仅要保存数据,还要保存一下索引文件.

MYSQL函数

关于时间的函数:

//获取当前的日期和时间(2020-06-01 14:16:59)
now()
//获取当前的日期(2020-06-01)
curdate()
//获取当前的时间(14:16:59)
curtime()
//获取时间的指定片段(unix可以是day,hour等,xxx指的是时间的字段)
extract(unix from xxx)
//格式化指定时间为日期格式
 date(xxx)
 //格式换时间格式
 from_unixtime(xxx,'%y-%m-%d')
 //格式换时间格式
  date_format(xxx,'%y-%m-%d')
 //向日期添加指定的时间间隔  
date_add(date,interval expre type)
 //向日期减去指定的时间间隔
 date_sub(xxx,interval expr type)
 //获取两个时间之间的差的天数
 datediff(xxx,xxx)

字符串拼接

//注意如果一个参数为null,则返回null
concat()
//注意分隔符为null则返回null,函数会忽略分隔符后面的null值
concat_ws()分隔符可以是一个字符串也可以是一个参数
  select concat_ws(',','11','22','33')==>11,22,33
  select concat_ws(',','11','22',null)==>11,22
group_cancat()//默认为逗号分隔如需设置分隔符group_concat(字段 separator ';')
  mysql> select * from aa;
  +------+------+
  | id| name |
  +------+------+
  |1 | 10|
  |1 | 20|
  |1 | 20|
  |2 | 20|
  |3 | 200   |
  |3 | 500   |
  +------+------+
     select id group_concat(name order by name desc) from aa group by id
     +------+---------------------------------------+
  |1 | 20,20,10   |
  |2 | 20|
  |3 | 500,200|
  +------+---------------------------------------+  

复制repeat(字段,份数)

select repeat('ab',2);
+----------------+
| abab           |
+----------------+

字符串截取substring()

1:从左开始截取字符串
  left(截取的字段,截取的长度)
2:从右开始截取字符串
  right(截取的字段,截取的长度)
3:截取字符串
  substring(截取字段,从第几位开始,截取的长度)
4:按关键字截取字符串//注意如果出现得第几位为负数则从后面数
  substring_index(截取字段,关键字,关键字出现的第几位)
    +----------------+
  | abab           |
  +----------------+
    substring_index(字段,b,1)==>a
    substring_index(字段,b,2)==>aba
    substring_index(字段,b,3)==>abab
    substring_index(字段,b,-2)==>ab

数学函数

所有的数学函数在发生错误的情况下都返回null

ABS(x):返回x的绝对值
SIGN(x):返回参数是正数负数还是0;正数返回1,负数返回-1,0返回0
MOD(N,M)取模
FLOOR(x):返回不大于x的整数值
CEILING(x):返回不小于x的整数值
ROUND(X,D):将参数x四舍五入到最近的整数
DIV():整除
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
17天前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
|
21天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
19天前
|
关系型数据库 MySQL
Mysql 中日期比较大小的方法有哪些?
在 MySQL 中,可以通过多种方法比较日期的大小,包括使用比较运算符、NOW() 函数、DATEDIFF 函数和 DATE 函数。这些方法可以帮助你筛选出特定日期范围内的记录,确保日期格式一致以避免错误。
|
1月前
|
存储 自然语言处理 关系型数据库
mysql 8.0 日期维度表生成(可运行)
mysql 8.0 日期维度表生成(可运行)
47 2
|
21天前
|
SQL NoSQL 关系型数据库
|
1月前
|
关系型数据库 MySQL 数据库
mysql中tonumber函数使用要注意什么
在处理这类转换操作时,考虑周全,利用提供的高性能云服务器资源,可以进一步提升数据库处理效率,确保数据操作的稳定性和安全性,尤其是在处理大量数据转换和运算密集型应用时。
92 0
|
1月前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
41 0
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
13天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
19天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
91 1
下一篇
无影云桌面