常用命令

● alter add

alter table add <table_name> add <column_name> <data_type>

[约束类型] [first | after 已经存在的字段名]

● rename

alter table <旧表名> rename [to] <新表明>;

● mysqldump

mysqldump -uroot -hlocalhost -P3306 -p123456 dbname [table_name,[table_name]] > filename.sql

操作符优先等级

INTERVAL

BINARY COLLATE

!

  • (unary minus), ~ (unary bit inversion)

^

  • , / , DIV , % , MOD

-, +

<< , >>

&

|

= (comparsion) , <=>,>=,>,<=,<,<>,!=,is,like,regexp ,in

between ,case , when ,then, else

not

and ,&&

xor

or , ||

= (assignment) , :=

如果想改变优先级执行顺序,则可以使用括号

对比操作符的执行结果为True,false,null

interval() # 代表返回比第一个参数小的参数位置

least() # 代表返回最小的参数

greatest() # 返回最大的值

strcmp() # 对比两个字符串

逻辑操作符,返回1(true),0(false),null

and , &&

not , !

||, or

xor

分配操作符

name description

= assign a value (as part of a set statement,or as part of the set clause in an update statement),其他情况下皆认为是对比操作符

:= assign a value

流程控制函数

name description

case case operator

if() if/else construct

ifnull() null if /else construct

nullif() return null if expr1 = expr2

case语句的用法

case value

when [compare_value] then result

[when [compare_value] then result...] [else result]

end

if的用法

if(expr1,expr2,expr3) # 当expr1为1/true,则返回expr2,否则返回expr3

ifnull的用法

ifnull(expr1,expr2) # 当expr1为null时,返回expr2,否则返回expr1

nullif的用法

nullif(expr1,expr2) # 当expr1等于expr2时,则返回null,否则返回expr1

字符串函数

ascii(str) # 返回字符串中最左边字符的ascii码值,如果是空字符串,则返回0,如果是str是null则返回null

char(N ,...[using charset_name]) # 将括号中的N转化为ASCII对饮的字符,返回这些字符组成的自负床,其中null会被忽略

char_length(str) # 返回字符串的字符长度

concat(str1,str2,...) # 返回括号里所有自负串连接在一起,当其中有null时,则返回null

concat_ws(separator,str1,str2,...) # 返回以第一个参数为分隔符的连接后的一个字符串,当有参数为null时,则null被忽略

GROUP_CONCAT(DISTINCT expression

ORDER BY expression

SEPARATOR sep); # 将分组后的数据按照指定的字符将其进行

insert(str,pos,len,newstr) # 将字符串中从pos位置开始后的len个字符替换成为newstr

instr(str,substr) # 返回字符串中第一个出现substr字符串的位置,如果没有则返回0

left(str,len) # 返回str中从左边开始的len个长度的字符

length(str) # 返回str的字节byte字节长度

load_file(file_name) # 读取文件且返回文件内容为字符串

locate(substr,str) # 返回str中第一次出现substr字符串的位置,如果没有则返回null

locate(substr,str,pos) # 返回str字符串中从pos位置开始第一次出现substr字符串中的位置,如果没有则返回null

lpad(str,len,padstr) # 将str的左边补充为padstr,直到补充成len长度的字符串并返回,如果str的长度比len长,则返回str中最左边开始到len长度的字符

ltrim(str) # 将str左边的空白字符去掉并返回

repeat(str,count) # 将str重复count并组成字符串返回,如果count<1,则返回空串

replace(str,from_str,to_str) # 将所有str中的from_str替换为to_str

reverse(str) # 将str中的字符按照倒序组合并返回

right(str,len)

rpad(str,len,padstr) # 与lpad相反操作

rtrim(str)

space(n) # 返回n个长度的空格组成的空字符串

SUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str FROM pos FOR len)

SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)

如果没有len参数,则返回从pos位置开始的str中的子字符串;如果有len参数,则从pos位置开始返回str中长度为len的子字符串;如果pos为负值,则代表pos从右边开始数

SUBSTRING_INDEX(str,delim,count) # 当count为正数,则返回delim出现在str字符串中第count次之前的子字符串,如果是负数,则从右边开始计算

拆分字符串 split,想法,将值按substring_index进行切分,由于参数限制,需要对substring_index的函数进行二次拆分,先正数,后负数即可得到中间值,此过程需要一个自增的字段值,需要通过mysql.help_topic这个表来进行帮助

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(f.split_test, ',', help_topic_id + 1), ',', -1)

