前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库原理及应用(七)——函数、谓词和CASE 表达式

数据库原理及应用(七)——函数、谓词和CASE 表达式

作者头像
Regan Yue
发布2023-03-30 15:41:35
3790
发布2023-03-30 15:41:35
举报
文章被收录于专栏:ReganYue's Blog

一、函数

sql自带许多用起来很方便的函数,大致分为以下几类:

函数类型

作用

算术函数

用来进行数值计算

字符串函数

用来进行字符串的操作

日期函数

用来进行日期操作的函数

转换函数

用来转换数据类型和值的函数

聚合函数

用来进行数据聚合的函数

ABS\MOD\ROUND

ABS()可以求一个数的绝对值


MOD(除数,被除数)可以用于求余

!!!! SQL Server不支持该函数。


ROUND(数值,保留位数)可以用来进行四舍五入

字符串函数

  • CONCAT(str1, str2, str3)

用于进行字符串拼接

  • REPLACE( 对象字符串,替换前的字符串,替换后的字符串 )
代码语言:javascript
复制
SELECT s.sage,s.sdept,s.sname,REPLACE(sage, sage, sname) AS REPLACE
FROM s
image.png
image.png
  • SUBSTRING (对象字符串 FROM 截取的起始位置 FOR 截取的字符数)
  • LENGTH( 字符串 ) 求字符串的长度
  • LOWER 函数用于小写转换、 UPPER 函数用于大写转换
代码语言:javascript
复制
SELECT LOWER(s.sdept) DEPT,S.sdept
FROM s
image.png
image.png

日期函数

  • CURRENT_DATE 获取当前日期
代码语言:javascript
复制
SELECT CURRENT_DATE;
  • CURRENT_TIME 当前时间
  • CURRENT_TIMESTAMP 获取当前日期和时间
代码语言:javascript
复制
SELECT CURRENT_TIMESTAMP;
image.png
image.png

转换函数

  • CAST(转换前的值 AS 想要转换的数据类型)
代码语言:javascript
复制
SELECT CAST('8888' AS INT) AS INT_COL;
image.png
image.png
  • COALESCE 将NULL转换为其他值

二、谓词

谓词主要有以下几个:

  • LIKE
  • BETWEEN
  • IS NULL、IS NOT NULL
  • IN
  • EXISTS

LIKE谓词

例:查询SC表中9开头的成绩信息

代码语言:javascript
复制
SELECT sc.cno,sc.grade
FROM sc
WHERE grade LIKE '9%';

%是表示“任意字符串”的通配符。

_是表示“任意1个字符”的通配符

image.png
image.png

BETWEEN谓词

代码语言:javascript
复制
SELECT sc.cno,sc.grade
FROM sc
WHERE grade BETWEEN 88 AND 89;
image.png
image.png

IS NULL、 IS NOT NULL

用于判断是否为NULL

代码语言:javascript
复制
SELECT sname, s.sage
FROM s
WHERE s.sage IS NOT NULL;
image.png
image.png

使用子查询作为IN谓词的参数

代码语言:javascript
复制
SELECT product_name, sale_price
FROM product
WHERE product_id IN 
    SELECT product_id
    FROM shopproduct
    WHERE shop_id = '000C');

EXIST谓词

它的作用就是 “判断是否存在满足某种条件的记录”。

三、CASE 表达式

语法:

代码语言:javascript
复制
CASE WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     .
     .
     .
ELSE <表达式>
END  
代码语言:javascript
复制
SELECT sname,
 CASE WHEN sdept = 'CS' THEN LOWER(sdept)
 ELSE NULL
 END AS AAA
 FROM s;
image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、函数
    • ABS\MOD\ROUND
      • 字符串函数
        • 日期函数
          • 转换函数
          • 二、谓词
            • LIKE谓词
              • BETWEEN谓词
                • IS NULL、 IS NOT NULL
                  • 使用子查询作为IN谓词的参数
                    • EXIST谓词
                    • 三、CASE 表达式
                    相关产品与服务
                    数据库
                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档