【初入DW之复杂一点的查询2】

文章目录一、各种各样的函数1.算数函数2.字符串函数二、使用步骤1.引入库2.读入数据总结一、各种各样的函数SQL自带了各种各样的函数,极大地提高了SQL语言的便利性。所谓函数,就是类似于一个黑匣子,我们输入一个值,它便按照预设的程序定义给出返回值,这个输入的值就称为参数。函数大致分为如下几类:算术函数 (用来进行数值计算的函数)字符串函数 (用来进行字符串操作的函数)日期函数 (用来进行日期操作的函数)转换函数 (用来转换数据类型和值的函数)聚合函数 (用来进行数据聚合的函数)函数总个
摘要由CSDN通过智能技术生成

一、各种各样的函数

SQL自带了各种各样的函数,极大地提高了SQL语言的便利性。
所谓函数,就是类似于一个黑匣子,我们输入一个值,它便按照预设的程序定义给出返回值,这个输入的值就称为参数。

函数大致分为如下几类:

算术函数 (用来进行数值计算的函数)
字符串函数 (用来进行字符串操作的函数)
日期函数 (用来进行日期操作的函数)
转换函数 (用来转换数据类型和值的函数)
聚合函数 (用来进行数据聚合的函数)

函数总个数超过200个,不需要完全记住,常用函数有 30~50 个,其他不常用的函数使用时查阅文档即可。

1.算数函数

为在下面学习过程中更好地演示其他几个算数函数,在此构造samplemath表如下:
在这里插入图片描述

  • ABS- - 绝对值
    语法:ABS(数值)
    ABS 函数用于计算一个数字的绝对值,表示一个数到原点的距离。
    当 ABS 函数的参数为NULL时,返回值也是NULL。

  • MOD- - 求余数
    语法:MOD(被除数,除数)
    MOD 是计算除法余数(求余)的函数,是 modulo 的缩写。小数没有余数的概念,只能对整数列求余数。
    注意:主流的 DBMS 都支持 MOD 函数,只有SQL Server 不支持该函数,其使用%符号来计算余数。

  • ROUND- -四舍五入
    语法:ROUND(对象数值,保留小数的位数)
    注意:当参数 保留小数的位数 为变量时,可能会遇到错误,请谨慎使用变量。

执行代码:

SELECT m,
    ABS(m)ASabs_col , /*取绝对值*/
    n, p,
    MOD(n, p) AS mod_col, /*取余*/
    ROUND(m,1) AS round_col /*四舍五入*/
FROM samplemath;

运行结果:
在这里插入图片描述

2.字符串函数

同样的,为更好地演示下面的字符串函数,我们构造samplestr表如下:
在这里插入图片描述

  • CONCAT – 拼接
    语法:CONCAT(str1, str2, str3)
    MySQL中使用 CONCAT 函数进行拼接。

  • LENGTH – 字符串长度
    语法:LENGTH( 字符串 )

  • LOWER – 小写转换
    LOWER 函数只能针对英文字母使用,它会将参数中的字符串全都转换为小写。该函数不适用于英文字母以外的场合,不影响原本就是小写的字符。
    类似的, UPPER 函数用于大写转换。

  • REPLACE – 字符串的替换
    语法:REPLACE( 对象字符串,替换前的字符串,替换后的字符串 )

  • SUBSTRING – 字符串的截取
    语法:SUBSTRING (对象字符串 FROM 截取的起始位置 FOR 截取的字符数)
    使用 SUBSTRING 函数 可以截取出字符串中的一部分字符串。截取的起始位置从字符串最左侧开始计算,索引(类似下角标)值起始为1。

  • 扩展内容)SUBSTRING_INDEX – 字符串按索引截取
    该函数用来获取原始字符串按照分隔符分割后,第 n 个分隔符之前(或之后)的子字符串,支持正向和反向索引,索引起始值分别为 1 和 -1。
    举个例子:

SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);

执行结果(也就是说以 . 为分隔符,代表第2个分隔符之前的字符串,这里支持正负索引,如果时-2则代表后两个子字符串):
在这里插入图片描述
获取第一个元素比较容易,如果想要获取第二(n)个元素可以采用二次拆分的写法。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 2), '.', -1);

执行结果(也就是在原来拆分的基础上再进行一次拆分。):
在这里插入图片描述

  • 扩展内容)REPEAT – 字符串按需重复多次
    语法:REPEAT(string, number)
    该函数用来对特定字符实现按需重复。
    举个例子:
    在这里插入图片描述

3.日期函数

不同DBMS的日期函数语法各有不同,本课程介绍一些被标准 SQL 承认的可以应用于绝大多数 DBMS 的函数。特定DBMS的日期函数查阅文档即可。

SELECT CURRENT_DATE;--获取当前日期
SELECT CURRENT_TIME;--获取当前时间
SELECT CURRENT_TIMESTAMP;-- 获取当前日期和时间

截取日期元素
语法:EXTRACT(日期元素(年月日时分秒) FROM 日期)
举个例子:

SELECT CURRENT_TIMESTAMP as now,
EXTRACT(YEAR   FROM CURRENT_TIMESTAMP) AS year,
EXTRACT(MONTH  FROM CURRENT_TIMESTAMP) AS month,
EXTRACT(DAY    FROM CURRENT_TIMESTAMP) AS day,
EXTRACT(HOUR   FROM CURRENT_TIMESTAMP) AS hour,
EXTRACT(MINUTE FROM CURRENT_TIMESTAMP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值