精华内容
下载资源
问答
  • 常用函数有哪四个
    千次阅读
    2022-03-26 09:56:23

    第一部分 MYSQL中常用的函数

    (PS:总结的有点潦草,适合有一定基础的总结性学习)

    一、排序函数

    RANK():1,1,3 在计算排序时,若存在相同的位次,会跳过之后的位次

    DENSE_RANK():1,1,2 在计算排序时,若存在相同的位次,不会跳过之后的位次

    ROW_NUMBER():1,2,3 这个函数赋予唯一的连续位次

    二、日期函数

    DATEDIFF(data1,date2):date1-date2

    DATE_FORMAT(date,format):日期格式转换

    TIMESTAMPDIFF(second/minute/hour/day/week/month,date1,date2):date2-date1

    DATE_ADD(curdate(),interval 1 day):返回当前日期增加1天后的日期

    DATE_SUB(curdate(),interval 1 day):返回当前日期减少1天的日期

    YEAR(date1)、MONTH(date1) 、DAY(date1):返回年、月、日 。例如:DAY(‘2021-08-02’):返回的是2

    LAST_DAY(date1):返回当月的最后一天 。例如:LAST_DAY(‘2021-08-02 11:41:01’) 返回:2021-08-31

    [小tips:DAY(LAST_DATE(date1))返回这个月的天数]

    三、字符串函数

    ——转换

    Lcase(str):将字符串str的所有字母变成小写字母

    Ucase(str):将字符串str的所有字母变成大写字母

    ——计算长度

    Length(str):计算str的长度

    Char_length():计算字符串的长度

    ——位置

    Locate(substr,str):返回子串substr在字符串中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;

    POSITION(substr IN str):返回子串substr在字符串str中第一次出现的位置,如果字符substr在字符串中不存在,与locate函数作用一样。

    ——截取

    Right(s,n):返回字符串s的后n个字符

    Left(s,n):返回字符串s的前n个字符

    Mid(s,n,len):返回从字符串s的n位置截取的长度为len的子字符串,同substring(s,n,len)

    Substring_index(str,n,m):返回字符串str从第n个字符截取到第m个字符

    Substring_index(str,separator,count),截取count个分隔符之前的字符串,如果count为正,则从左边开始截取,如果count为负,则从右边开始截取

    Replace(str,n,m):将字符串str中的第n个字符替换成m字符

    Replace(s,s1,s2):替换函数,用s2替换s中的s1

    ——连接

    group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator '分隔符'])  这个函数必须和group by语句一起使用,将goup by产生的一个分组中的值连接起来,返回一个字符串结果

    CONCAT_WS(’分隔符‘,str1,str2) 第一个参数为分隔符,相比于concat函数可以一次性指定分隔符

    CONCAT(str1,str2,...) :将多个字符串连接成一个字符串

    ——去除空格

    Rtrim():去除字符串右端空格

    Ltrim():去除字符串左端空格

    Trim():去除字符串两端空格

    ——匹配

    Like 完全匹配

    Rlike 不完全匹配,只要字段中的值存在要查找的部分,就会被选择出来

    Regexp 不完全匹配

    . 匹配任意单个字符 

    * 匹配0个或者多个前一个得到的字符

    [] 匹配任意一个[]内的字符

    ^ 匹配开头

    $ 匹配结尾

    {n} 匹配前一个字符反复n次

    [^abc] [!abd] 不包含括号中的字符

    a|b|c 匹配a或者b或者c

    四、分析函数

    LEAD(x)、LAG(x):分别返回传入的列x对于当前行的 下一行/前一行 的值

    LEAD(x,y)、LAG(x,y):分别返回传入的列x对于当前的 后y行/前y行 的值

    First_Value(x)、Last_value(x):分别返回列x的 第一个值/最后一个值

    Nth_value(x,n):返回x列的第n个值

    注意:last_value nth_value 通常需要把window frame 修改成 rows between unbounded preceding and unbounded following

    五、其他函数

     Ceil(x):返回大于或者等于x的最小整数

    Floor(x):返回小于或者等于x的最大整数

    CAST(expression AS date_type)将一种数据类型显示转换成另一种数据类型,可转换的数据类型为:二进制binary、字符型char、日期date、时间time、日期和时间datetime、浮点数decimal、整数signed、无符号整数unsigned。在创建表格的时候,

    SELECT * FROM 表名 LIMIT 3,1;          #从第4条数据开始取数,取1条数据,即只取第四条
    SELECT * FROM 表名 LIMIT 1 OFFSET 3;   #从第4条数据开始取数,取1条数据,即只取第四条
    SELECT * FROM 表名 LIMIT 3,2;          #从第4条数据开始取数,取2条数据,即取第4条,第5条
    SELECT * FROM 表名 LIMIT 2 OFFSET 3;   #从第4条数据开始取数,取2条数据,即取第4条,第5条

    LIMIT1 OFFSET2:从第3条数据开始取数,返回1条记录,类似于LIMIT 2,1

    LIMIT1,3  :分页,从第2条记录开始,返回3条记录,类似于LIMIT 3 OFFSET 1

    IF(true,a,b):IF 函数,如果为真,则返回a,否则,返回b

    IFNULL(expression1,expression2): 如果expression1不为null,则返回expression1,否则返回expression2

    更多相关内容
  • 今天和大家分享一组常用函数公式的使用方法,用心掌握这些函数,工作效率会大大提升。欢迎转发给更多需要的人。一、相关概念(一)函数语法由函数名+括号+参数组成例: 求和函数:SUM(A1,B2,…) 。参数与参数之 间用...

    今天和大家分享一组常用函数公式的使用方法,用心掌握这些函数,工作效率会大大提升。欢迎转发给更多有需要的人。

    一、相关概念

    (一)函数语法

    由函数名+括号+参数组成

    例: 求和函数:SUM(A1,B2,…) 。参数与参数之 间用逗号“,”隔开

    (二)运算符

    1. 公式运算符:加(+)、减(-)、乘(*)、除(/)、百分号(%)、乘幂(^)

    2. 比较运算符:大与(>)、小于(=) 、不等于(<>)

    3. 引用运算符:区域运算符(:)、联合运算符(,)

    (三)单元格的相对引用与绝对引用

    例: A1

    $A1 锁定第A列

    A$1 锁定第1行

    $A$1 锁定第A列与第1行

    二、常用函数

    (一)数学函数

    1. 求和 =SUM(数值1,数值2,……)

    2. 条件求和 =SUMIF(查找的范围,条件(即对象),要求和的范围)

    例:(1)=SUMIF(A1:A4,”>=200”,B1:B4)

    函数意思:对第A1栏至A4栏中,大于等于200的数值对应的第B1列至B4列中数值求和

    (2)=SUMIF(A1:A4,”<300”,C1:C4)

    函数意思:对第A1栏至A4栏中,小于300的数值对应的第C1栏至C4栏中数值求和

    3. 求个数 =COUNT(数值1,数值2,……)

    例:(1) =COUNT(A1:A4) 函数意思:第A1栏至A4栏求个数

    (2) =COUNT(A1:C4) 函数意思:第A1栏至C4栏求个数

    4. 条件求个数 =COUNTIF(范围,条件)

    例:(1) =COUNTIF(A1:A4,”<>200”)

    函数意思:第A1栏至A4栏中不等于200的栏求个数

    (2) =COUNTIF(A1:C4,”>=1000”)

    函数意思:第A1栏至C4栏中大于等1000的栏求个数

    5. 求算术平均数 =AVERAGE(数值1,数值2,……)

    例:(1) =AVERAGE(A1,B2)

    (2) =AVERAGE(A1:A4)

    6. 四舍五入函数 =ROUND(数值,保留的小数位数)

    7. 排位函数 =RANK(数值,范围,序别) 1-升序 0-降序

    例:(1) =RANK(A1,A1:A4,1)

    函数意思:第A1栏在A1栏至A4栏中按升序排序,返回排名值。

    (2) =RANK(A1,A1:A4,0)

    函数意思:第A1栏在A1栏至A4栏中按降序排序,返回排名值。

    8. 乘积函数 =PRODUCT(数值1,数值2,……)

    9. 取绝对值 =ABS(数字)

    10. 取整 =INT(数字)

    (二)逻辑函数

    条件函数:=IF(条件,执行条件,执行条件假)—可执行七层嵌套

    例: A1=5 A2=3 A3=6 A4=7

    =IF(A1>A2,1,0)=1(真)

    =IF(A1

    =IF(A1>A2,IF(A3>A4,8,9),1)=9

    (三)文本函数

    1. 截取函数: =LEFT(文本,截取长度)—从左边截取

    =RIGHT(文本,截取长度)—从右边截取

    =MID(文本,开始位,截取长度)—从中间截取

    2. 计算字符长度:LEN(文本)—文本的长度

    3. 合并字符函数:CONCATENATE(文本1,文本2,…)

    4. 在字符串中查找特定字符:FIND(文本,范围,数值)—数值表示查找第几个

    =FIND(“a”,“abcadeafga”,2)=4

    =FIND(“a”,“abcadeafga”,3)=7

    =FIND(“a”,“abcadeafga”,4)=10

    5. 比较两个字符是否完全相符:EXACT(文本1,文本2)

    =EXACT(“a”,“a”)=TRUE

    =EXACT(“a”,“ab”)=FALSE

    =EXACT(“a”,“A”)=FALSE

    6. 将数值转化为文本:TEXT(数值,参数) )—参数一般为0

    7. 将数值型字符转换为数值:VALUE(数值文本)

    (四)判断公式

    1. 把公式产生的错误显示为空

    公式:C2=IFERROR(A2/B2,””)

    说明:如果是错误值则显示为空,否则正常显示。

    1d05f87b9eed71a334afcef39cd82b1e.png

    2. IF多条件判断返回值

    公式:C2=IF(AND(A2<500,B2=”未到期”),”补款”,””)

    说明:两个条件同时成立用AND,任一个成立用OR函数。

    26a88d6b380de77280572800894e2ef7.png

    (五)统计公式

    1. 统计两个表格重复的内容

    公式:B2=COUNTIF(Sheet15!A:A,A2)

    说明:如果返回值大于0说明在另一个表中存在,0则不存在。

    2a1d2ae1f2db57402d0554d24bd67e02.png

    2. 统计不重复的总人数

    公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))

    说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

    47c6e245ca1c87235b462196e1c09c9d.png

    (六)求和公式

    1. 隔列求和

    公式:H3=SUMIF($A$2: $G$2,H$2,A3:G3)

    或者: =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)

    说明:如果标题行没有规则用第2个公式

    f16af23cc9cbed6b0442ce0fe7c385d8.png

    2. 单条件求和

    3. 单条件模糊求和

    4. 多条件模糊求和

    5. 多表相同位置求和

    公式:B2=SUM(Sheet1:Sheet19!B2)

    说明:在表中间删除或添加表后,公式结果会自动更新。

    c91f9da8f957351e6f8c22ac4dfe3195.png

    6. 按日期和产品求和

    (七)查找与引用公式

    1. 单条件查找公式

    公式1: C11=VLOOKUP(B11,B3:F7,4,FALSE)

    说明:查找是VLOOKUP最擅长的,基本用法

    dadfe731350e2ccd1e03e6fb29445517.png

    2. 双向查找公式

    公式=INDEX(C3:H7,MATCH(B10,B3:B7,0),MATCH(C10,C2:H2,0))

    说明:利用MATCH函数查找位置,用INDEX函数取值

    60e186317bd77055b05ce199f0c02321.png

    3. 查找最后一条符合条件的记录。

    公式:详见下图

    说明:0/(条件)可以把不符合条件的变成错误值,而lookup可以忽略错误值

    55006884f07153abb66a2c266faf1474.png

    4. 多条件查找

    公式:详见下图

    说明:公式原理同上一个公式

    30726f50dd51dd8468b20b55c4a0c141.png

    5. 指定区域最后一个非空值查找

    6. 按数字区域间取对应的值

    展开全文
  • 常用32测试函数

    千次阅读 多人点赞 2021-05-09 15:40:36
    文章目录一、函数列表二、函数图象三、参考文献、Matlab代码 一、函数列表 注:函数编号以程序为例。 二、函数图象 咦!怎么多了一?! 三、参考文献 [1] 陈雷,尹钧圣.高斯差分变异和对数惯性权重...

    一、函数列表

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述:函数编号以程序为例。

    二、函数图象

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    咦!怎么多了一个?!

    三、参考文献

    [1] 陈雷, 尹钧圣. 高斯差分变异和对数惯性权重优化的鲸群算法[J]. 计算机工程与应用, 2021, 57(2): 77-90.
    [2] 范千, 陈振健, 夏樟华. 一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法[J]. 哈尔滨工业大学学报, 2020, 52(10): 183-191.

    展开全文
  • MySQL常用函数

    千次阅读 2021-11-22 09:19:28
    常用函数包含字符串函数、数值函数、日期函数和系统信息函数。 • 字符串函数:该类函数主要用于处理字符串。 • 数值函数:该类函数主要用于处理数字。 • 日期函数:该类函数主要用于处理日期和事件。 • ...

    一、学习任务1:使用字符串函数

    虽然每种数据库软件都支持SQL语句,但是每种数据库却拥有各自所支持的函数。如果想使用数据库软件,除了需要会使用SQL语句外,还需要掌握函数。常用的函数包含字符串函数、数值函数、日期函数和系统信息函数。

    字符串函数:该类函数主要用于处理字符串。

    数值函数:该类函数主要用于处理数字。

    日期函数:该类函数主要用于处理日期和事件。

    系统信息函数:该类函数主要用于获取MySQL软件的系统信息。

    注意:能运行在多个系统上的代码具有可移植性,在数据库软件中,多数SQL语句是可移植的,且可移植性比较强;而函数的移植性不强,主要是由于各种数据库软件都支持自己所特有的函数。因此许多SQL用户不认同使用数据库软件所特有的函数.

    字符串函数是常用函数之一,是MySQL用户必须要掌握的函数之一。在MySQL软件中, 符串类型数据处理占了很大一部分,因此灵活地使用字符串函数,是衡量用户的MySQL标准之一。

     字符串函数

    函数

    CONCAT(str1,str2,.. .strn)

    连接字符串价str1str2…、strn为一个完整字符串

    INSERT(str,x,y,instr)

    将字符串价从第x位置开始,y个字符长的子串替换为字符串instr

    L0WER(str)

    将字符串str中所有字符变为小写

    UPPER(str)

    将字符串str中所有字符变为大写

    LEFT(str,x)

    返回字符串str中最左边的x个字符

    RIGHT(str,x)

    返回字符串str最右边的x个字符

    LPAD(str,n,pad)

    使用字符串pad对字符串str最左边进行填充,直到长度为n个字符长度

    RPAD(str,n,pad)

    使用字符串pad对字符串str最右边进行填充,直到长度为n个字符长度

    LTRIM(str)

    去掉字符串str左边的空格

    RTRIM(str)

    去掉字符串str右边的空格

    REPEAT(str,x)

    返回字符串str重复x次的结果

    REPLACE(str,a,b)

    使用字符串b替换字符串str中所有出现的字符串a

    STRCMP(str1,str2)

    比较字符串str1str2

    TRIM(str)

    去掉字符串str行头和行尾的空格

    SUBSTRING(str,x,y)

    返回字符串str中从x位置起y个字符长度的宇符串

    下面将通过具体实例详细介绍字符串函数中常用的函数。

    1.1 合并CONCAT()和CONCAT_WS()

    MySQL软件中可以通过函数CONCAT()和CONCAT_WS()将传入的参数连接成为一个字符串。

    CONCAT(s1,s2sn)

    上述函数会将传入的参数连接起来返回所合并的字符串类型数据。如果其中一个参数为NULL, 则返回值为NULL

    【实例13-1】下面通过具体实例演示函数CONCAT()的使用,具体步骤如下:

    (1)执行函数CONCAT(),实现字符串My”、“SQL合并功能具体语句如下

    select concat('my','s','ql');

    (2)执行SQL函数CONCAT()实现字符串My”、“S”、“QLNULL合并功能具体SQL语句如下

    SELECT CONCAT('My', 'S', 'QL',NULL) '合并后字符串';

    【运行效果】执行上面的SQL语句,其结果如图所示。

     

     

    执行结果显示,当所传入的参数值中有一个值为NULL,返回的结果值将为NULL

    (3)执行SQL函数CONCAT(),实现将当前时间CURDATE()和数值12.34合并功能,具体语句如下:

    SELECT CONCAT (CURDATE(), 12.34) '合并后字符串';

    【运行效果】执行上面的SQL语句,其结果如图所示。

     

    不仅可以接受字符串参数,而且还可以接受其他类型参数。

    CONCAT_WS()函数全称为CONCAT With Separator,CONCAT()函数的特殊形式。函数CONCAT_WS()的定义如下

    CONCAT_WS(SEP,Sl, S2, …SN)

    上述函数与CONCAT()相比,多了一个表示分割符的sep参数,即不仅将传入的其他参数连接起来,而且还会通过分割符将各个字符串分割开。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则返回结果为NULL。函数会忽略任何分隔符参数后的NULL值。

    【实例13-2】下面通过具体实例演示函数CONCAT_WS()的使用,具体步骤如下:

    (1)执行SQL函数CONCAT_WS(),实现带有区号的电话功能,具体SQL语句如下

    SELECT CONCAT_WS ('-', ' 029',88461234) '合并后字符串';

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,实现了通过分隔符(-)将传入参数的隔开功能,即将字符串“029”和88461234合并成一个字符串,同时通过符号(-)将合并后的字符串分割。

    (2)执行SQL函数CONCAT_WS(),当分割符参数的值为NULL时,具体SQL语句如下:

    SELECT CONCAT_WS(NULL, '029', 88461234)  '合并后字符串';

    (3)执行SQL函数00?^11%30,当分割符参数后值存在>0^^具体8(^语句如下 

    SELECT CONCAT_WS('-', '029',NULL,88461234) '合并后字符串';

    【运行效果】执行上面的语句,其结果如图所示。

     

     

    1.2 比较字符串大小函数STRCMP()

    MySQL软件中可以通过函数STRCMP()比较所传入的字符串对象。函数STRCMP()的定义如下:STRCMP(str1,str2)

    上述函数用来比较字符串参数str1str2如果参数str1大于str2,则返回结果1;如果参数str1小于str2,则返回结果-1;如果参数str1等于str2,则返回结果0

    下面通过具体实例演示STRCMP()函数的使用,具体如下。

    【实例11-3】执行SQL语句的STRCMP()函数,比较一些字符串,具体SQL语句如下:

    select strcmp('abc','abd'),strcmp('abc','abc'),strcmp('abc','abb');

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,由于字符串abc小于字符串abd”,所以返回结果为-1;由于字符串abc等于字符串abc”,所以返回结果为0;由于字符串abc大于字符串abb”,所以返回结果为1

    1.3 获取字符串长度函数LENGTH()和字符串函数CHAR_LENGTH()

    MySQL软件中可以通过LENGTH()和CHAR_LENGTH()函数获取字符串的长度。 函数LENGTH()的定义如下:

    LENGTH(str)

    上述函数会获取传入的参数str的长度。 

    函数CHAR_LENGTH()的定义如下:

    CHAR_LENGTH(str)

    上述函数会获取传入的参数str的字符数。

    【实例13-4】下面通过具体实例演示LENGTH()和CHAR_LENGTH()函数的使用具体步骤如下

    (1)执行SQL语句的LENGTH(),计算英文字符串“MySQL”和中文字符串常建功的字节长度具体SQL语句如下

    SELECT 'MySQL'as '英文字符串',LENGTH('MySQL') '字符串字节长度','常建功'as '中文字符串',LENGTH('常建功') '字符串字节长度';

    (2)执行SQL语句的CHAR_LENGTH()函数计算英文字符串MySQL和中文字符串常建功的字符长度具体SQL语句如下

    mysql> SELECT 'MySQL'as '英文字符串',CHAR_LENGTH('MySQL') '字符串字符长度','常建功'as '中文字符串',CHAR_LENGTH('常建功') '字符串字符长度';

    【运行效果】执行上面的语句,其结果如图所示。

     

     

    执行结果显示,获取传入字符串的长短,由于英文字符占一个字节,所以字符串MySQL的长度为5;由于汉字字符占三个字节,所以字符串“常建功”的长度为9

    获取传入字符串的字符数,即字符串MySQL的字符数为5,字符串“常建功”的字符数为3

    字符串MySQL共有5个字符,但是占有6个字节空间。这是因为每个字符串都会以\0结束,结束符\0也会占用一个字节空间。根据执行结果可以发现,LENGTH()与CHAR_LENGTH()函数作用一样,会获取字符串的字符数,而不是所占空间的大小。

    1.4 实现字母大小写转换函数UPPER()和LOWER()

    MySQL软件中可以通过UPPER()和UCASE()函数实现将字符串的所有字母转换成大写字母。函数UPPER()即的定义如下

    UPPER(S)

    上述函数会将所传入的字符串对象S中所有字母全部转换成大写字母。关于实现字母大写转换函数除了UPPER()函数外,还可以通过UCASE()函数来实现,其具体定义如下:

    UCASE(S)

    下面通过具体实例演示现UPPER()UCASE()函数的使用具体步骤如下

    【实例13-5】执行SQL语句的UPPER()和UCASE()函数,实现将字符串mysql中的所有小写字母转换成大写字母,具体SQL语句如下

    SELECT 'mysql' as '字符串',UPPER('mysql')'转换后字符',UCASE('mysql')'转换后字符';

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,将传入的字符串中所有的字母全部转换成大写字母,即返回的字符串为MYSQL'

    与UPPER()函数的作用相反,MySQL软件提供LOWER()和LCASE()函数来实现将字符串中所有的字母转换成小写字母。UPPER()函数的定义如下:

    LOWER(S)

    上述函数会将所传入的字符串对象S中所有宇母全部转换成小写字母。

    LCASE()函数的定义如下:

    LCASE (S)

    下面通过具体实例演示LOWE()和LCASE()函数的使用具体步骤如下

    【实例13-6】执行SQL语句的LOWER()LCASE()函数实现将字符串MYSQL中的所有 大写字母转换成小写字母具体SQL语句如下

    SELECT 'MYSQL'as '字符串',LOWER('mysql')'转换后字符串',LCASE('mysql')'转换后字符串';

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示将传入的字符串中所有的字母全部转成小写字母即返回的字符串为mysql”。

    1.5 查找字符串

    MySQL软件中提供了丰富的函数去査找字符串的位置分别为FIND_IN_SET()函数、FIELD()函数、LOCATE()函数、POSITION()函数和INSTR()函数同时还提供了查找指定位置的字符串的函数ELT()。

    1.返回字符串位置的FIND_IN_SET()函数

    MySQL软件中可以通过FIND_IN_SET()函数获取相匹配字符串的位置。FIND_IN_SET()函数的定义如下:

    FIND_IN_SET (str1, str2)

    上述函数将会返回在字符串str2中与str1相匹配的字符串的位置,参数str2字符串中将包含若干个用逗号隔开的字符串。

    下面通过具体实例演示FIND_IN_SET()函数的使用具体步骤如下。

    【实例13-7】执行SQL语句的FIND_IN_SET()函数查找与字符串MySQL相匹配的位置, 具体语句如下

    SELECT FIND_IN_SET('MySQL','oracle,sql server,MySQL') '位置';

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果成功显示出关于字符串相匹配的位置。

    2.返回指定字符串位置的FIELD()函数

    MySQL软件中可以通过FIELD()函数获取相匹配字符串的位置。FIELD()函数的定义如下:

    FIELD(str, str1, str2...)

    上述函数将会返回第一个与字符串str匹配的字符串的位置。 下面通过具体实例演示FIELD()函数的使用,具体步骤如下。

    【实例13-8】执行SQL语句的FIELD()函数,查找第一个与字符串MySQL相匹配的位置,具体SQL语句如下:

    SELECT FIELD('MySQL','oracle','sql server', 'MySQL') '位置';

    【运行效果】执行上面的语句,其结果如图所示。

     

     

    执行结果成功显示出关于字符串相匹配的位置。

    3.返回子字符串相匹配的开始位置

    MySQL软件中可以通过三个函数获取子字符串相匹配的开始位置它们分别为LOCATE() POSITION()和INSTR()。LOCATE()函数的定义如下:

    LOCATE(str1,str)

    上述函数将会返回参数str中字符串strl的开始位置。

    其他两个函数定义如下:

    POSITION(str1 IN str)

    INSTR(str,str1)

    下面通过具体实例演示LOCATE() POSITION()和INSTR()函数的使用具体步骤如下 

    【实例13-9】执行相应891语句的函数査找相匹配的开始位置具体3(^1^语句如下

    SELECT LOCATE('SQL', 'MySQL') '位置',POSITION('SQL' IN 'MySQL') '位置',INSTR('MySQL', 'SQL') '位置';

    【运行效果】执行上面的语句,其结果如图所示。  

     

    执行结果成功显示出字符串相匹配的开始位置。

    4.返回指定位置的字符串的ELT()函数

    在MySQL软件中可以通过ELT()函数获取指定位置的字符串。ELT()函数的定义如下:

    ELT(n,str1,str2…

    上述函数将会返回第n个字符串。

    下面通过具体实例演示ELT()函数的使用,具体步骤如下:

    【实例13-10】执行SQL语句的ELT() 函数査找指定位置的字符串具体语句如下 

    select elt(1,'mysql','oracle','sql server') '第一个位置的字符串';

    【运行效果】执行上面的语句其结果如图所示。

     

    执行结果成功显示出指定位置的字符串。

    5.选择字符串的MAKE_SET()函数

    MySQL软件中可以通过MAKE_SET()函数获取字符串MAKE_SET()函数的定义如下

    MAKE_SET (num, str1, str2…strn)

    上述函数首先会将数值num转换成二进制数,然后按照二进制数从参数str1,str2,strn中选取相应的字符串。再通过二进制数来选择字符串时,按从右到左的顺序读取该值,如果值为1值选择该字符串,否则将不选择该字符串。

    下面通过具体实例演示MAKE_SET()函数的使用,具体步骤如下:

    【实例13_11】执行30[语句的\^\^_3£0函数,获取相应字符串,具体30义语句如下

    SELECT BIN(5) '二进制数',MAKE_SET(5,'MySQL','Oracle','SQL Server','PostgreSQL') '选取后的字符串',BIN(7) '二进制数',MAKE_SET(7,'MySQL','Oracle','SQL Server','PostgreSQL') '选取后的字符串';

    【运行效果】执行上面的语句其结果如图所示。

     

    由于数值5的二进制数为101,所以选择第一个和第三个字符串,因此显示结果为MySQL, SQL Server数值7的二进制数为111,所以选择第一个、第二个和第三个字符串,因此显示的字符串为MySQL, SQLServer, PostgreSQL

    1.6 从现有字符串中截取子字符串

    MySQL软件中提供了丰富的函数去实现截取子字符串功能分别为LEFT()函数、RIGHT()函数、SUBSTRING()和MID()函数。

    1.从左边或右边截取子字符串

    MySQL软件中可以通过LEFT()函数获取字符串中从左边数的部分字符串,可以通过RIGHT() 函数获取字符串中从右边数的部分字符串。LEFT()函数的定义如下:

    LEFT(str,num)

    上述函数会返回字符串str中的包含前num个字母(从左边数)的字符串。

    关于RIGHT()函数的定义如下:

    RIGHT(str,num)

    上述函数会返回字符串str中的包含后num个字母从右边数的字符串。

    下面通过具体实例演示LEFT()和RIGHT()函数的使用,具体步骤如下:

    【实例13-12】执行SQL语句的LEFT()和RIGHT()函数,获取字符串mysql中的前2个字母和后3个字母的字符串,具体语句如下:

    SELECT 'MySQL' 字符串,LEFT('MySQL',2) '前2个字符串',RIGHT('MySQL',3) '后3个字符串';

    【运行效果】执行上面的语句其结果如图所示。

     

    2.截取指定位置和长度子字符串

    MySQL软件中可以通过SUBSTRING()和MID()函数截取指定位置和长度的子字符串SUBSTRING()函数的定义如下

    SUBSTRING(str,num,len)

    上述函数会返回字符串str中的第num个位置开始长度为len的子字符串。

    关于MID()函数的定义如下

    MID(str,num,len)

    下面通过具体实例演示SUBSTRING()MID()函数的使用具体步骤如下

    【实例13-13】执行SQL语句的SUBSTRING()MID()函数获取字符串“oraclemysql中的 子字符串“mysql”具体语句如下

    SELECT 'oraclemysql' '字符串',SUBSTRING('oraclemysql', 7,5) '截取子字符串',MID('oraclemysql',7,5) '截取子字符串';

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,成功截取传入的字符串中的子字符串mysql。

    1.7 去除字符串的首尾空格

    MySQL软件中提供了丰富的函数去实现去除字符串空格功能,分别为LTRIM()函数RTRIM()和TRIM()函数

    1.去除字符串开始处空格

    可以通过LTRIM()函数去掉字符串开始处的空格,LTRIM()函数的定义如下:

    LTRIM(str)

    上述函数会返回去掉开始处(左边)空格的字符串str 下面通过具体实例演LTRIM()函数的使用,具体步骤如下:

    【实例13-14】执行SQL语句的LTRIM()函数,去除字符串“ MySQL 左边的空格。在具体处理时,操作的字符串为 MySQL 该字符串的左右两边各有一个空格。因为空格显示不太明显,所以在该字符串左右两边与字符-连接起来。具体语句如下:

    SELECT CONCAT('-', ' MySQL ','-') '原来字符串',CHAR_LENGTH(CONCAT('-', ' MySQL ', '-')) '原来字符串长度',CONCAT('-', LTRIM(' MySQL '),'-') '处理后字符串',CHAR_LENGTH(CONCAT('-', LTRIM(' MySQL '),'-')) '处理后字符串长度';

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,能够正确去掉字符串“ MySQL ”左边的空格。

    2.去除字符串结束处空格

    MySQL软件中可以通过RTRIM()函数去掉字符串结束处的空格,RTRIM()的定义如下:

    RTRIM(str)

    上述函数会返回去掉结束处(右边)空格的字符串str,下面通过具体实例演示RTRIM()函数的使用,具体步骤如下:

    【实例13-15】执行SQL语句的RTRIM()函数,去除字符串“ MySQL ”右边的空格,具体语句如下:

    SELECT CONCAT('-', ' MySQL ','-') '原来字符串',CHAR_LENGTH(CONCAT('-', ' MySQL ', '-')) '原来字符串长度',CONCAT('-',RTRIM(' MySQL '),'-') '处理后字符串',CHAR_LENGTH(CONCAT('-',RTRIM(' MySQL '),'-')) '处理后字符串长度';

    【运行效果】执行上面的语句其结果如图所示。

     

    执行结果显示,能够正确去掉字符串“ MySQL 右边的空格„

    3.去除字符串首尾空格

    TRIM()函数的定义如下:

    TRIM(str)

    上述函数会返回去掉首尾空格的字符串str下面通过具体实例演示TRIM()函数的使用,具体步骤如下:

    【实例13-16】执行SQL语句的TRIM()函数,去除字符串“ MySQL ”首尾空格,具体语句如下:

    SELECT CONCAT('-', ' MySQL ','-') '原来字符串',CHAR_LENGTH(CONCAT('-', ' MySQL ', '-')) '原来字符串长度',CONCAT('-',TRIM(' MySQL '),'-') '处理后字符串',CHAR_LENGTH(CONCAT('-',TRIM(' MySQL '),'-')) '处理后字符串长度';

    【运行效果】执行上面的语句其结果如图所示。

     

    执行结果显示,能够正确去掉字符串“ MySQL 首尾空格。

    1.8 替换字符串

    MySQL软件中提供了丰富的函数去实现替换字符串功能分别为INSERT()REPLACE()函数。

    1.使用INSERT()函数

    MySQL软件中可以通过INSERT()函数实现替换字符串功能。INSERT()函数的定义如下

    INSERT(str,pos,len,newstr))

    上述函数会将字符串str中的pos位置开始长度为len的字符串用字符串newstr来替换。如果参数pos的值超过字符串长度,则返回值为原始字符串str。如果len的长度大于原来字符串str中所剩字符串的长度,则从位置pos开始进行全部替换。若任何一个参数为NULL,则返回值为NULL

    【实例13-17】下面通过具体实例演示INSERT()函数的使用,具体步骤如下:

    (1)执行SQL语句的取INSERT()函数,实现字符串替换功能,具体语句如下:

    SELECT '这是MySQL数据库管理系统' '字符串',INSERT('这是MySQL数据库管理系统',3,5,'Oracle') '转换后字符串';

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    (2)执行SQL语句的INSERT()函数,当替换的起始位置大于字符串长度,具体SQL语句如下:

    SELECT '这是MySQL数据库管理系统' '字符串',CHAR_LENGTH('这是MySQL数据库管理系统') '字符串字符数',INSERT('这是MySQL数据库管理系统',16,5,'Oracle') '转换后字符串';

    【运行效果】执行上面的语句其结果如图所示。

     

    执行结果显示,当所传入的替换的起始位置大于字符串长度,将返回原字符串这是MySQL 数据库管理系统”。

    (3)执行SQL语句的INSERT()函数,当所要替换的长度大于原来字符串中所剩字符串的长度,则从起始位置开始进行全部替换,具体语句如下:

    SELECT '这是MySQL数据库管理系统' '字符串',CHAR_LENGTH('MySQL数据库管理系统') '剩余字符数',INSERT('这是MySQL数据库管理系统',3,13,'Oracle') '转换后字符串';

    运行效果】执行上面的语句其结果如图所示。

     

    执行结果显示,当所要替换的长度大于原来字符串中所剩字符串的长度,则从起始位置开始进行全部替换,将返回原字符串“这是Oracle”。

    2.使用REPLACE()函数

    MySQL软件中除了提供INSERT()函数外还可以通过REPLACE()函数来实现替换字符串功能。REPLACE()函数的定义如下:

    REPLACE(str,substr,newstr)

    上述函数会将字符串str中的子宇符串substr用字符串的newstr来替换。

    【实例13-18】下面通过具体实例演示REPLACE()函数的使用,具体步骤如下: 

    (1)执行SQL语句的REPLACE()函数,实现字符串替换功能,具体语句如下:

    SELECT '这是MySQL数据库管理系统' '原字符串',REPLACE('这是MySQL数据库管理系统','MySQL','Oracle') '替换后字符串';

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,实现了将字符串“这是MySQL数据库管理系统”中的字符MySQL用字符 Oracle字符串替换。

    上述字符串函数为用户最常用的函数,关于字符串的函数还有许多,感兴趣的学员可以查看相关资料继续学习。

    二、学习任务2:使用数值函数

    数值函数是常用函数之一,在MySQL软件中除了字符串类型外,数值处理也占了很大一部分。MySQL软件所支持的常用数值函数如下表所示。

     常用数值函数

    函数

    功能

    ABS(x)

    返回数值x的绝对值

    CELL(x)

    返回大于x的最大整数值

    FLOOR(x)

    返回小于x的最大整数值

    MOD(x,y)

    返回x模y的值

    RAND()

    返回0-1内的随机数

    ROUND(x,y)

    返回数值x的四舍五人后有y位小数的数值

    TRUNCATE(x,y)

    返回数值x截断为y数的数值

    2.1 获取随机数

    在具体应用中,有时候需要获取随机数。通过RAND()和RAND(x)函数来获取随机数。上述两个函数都会返回01间的随机数,其中RAND()函数返回的数是完全随机的, RAND(x)函数返回的随机数值是相同的。

    下面通过具体实例演示函数RAND()和RAND(x)的使用具体步骤如下:

    【实例13-19】执行SQL语句的相应函数,具体的语句如下:

    SELECT RAND() ,RAND() ,RAND(3) ,RAND(3);

    【运行效果】执行上面的语句,其结果如图所示。

     

    执行结果显示,每次运行RAND()函数返回的结果不一样。如果想获取值相同的随机数,可以通过执行带有相同参数值的RAND()函数来实现。

    2.2 获取整数的函数

    在具体应用中,有时候需要获取整数。在MySQL软件中,通过CEIL()(或者CEILING())和FLOOR()函数实现获取整数操作。CEIL()的定义如下:

    CEIL (x)

    上述函数返回大于或等于数值x的最小整数。

    FLOOR()函数的定义如下

    FLOOR (x)

    上述函数返回小于或等于数值x的最大整数。

    【实例13-20】执行CEIL()和CEILING()函数,获取整数的数值,具体SQL语句如下:

    SELECT CEIL(4.3),CEIL(-2.5),CEILING(4.3),CEILING(-2.5);

    【运行效果】执行上面的语句,其结果如图所示。

     

    【实例13-21】执行FLOOR()函数,获取整数的数值,具体SQL语句如下:

    SELECT FLOOR(4.3),FLOOR(-2.5)

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    2.3 截取数值函数

    在具体应用中,有时候需要对数值的小数位数进行截取。在MySQL软件中,TRUNCATE()函数实现截取操作。TRUNCATE()函数的定义如下;

    TRUNCATE(x,y)

    上述函数返回数值x保留到小数点后y位的值。

    下面通过具体实例演示TRUNCATE()函数的使用具体步骤如下: 

    【实例13-22】执行TRUNCATE()函数,获取截取操作后的数值,具体SQL语句如下:

    SELECT TRUNCATE(903.53567,2), TRUNCATE(903.53567, -1);

    【运行效果】执行上面的语句其结果如图所示。

     

    2.4 四舍五入函数

    在具体应用中有时候需要对数值进行四舍五入操作。通过ROUND()函数实现四舍五入操作。ROUND()函数的定义如下:

    ROUND(x)

    上述函数返回数值x经过四舍五入操作后的数值。

    ROUND(x,y)

    上述函数返回数值x保留到小数点后y位的值,在具体截取数值时需要进行四舍五入的操作。 

    下面通过具体实例演示ROUND()函数的使用,具体步骤如下:

    【实例13-23】执行ROUND()函数,获取四舍五入操作后的数值,具体SQL语句如下:

    SELECT ROUND(903.53567) ,ROUND(-903.53567),ROUND(903.53567,2),ROUND(903.53567,-1);

    【运行效果】执行上面的语句其结果如图所示。

     

    上述数值函数为用户最常用的函数,关于数值函数还有许多,感兴趣的学员可以查看相关资料继续学习。

    三、学习任务3:使用日期和时间函数

    除了字符串函数和数值函数外,日期和时间函数也是常用函数之一,MySQL软件所支持的常用日期和时间函数如表所示。

     常用日期和时间函数

    功能

    CURDATE()

    获取当前日期

    CURTIME()

    获取当前时间

    NOW()

    获取当前的日期和时间

    UNIX_TIMESTAMP(date)

    获取日期dateunix时间戳

    FROM_UNIXTIME()

    获取unix时间戮的日期值

    WEEK(date)

    返回日期date为一年中的第几周

    YEAR(date)

    返回日期的年份

    HOUR(time)

    返回时间time的小时值

    MINUTE(time)

    返回时间time的分钟值

    MONTHNAME(date)

    返回时间time的月份值

    3.1 获取当前日期和时间的函数

    在具体应用中,经常需要获取当前日期和时间。在MySQL软件中,不仅提供了获取当前日期和时间函数,而且还提供了获取当前日期的函数和当前时间的函数。下面将详细介绍实现这些功能的函数。

    1.获取当前日期和时间

    MySQL软件中可以通过4个函数获取当前日期和时间它们分别为NOW(), CURRENT_TIMESTAMP(),LOCALTIME()SYSDATE()函数。这4个函数不仅可以获取当前日期和时间,而且显示的格式也一样。不过在具体应用中,推荐使用NOW()函数。

    下面通过具体实例演示NOW(), CURRENT_TIMESTAMP(),LOCALTIME()SYSDATE()函数函数的使用具体步骤如下

    【实例13-24】执行SQL语句的相应函数,获取当前日期和时间,具体SQL语句如下:

    SELECT NOW() 'now方式',CURRENT_TIMESTAMP() 'timestamp方式',LOCALTIME() 'ldcaltime方式',SYSDATE()'systemdate方式';

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    2.获取当前日期

    MySQL软件中可以通过两个函数获取当前日期它们分别为CURDATE() CURRENT_DATE()函数。这两个函数不仅可以获取当前日期,而且显示的格式也一样。不过在具体应用中,推荐使用CURDATE()函数。

    【实例13-25】执行SQL语句的相应函数,获取当前日期,具体SQL语句如下:

    SELECT CURDATE() curdate方式,CURRENT_DATE() current_date方式;

     

    3.获取当前时间

    MySQL软件中可以通过两个函数获取当前时间,它们分别为CURTIME()和CURRENT_TIME()函数。这两个函数不仅可以获取当前时间,而且显示的格式也是一样。不过在具体应用中,推荐使用CURTIME()函数。

    【实例13-26】执行SQL语句的相应函数,获取当前时间,具体SQL语句如下:

    SELECT CURTIME() curtime方式,CURRENT_TIME() current_time方式;

     

    执行结果显示,CURTIME()和CURRENT_TIME()函数不仅成功获取当前时间,而且还以同一种格式显示时间。

    3.2 通过各种方式显示日期和时间

    在具体应用中,可以通过各种方式来显示日期和时间,最常用的方式为UNIXUTC本节将详细介绍显示日期和时间的这两种方式。

    1.通过UNIX方式显示日期和时间

    在MySQL软件中,可以使用UNIX方式显示时间。所谓Unix是Unix epochUnix timePOSEX timeUnix timestamp的缩写,中文为时间戳。根据ISO-8601规范,该方式将显示从1970 11日开始所经过的秒数。即一分钟表示为UNIX时间戳格式为:60秒,一小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒。

    通过UNIX_TIMESTAMP()函数返回时间戳格式的时间FROM_UNIXTME()函数将时间戳格式时间转换成普通格式的时间。

    【实例13-27】执行SQL语句的相应函数,以UNIX格式显示时间,具体SQL语句如下:

    SELECT NOW() 当前时间,UNIX_TIMESTAMP(NOW()) unix格式,FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())) 普通格式;

     

    UNIX_TIMESTAMP()函数没有参数传入时则会显示出当前曰期和时间的时间戳形式UNIX_TIMESTAMP()函数传入某个时间参数时则会显示出所传入时间的时间截形式。

    【实例13-28】执行SQL语句的相应函数,以UNIX格式显示当前时间,具体SQL语句如下:

    SELECT NOW() 当前时间,UNIX_TIMESTAMP() unix格式,UNIX_TIMESTAMP(NOW()) unix格式;

    【运行效果】执行上面的语句其结果如图所示。

     

    2.通过UTC方式显示日期和时间

    MySQL软件中,也可以使用UTC方式显示日期和时间。所谓UTCUniversal Coordinated Time的缩写,中文为国际协调时间。MySQL软件提供了两个函数UTC_DATE()和UTC_TIME()来实现日期和时间的UTC格式显示。

    【实例13-29】执行SQL相应函数,以UTC格式显示当前时间具体SQL语句如下:

    SELECT NOW() 当前日期和时间,UTC_DATE() UTC日期,UTC_TIME() UTC时间;

     

    执行结果显示,UTC_DATE()函数返回的日期与当前日期相同而该函数返回的时间却与当前时间相差几个时区。

    3.3 获取日期和时间各部分值

    可以通过各种函数来获取当前日期和时间的各部分值,其中YEAR()函数返回日期中的年份,QUARTER()函数返回日期属于第几个季度,MONTH()函数返回日期属于第几个月,WEEK()即函数返回日期属于第几个星期,DAYOFMONTH()函数返回日期属于当前月的第几天, HOUR()函数返回时间的小时,MINUTE()函数返回时间的分钟,SECOND()函数返回时间的秒。

    【实例13-30】执行SQL相应函数,演示获取日期和时间各部分的功能,具体SQL语句如下:

    SELECT NOW() 当前日期和时间,YEAR(NOW()) 年,QUARTER(NOW()) 季度,MONTH(NOW()) 月,WEEK(NOW()) 星期,DAYOFMONTH(NOW()) 天,HOUR(NOW()) 小时,MINUTE(NOW()) 分,SECOND(NOW()) 秒;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,可以通过各种函数获取曰期和时间的各部分值。

    1.关于月的函数

    MONTHO函数返回日期和时间中的月份,其取值范围为112,如果是1月将返回值1,如果是2月将返回2,以此类推。在具体显示月份时,经常不需要显示月份值,而是需要显示月份的英文名字。为了实现该功能,MySQL软件专门提供了MONTHNAME()函数返回月份的英文名字。下面将通过一个具体的实例来演示MONTH()和MONTHNAMEO函数的区别。

    SELECT NOW() 当前日期和时间,MONTH(NOW()) 月,MONTHNAME(NOW()) 月;

     

    执行结果显示MONTH()函数返回数字表示的月份MONTHNAME()函数返回了英文表示的月份。

    2.关于星期的函数

    WEEK()和WEEKOFYEAR()函数返回日期和时间中星期是当前年的第几个星期,其取值范围为153。在具体显示星期时,经常不需要实现上述功能,而是需要显示该天是星期几或其的英文名字。为了实现该功能,MySQL软件专门提供了三个函数,分别为DAYNAME()函数、DAYOFWEEK()函数和WEEKDAY()函数,它们的含义如下。

    • DAYNAME()函数:返回日期和时间中星期的英文名。
    • DAYOFWEEK()函数:返回日期和时间中星期是星期几,返回值的取值范围为17, 如果返回值是1则表示星期日;如果返回值是2则表示星期一,以此类推。
    • WEEKDAY()函数:返回日期和时间中星期是星期几,返回值的取值范围为06。如果返回值是0则表示星期一;如果返回值是1则表示星期二,以此类推。

    下面将通过一个具体的实例来演示DAYNAME()DAYOFWEEK()和WEEKDAY()函数的区别。

    SELECT NOW() 当前日期和时间,WEEK(NOW()) 年中第几个星期, WEEKOFYEAR(NOW()) 年中第几个星期,DAYNAME(NOW()) 星期,DAYOFWEEK(NOW()) 星期,WEEKDAY(NOW()) 星期;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    3.关于天的函数

    对于MySQL软件提供的DAYOFMONTH()函数返回日期属于当前月的第几天,有时候还需要显示属于当前年的第几天,为了实现该功能,MySQL软件专门提供了DAYOFYEAR()函数计算属于本年的第几天。下面将通过一个具体的实例来演示DAYOFMONTH()和DAYOFYEAR()函数的区别。

    SELECT NOW() 当前日期和时间,DAYOFYEAR(NOW()) 年中第几天,DAYOFMONTH (NOW()) 月中第几天;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,DAYOFYEAR()函数返回值表示是本年第几天,DAYOFMONTH()函数返回值表 示是本月第几天。

    4.获取指定值的EXTRACT()函数

    要获取日期和时间的各部分值,需要记住上述的各种函数,比较麻烦。于是MySQL软件又提供了一个EXTRACT()函数来统一获取日期和时间的各部分值。EXTRACT()函数的定义如下:

    EXTRACT(type FROM date)

    上述函数会从日期和时间参数date中获取指定类型参数type的值。关于type参数的取值可以是YEAR、MONTHDAY, HOUR, MINUTE和SECOND。

    下面将通过一个具体的实例来演示EXTRACT()函数的使用。

    SELECT NOW() 日期和时间,EXTRACT(YEAR FROM NOW()) 年,EXTRACT(MONTH FROM NOW()) 月,EXTRACT(DAY FROM NOW()) 天,EXTRACT(HOUR FROM NOW()) 小时,EXTRACT(MINUTE FROM NOW()) 分,EXTRACT(SECOND FROM NOW()) 秒;执

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示EXTRACT()函数可以获取曰期和时间的各部分值。

    3.4 计算日期和时间的函数

    MySQL软件中提供了两种类型的计算日期和时间函数,第一种类型为计算与默认日期和时间 (000011日)相互操作的函数;第二种类型为计算与指定日期和时间相互操作的函数。

    1.与默认日期和时间操作

    MySQL软件中提供了两个函数来实现与默认日期和时间的操作,分别为TO_DAYS()和 FROM_DAYS()。它们的作用分别如下,

    • TO_DAYS(date)函数该函数计算日期参数date与默认日期和时间000011之间相隔天数。
    • FROM_DAYS(number)函数该函数计算从默认日期和时间000011开始经历number天后的日期和时间。

    下面通过具体实例演示TO_DAYS() FROM_DAYS()函数的使用具体步骤如下

    【实例13-31】执行SQL相应函数,获取当前日期和时间与默认日期和时间之间间隔,具体SQL语句如下:

    SELECT NOW() 当前日期和时间,TO_DAYS(NOW()) 相隔天数,FROM_DAYS (TO_DAYS (NOW())) 一段时间后日期和时间;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示TO_DAYS()FROM_DAYS()函数实现与默认日期和时间的操作。在具有应用时,有时需要获取指定两个日期之间相隔天数,这时就需要MySQL软件提供的DATEDIFF()函数, 该函数的具体定义如下:

    DATEDIFF(date1,date2)

    上述函数会返回日期参数date1date2之间相隔天数。下面通过具体实例演示DATEDIFF()函数的使用具体步骤如下

    【实例13-32】执行SQL语句的相应函数,获取两个日期之间的相隔天数,具体SQL语句如下:

    SELECT NOW() 当前日期和时间,DATEDIFF(NOW(),'2000-12-01') 相隔天数;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,0八丁已0«^0函数返回所传入两个日期间隔天数。

    2.与指定日期和时间操作

    MySQL软件中提供了两个函数来实现与指定日期操作,分别为ADDDATE()和SUBDATE()函数,它们的作用分别如下。

    • ADDDATE(date,n)函数:该函数计算日期参数date加上n天后的日期。
    • SUBDATE(date,n)函数:该函数计算日期参数date减去n天后的日期。 

    下面通过具体实例演示ADDDATE()和SUBDATE()函数的使用具体步骤如下: 

    【实例13-33】执行SQL语句的相应函数,获取5天前后的日期,具体SQL语句如下:

    SELECT CURDATE() 当前日期,ADDDATE(CURDATE(),5)  5天后日期,SUBDATE(CURDATE(),5) 5天前日期 ;

    【运行效果】执行上面的SQL语句,其结果如图所示。

     

    ADDDATE()和SUBDATE()函数除了可以接受上述参数外,还可以接受其他参数,具体定义如下:

    ADDDATE(d, INTERVAL expr type)

    上述函数返回日期参数d加上一段时间后的日期,表达式参数expr决定了时间的长度,参数type决定了所操作的对象。

    SUBDATE(d,INTERVAL expr type)

    上述函数返回曰期参数d减去一段时间后的日期,表达式参数expr决定了时间的长度。参数type决定了所操作的对象。关于参数type的取值如表所示。

    表 参数type的值

    type的值

    expr表达式

    YEAR

    YY

    MONTH

    MM

    DAY

    DD

    HOUR

    小时

    hh

    MINUTE

    分钟

    mm

    SECOND

    ss

    YEAR_MONTH

    年和月

    YYMM之间用任意符号隔开

    DAY_HOUR

    日和小时

    DD与hh之间用任意符号隔开

    DAY_MINUTE

    日和分钟

    DD与mm之间用任意符号隔开

    DAY_SECOND

    日和秒

    DD与ss之间用任意符号隔开

    HOUR_MINUTE

    小时和分钟

    hhmm之间用任意符号隔开

    HOUR_SECOND

    小时和秒

    hh与ss之间用任意符号隔开

    MINUTE_SECOND

    分钟和秒

    mm与ss之间用任意符号隔开

    【实例13-34】执行SQL语句的相应函数,获取23个月后的日期,具体SQL语句如下:

    SELECT CURDATE() 当前日期,ADDDATE(CURDATE(),INTERVAL '2,3'YEAR_MONTH) 2年3个月后日期,SUBDATE(CURDATE(),INTERVAL'2,3'YEAR_MONTH) 2年3个月前日期 ;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    MySQL软件中,除了可以通过ADDDATE()和SUBDATE()函数来操作指定日期外,还可以ADDTIME()和SUBTIME()函数实现操作时间,它们的作用分别如下。

    • 函数ADDTIME(time,n):该函数计算时间参数time加上n秒后的时间。
    • 函数SUBTIME(time,n):该函数计算时间参数time减去n秒后的时间。

    下面通过具体实例演示ADDTIME()和SUBTIME()函数的使用,具体步骤如下: 

    【实例13-35】执行SQL语句的相应函数,获取5秒前后的时间,具体SQL语句如下

    SELECT CURTIME() 当前时间,ADDTIME(CURTIME(),5)  5秒后时间,SUBTIME(CURTIME(),5)  5秒前时间;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,ADDTIME()函数返回指定秒数后的时间,SUBTIME()函数返回指定秒数前的时间。

    上述日期和时间函数为用户最常用的函数,关于日期和时间的函数还有许多,感兴趣的学员可以查看相关资料继续学习。

    四、学习任务4:使用系统信息函数

    除了上述各种函数外,系统信息函数也是MySQL用户必须要掌握的函数之一。在MySQL软件中通过系统信息函数可以获取关于数据库和数据库对象的各种信息。

    MySQL软件所支持的常用系统信息函数如表所示。

     常用系统倍息函数

    作用

    VERSION()

    返回数据库的版本号

    DATABASE()

    返回当前数据库名

    USER()

    返回当前用户

    LAST_INSERT_ID()

    返回最近生成的人AUTO_INCREMENT

    4.1 获取MySQL系统信息

    MySQL软件中如果想获取MySQL系统信息,可以通过各种函数来实现。在具体应用中,经常需要获取的系统信息有MySQL软件版本号,数据库名和连接数据库用户名。下面通过具体实例演示如何获取MySQL系统信息,具体步骤如下:

    【实例13-36】执行MySQL软件相应函数,获取常用的系统信息,具体SQL语句如下:

    SELECT VERSION() 版本号,DATABASE() 数据库名,USER() 用户名;

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示,VERSION()函数返回MySQL软件的版本号,DATABASE()函数返回所选择的数据库名,USER()函数返回连接数据库的用户名。

    4.2 获取AUTO_INCREMENT约束的最后ID值

    MySQL软件中设计表时经常会设置一个名为ID的字段同时还会设置该字段为主键和自动增长AUTO_INCREMENT约束。在具体应用中,由于主键ID的值由MySQL软件来控制而不是用户来输入,所以有时候需要查看最后生成的具有AUTO_INCREMENT约束字段的值。

    为了实现上述功能,MySQL软件专门提供了LAST_INSERT_ID()函数。下面通过具体实例演示如何获取最后生成的具有AUTO_INCREMENT约束字段的值具体步骒如下

    【实例13-37

    (1)执行SQL语句CREATE TABLE,创建表t_autoincrement,具体SQL语句如下

    CREATE TABLE t_autoincrement (ID INT(11) NOT NULL AUTO_INCREMENT UNIQUE);

    (2)为了便于测试通过SQL语句INSERT INTO向表t_autoincrement中插入4条测试数据, 具体SQL语句如下

    INSERT into t_autoincrement values(null);

    INSERT into t_autoincrement values(null);

    INSERT into t_autoincrement values(null);

    INSERT into t_autoincrement values(null);

    (3)执行SQL语句中的LAST_INSERT_ID()函数获取自动增长最后生成的ID具体SQL 语句如下

    select LAST_INSERT_ID();

    【运行效果】执行上面的SQL语句其结果如图所示。

     

    执行结果显示已经成功获取最后生成值。

    4.3 其他函数

    MySQL软件除了提供上述常用函数外还提供了许多其他函数。它们分别为流程函数和实现特殊功能函数。

    在具体应用中,用户可以通过流程函数实现条件选择,这样就能够提高SQL语句执行效率。MySQL软件支持的流程函数如表所示。

    表 流程函数

    函数

    作用

    IF(value,str1,str2)

    如果value此为真,返回str1,否则返回str2

    IFNULL(value1, default)

    如果value1不为空返回实际值,否则返回default

    CASE WHEN [value1] THEN[result1]...ELSE [default] END

    如果value1为真,返回result1,否则返回default

    CASE [expr]WHEN[value1] THEN[result1]... ELSE[default] END

    如果expr等于value1,返回result1,否则返回default

    以t_employee为例:

    (1)select ename,if(sal>3000,'rich','poor') as 工资判断 from t_employee;

     

    (2)select ename,ifnull(comm,'级别过低,没有津贴') from t_employee;

     

    (3)select ename,(case when comm=0 or comm is null then '待定' else comm end) as 判断 from t_employee;

     

    (4)select ename,(case 30 when deptno then '优秀' else '努力中' end) as 判断 from t_employee;

     

    MySQL软件还支持实现特殊功能的函数,如下表所示。

     实现特殊功能的函数

    作用

    PASSWORD(str)

    实现对字符串str进行加密

    FORMAT(x,n)

    实现将数字x进行格式化,保留n位小数

    INET_ATON(ip)

    实现将IP地址转换成数宇

    INET_NTOA(x)

    实现将数字转换成IP

    GET_LOCT(name,time)

    创建一个持续时间为time的名为name的锁

    RELEASE_LOCT(name)

    为名name的锁进行解锁

    BENCHMARK(count,expr)

    实现将表达式重复执行count

    C0NVERT(s USING cs)

    实现将字符串s的字符集变成cs

    CONVERT(x,type)

    实现将x变成¥类型

    Password可以参考博客详解MYSQL数据库密码的加密方式及破解方法_小强快跑~~-CSDN博客 

    更多方法请参考mysql数据库-常用函数_caodongfang126的博客-CSDN博客

    展开全文
  • 看了CSDN上不少关于EXCEL函数介绍的,但都没有结合动图来介绍。而本篇博客通过录制动图的方法,并且结合EXCEL官网对于函数的介绍,让大家更直观地感受到函数的具体功能究竟如何。当然,如果你本身只是想了解一下...
  • Excel表格常用函数

    千次阅读 2021-11-20 19:13:51
    常用函数一、常用函数1、MATCH函数(1)、匹配类型(2)、案例2、INDEX函数3、LOOKUP函数4、VLOOKUP函数 一、常用函数 1、MATCH函数 MATCH 函数返回指定值在搜索区域中的相对位置。 match(查找值,查询范围,0) (1)、...
  • Mysql最常用的十大函数

    千次阅读 2021-02-19 09:26:06
    函数一:CONCAT ... 注 意:这个函数需要注意的是,如果一列值为空,那么这一列拼接的结果都会为null,为了避免这样的状况发生,需要在可能为空的列上添加函数函数二:IFNULL 使用场景:查询时判断...
  • MaxCompute常用函数(ODPS常用函数)

    千次阅读 2021-06-28 02:10:44
    场景:使用MaxCompute常用函数 记录:NO.251 MaxCompute是一项大数据计算服务,它能提供快速、完全托管的PB级数据仓库解决方案。小北刚使用这产品时,那会叫做ODPS(Open Data Processing Service)。为此在标题...
  • MySql常用函数大全(详细)

    千次阅读 2021-11-28 10:50:00
    一、数学函数 (1)ABS(x)返回绝对值;例: (2)PI()返回圆周率的函数,默认值为小数后六位;例: (3)求函数的平方根SQRT(x);例: 注意:只有整数可以求平方根,负数没有。因此负数的求平方根的值...
  • C语言常用函数大整理

    万次阅读 多人点赞 2020-04-28 15:43:08
    最近在准备复试,要用DEV C++写程序,被各种功能强大的IDE宠惯的我当然不会自己去记这些函数,但往往记不住这些函数就写不出程序,于是我决定自己整理一下这些常用函数,长记性。 目录 一、输入输出函数 二、...
  • Excel常用函数公式20例

    千次阅读 2021-05-16 11:26:47
    使用工具:Microsoftoffice excel 2016 ...② 匹配模式2种,1为模糊匹配,0位精准匹配。 二、Sumif函数。 功能:单条件求和。 语法:=Sumif(条件范围,条件,求和范围)。 方法:在目标单元.
  • MySQL常用函数大全(总结篇)

    万次阅读 多人点赞 2019-02-19 14:08:33
    本篇文章讲解是是MySQL的函数方法,涵盖所有的MySQL常见的方法。...、MySQL高级函数 (一)数字函数 1、ABS(x) 返回x的绝对值 SELECT ABS(-1); ---- 返回1 2、AVG(expression) 返回一表达式的平均值,expres...
  • python常用函数整理

    千次阅读 2020-06-30 15:43:35
    使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list from ast import literal_eval str_list = "[1838, 13735, 8285, 35386]" mylist = literal_eval(str_list) type(mylist ) ...
  • 常用 math.h 中的数学函数示例

    千次阅读 2021-05-20 06:17:55
    常用 math.h 中的数学函数示例C语言标准库接...六种基本初等函数参见:常用函数的导数和微分1、三角函数常用 math.h 中的数学函数示例三角函数(trigonometric function)的角度都用弧度来表示,常用的三角函数包括:s...
  • PHP常用函数大全

    万次阅读 多人点赞 2018-06-11 14:28:36
    字符串函数strlen:获取字符串长度,字节长度substr_count 某字符串出现的次数substr:字符串截取,获取字符串(按照字节进行截取)mb_strlenmb_substrstrchr:与substr相似,从指定位置截取一直到最后strrchr(获取...
  • Pandas常用函数大合集

    千次阅读 2020-11-02 09:43:00
    data.groupby( column_1 )[ column_2 ].apply(sum).reset_index() 按一列分组,选择另一列来执行一个函数。.reset_index() 会将数据重构成一表。 image 正如前面解释过的,为了优化代码,在一行中将你的...
  • sql常用函数大全

    万次阅读 多人点赞 2018-04-09 13:59:52
    转载自:https://blog.csdn.net/mrtwofly/article/details/53939400一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e...
  • R语言常用函数整理

    千次阅读 多人点赞 2020-10-21 08:45:43
    R语言常用函数整理本篇是基础篇,即R语言自带的函数。 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求...
  • 常用的窗口函数

    千次阅读 2021-07-11 12:32:31
    1、什么是窗口函数 含义:窗口函数也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据进行实时分析处理。 作用: 解决排名问题,e.g.每班级按成绩排名 解决TOPN问题,e.g.每班级前两名的...
  • javascript常用函数大全

    千次阅读 多人点赞 2018-10-24 23:19:29
    (1)alert函数:显示一警告对话框,包括一OK按钮。 (2)confirm函数:显示一确认对话框,包括OK、Cancel按钮。 (3)escape函数:将字符转换成Unicode码。 (4)eval函数:计算表达式的结果。 ...
  • C++中的String的常用函数用法总结

    万次阅读 多人点赞 2018-08-27 09:15:36
    string的构造函数的形式: string str:生成空字符串 string s(str):生成字符串为str的复制品 string s(str, strbegin,strlen):将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值 ...
  • C++-string常用函数整理(建议收藏)

    万次阅读 多人点赞 2021-07-22 10:42:58
    整理C++的string常用函数
  • 零基础要学会的15个常用函数

    千次阅读 2021-07-23 03:36:24
    这些函数是最基本的,但应用面却非常广,学会这些基本函数可以让工作事半功倍...统计一单元格区域:=sum(A1:A12)统计多单元格区域:=sum(A1:A12,B1:B12)************2、AVERAGE虽然Average是一统计函数,但使...
  • MySQL常用函数MySQL 数值型函数MySQL 字符串函数MySQL 日期和时间函数MySQL 聚合函数MySQL 流程控制函数1、字符串函数2、数学函数3、时期时间函数4、转换函数 MySQL 函数会对传递进来的参数进行处理,并返回一...
  • SQL Server常用函数整理

    千次阅读 2020-06-13 18:30:00
    点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货。学习SQL,很多时候需要使用到系统函数,比如一些统计函数(聚合函数),日期函数,字符串函数等。今天给大家整理了一...
  • vb常用函数一览表

    万次阅读 2018-08-05 17:10:29
    常用内部函数 数学函数 函数
  • sqlserver常用函数函数查询例子

    千次阅读 2019-04-04 17:09:52
    sqlserver常用函数总结,代码可复制到sqlserver管理工具,新建查询,F5运行,查看结果: 1、数学函数 ceiling(n):返回不小于n的最小整数 floor(n):返回不大于n的最大整数 round(m,n):舍五入,n为小数的...
  • 文员常用的8excel函数

    千次阅读 2019-08-27 17:00:15
    今天和大家分享一组常用函数公式的使用方法:职场人士必须掌握的8Excel函数,用心掌握这些函数,工作效率就会质的提升。 1、函数一:求和 Sum函数可以对数值型行或者列进行操作,计算一行或者一列的总和 2、...
  • Hive常用函数总结

    千次阅读 多人点赞 2020-12-09 00:14:33
    常见hive函数,必须掌握!
  • NumPy(Numerical Python) 是 Python 语言的一扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy 是一运行速度非常快的数学库,主要用于数组计算,包含: 一强大的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 635,256
精华内容 254,102
热门标签
关键字:

常用函数有哪四个