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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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():整除
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
关系型数据库 MySQL Unix
MySQL中日期和时间函数的使用指南
使用这些函数可以有效地处理和分析日期和时间数据,对于数据库管理、报表生成和数据分析非常关键。在实际应用中,根据具体需求选择适当的函数进行数据处理,可以极大地提高数据处理的效率和准确性。
232 17
|
4月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
505 10
|
5月前
|
存储 SQL 人工智能
MySQL 数据类型详解:字符串、数字、日期
在 MySQL 数据库设计中,选择合适的数据类型对存储效率和查询性能至关重要。本文详细介绍了字符串、数字和日期三大类数据类型及其子类型,帮助开发者根据业务需求做出更优选择。内容涵盖 CHAR 与 VARCHAR 的区别、TEXT 和 BLOB 的使用场景、整数与浮点类型的适用范围,以及日期时间类型的特性。通过最佳实践建议,提升数据库性能并避免常见问题。
308 4
|
4月前
|
存储 关系型数据库 MySQL
MySQL中实施排序(sorting)及分组(grouping)操作的技巧。
使用这些技巧时,需要根据实际的数据量、表的设计和服务器性能等因素来确定最合适的做法。通过反复测试和优化,可以得到最佳的查询性能。
322 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL 常用函数
我们这次全面梳理 MySQL 中的常用函数,涵盖 聚合函数、字符串函数、日期时间函数、数学函数 和 控制流函数 等五大类。每类函数均配有语法说明与实用示例,帮助读者提升数据处理能力,如统计分析、文本处理、日期计算、条件判断等。文章结尾提供了丰富的实战练习,帮助读者巩固和应用函数技巧,是进阶 SQL 编程与数据分析的实用工具手册。
541 2
|
7月前
|
关系型数据库 MySQL 定位技术
MySQL与Clickhouse数据库:探讨日期和时间的加法运算。
这一次的冒险就到这儿,期待你的再次加入,我们一起在数据库的世界中找寻下一个宝藏。
351 9
|
9月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
|
9月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
|
11月前
|
SQL 关系型数据库 MySQL
Mysql-常用函数及其用法总结
以上列举了MySQL中一些常用的函数及其用法。这些函数在日常的数据库操作中非常实用,能够简化数据查询和处理过程,提高开发效率。掌握这些函数的使用方法,可以更高效地处理和分析数据。
307 19
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
169 3

推荐镜像

更多