FROM (SELECT '2022-02,2022-03,2022-04,2022-05' as split_test ) as f

JOIN mysql.help_topic

ON help_topic_id < LENGTH(f.split_test) - LENGTH(REPLACE(f.split_test, ',' , '')) + 1

数字函数

abs(x) # 返回绝对值

CEILING(X)/CEIL(X) # 返回>=x最小整数

floor(x) # 返回<=x值的最大整数

MOD(N,M), N % M, N MOD M # 取余数操作,返回两者相除之后剩下的余数

RAND([N]) # 获取0到1之间的随机小数,比如当想获取7~12之间的随机整数是可以使用SELECT FLOOR(7 + (RAND() * 5))

ROUND(X), ROUND(X,D) # 四舍五入为D位个小数,当D参数不存在是,则默认为0

TRUNCATE(X,D) # 数字X只保留D位的小数,其余均舍弃

日期和时间函数

ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days) # 当expr为正数时则为增加时间,为负数时则为减少时间,Unit参数可以是任意时间单位

ADDTIME(expr1,expr2) # 将expr2的时间增加到expr1上

CONVERT_TZ(dt,from_tz,to_tz) # 将时间dt从from_tz这个时区转换成to_tz这个时区并返回

CURDATE(), CURRENT_DATE, CURRENT_DATE() # 返回以yyyy-mm-dd或者yyyymmdd格式的当前时间

CURTIME(),CURRENT_TIME,CURRENT_TIME() # 按照hh:mm:ss或者hhmmss格式返回当前时间

Now(), CURRENT_TIMESTAMP,CURRENT_TIMESTAMP() # 返回当前的日期和时间,格式为yyyy-mm-dd hh:mi:ss或者

DATE(expr) # 获取expr中的日期, SELECT DATE('2003-12-31 01:02:03'); 返回 '2003-12-31‘

DATEDIFF(expr1,expr2) # 返回expr1和expr2之间的天数差异,忽略时分秒

DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit) # 增加或者减少时间

DATE_FORMAT(date,format) # 将date日期时间转换成format格式

DAY(date), DAYOFMONTH(date) # 返回date中日期在当前月份中是第几天

DAYNAME(date) # 返回date时间是星期几

DAYOFWEEK(date) # 返回date时间是星期“几”

DAYOFYEAR(date) # 返回date是一年中的第几天,取值范围在1~366

EXTRACT(unit FROM date) # Unit单元和date_add/date_sub函数中的一样,是获取date日期的unit部分

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format) # 根据给定的unixtime,返回yyyy-mm-ddhh:mi:ss或者yyyymmddhhmiss格式的具体时间,或者按照format返回时间

LAST_DAY(date) # 返回date日期所在月份的最后一天日期

SYSDATE() # 返回当前日期和时间,格式为yyyy-mm-ddhh:mi:ss或者yyyymmddhhmiss,和now()函数的区别在于now()返回的时间是语句执行的时间,而sysdate()返回的时间是该函数执行的时间

TIME(expr) # 返回expr日期时间中的时间部分

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) # 如果没有date参数,则返回当前时间到1970-01-01 00:00:00之间的秒数,如果有date参数,则表示date到1970-01-01 00:00:00之间的秒数

STR_TO_DATE(STR,format) ,STR_TO_DATE()根据fmt格式字符串将str字符串转换为日期值

格式转换函数

Cast()和convert()两个函数都可以用来转换数据类型或者转换字符集

允许转换的数据类型包括:

•Binary[N]

•char[N]

•Date

•Datetime

•decimal[M,[D]]

•Time

•Signed [integer]

•Unsigned [integer]

SELECT CONVERT(_latin1'Müller' USING utf8);

SELECT CONVERT('test', CHAR CHARACTER SET utf8);

SELECT CAST('test' AS CHAR CHARACTER SET utf8);

select CAST('2000-01-01' AS DATE);

select CONVERT('2000-01-01', DATE);

聚合函数

AVG([DISTINCT] expr) # 计算expr的平均值,distinct关键词表示是否排除重复值

COUNT(expr) # 计算expr中的个数,如果没有匹配则返回0,注意NULL的区别

COUNT(DISTINCT expr,[expr...]) # 计算有多少个不重复的expr值,注意是计算非NULL的个数

MAX([DISTINCT] expr),MIN([DISTINCT] expr) # 返回expr中最大或者最小的值

SUM([DISTINCT] expr) # 返回expr的求和值

3.MySQL常用函数的更多相关文章

  1. mysql常用函数参考

    mysql常用函数参考   对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...

  2. 第十章 MySQL 常用函数

    第十章 MySQL 常用函数 第一节:日期和时间函数 1,CURDATE() 返回当前日期:2,CURTIME() 返回当前时间:3,MONTH(d) 返回日期 d 中的月份值,范围是 1~12 第二 ...

  3. 【数据库】MySql常用函数梳理

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5866388.html MySql常用函数梳理: 1:数学函数 使用格式:一般用于插入.修改语句中,直接 函数( ...

  4. 学生选课数据库SQL语句45道练习题整理及mysql常用函数(20161019)

    学生选课数据库SQL语句45道练习题: 一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四 ...

  5. MySQL常用函数介绍

    MySQL常用函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作符介绍 1>.操作符优先级 mysql; +----------+ | +----------+ ...

  6. MySql常用函数大全

    MySql常用函数大全 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操 ...

  7. MySQL 常用函数介绍

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  8. Mysql 常用函数(1)- 常用函数汇总

    Mysql常用函数的汇总,可看下面系列文章 Mysql常用函数有哪几类 数值型函数 字符串型函数 日期时间函数 聚合函数 流程控制函数 数值型函数 函数名称 作用 ABS 求绝对值 SQRT 求二次方 ...

  9. Mysql 常用函数(4)- case 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html case 的作用 if 的高级版,类似Java 里 ...

  10. Mysql 常用函数(15)- upper 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html upper 的作用 将所有字符串更改为大写,然后返 ...

随机推荐

  1. Kubernetes Deployment控制器(二十)

    前面我们学习了 ReplicaSet 控制器,了解到该控制器是用来维护集群中运行的 Pod 数量的,但是往往在实际操作的时候,我们反而不会去直接使用 RS,而是会使用更上层的控制器,比如我们今天要学习 ...

  2. YAML 文件基本语法格式(十四)

    一.YAML 文件基本语法格式 前面我们得 Kubernetes 集群已经搭建成功了,现在我们就可以在集群里面来跑我们的应用了.要在集群里面运行我们自己的应用,首先我们需要知道几个概念. 第一个当然就 ...

  3. 如何安装eNSP

    如何安装eNSP? eNSP是需要三个插件进行辅助的,所以先下三个插件,最后在下eNSP 首先来看看Wireshark的安装 很简单,基本上就直接下一步就行 这里直接下一步 这里要注意,这些要么安装在 ...

  4. 写代码被大语言模型坑之使用LocalDateTime比较两个时间差了几天

    自从去年ChatGPT3.5发布后使用了几次,现在写代码基本上离不开它和它的衍生产品们了.一方面查资料很方便,快速提炼要点总结:另一方面想写什么样的代码一问就能生成出来,功能大差不差,稍微改改就能用, ...

  5. 生成文本聚类java实现3

    由于carrot2对中文的理解很不靠谱,所以参考了网络上的一些资料,现在贡献出来所有代码. 代码的思路就是找字或者词出现的频度,并进行打分,最后按照出现次数和重要性,找出重要的语汇.现在贴出来一些可用 ...

  6. SpringBoot学习 _02 _配置单数据源(1)

    SpringBoot学习 _02 _配置单数据源(1) 1.通过IDEA创建SpringBoot项目 直接到选择依赖这一步,选择如图所示的 五个依赖即可 2.配置文件的编写 此处说明一下,这个数据库连 ...

  7. AI Undetect是什么?

    标题:AI UNDETECT:超越AI检测的反检测神器 在数字时代,人工智能的飞速发展已经渗透到我们生活的各个领域,包括教育.科技.网络内容制作等.越来越多的人依赖AI来生成各种内容,从学术作业.论文 ...

  8. 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现四

    一.前言介绍: 1.1 项目摘要 随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势.传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速.便捷需求.这些问题不 ...

  9. Linux环境下非GUI制作图形界面方法

    Linux环境下非GUI制作图形界面方法 如题,即就是仅仅使用ANSI转义字符实现Linux环境的页面效果,如字体颜色.背景颜色.高亮.固定位置光标.将光标放到指定位置.隐藏字符串等等. 具体实现方法 ...

  10. Jmeter并发线程场景下共享变量错乱问题解决

    问题复现 问题描述 使用IF控制器获取前一个请求的后置脚本中设置的全局变量->并发线程下通过vars.get获取变量时,第一个线程和第二个线程获取的变量值一样->导致不同基础数据的请求入参 ...