SQL笔记#函数、谓词、CASE表达式

news/2025/2/27 2:08:09

目录

一、各种各样的函数

1、函数的种类

2、算术函数

  ABS——绝对值

  MOD——取余

  ROUND——四舍五入

3、字符串函数

   ||——拼接

  LENGTH——字符串长度

 LOWER——小写转换

 REPLACE——字符串的替换

  SUBSTR——字符串的截取

   UPPER——大写转换

4、日期函数

 CURRENT_DATE——当前日期

 CURRENT_TIME——当前时间

 CURRENT_TIMESTAMP——当前日期和时间

 EXTRACT——截取日期元素

5、转换函数

 CAST——类型转换

二、谓词

1、什么是谓词

2、LIKE谓词——字符串的部分一致查询

3、BETWEEN谓词——范围查询

4、IS NULL、IS NOT NULL——判断是否为NULL

5、IN谓词——OR的简便用法

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

7、EXIST谓词

三、CASE表达式

1、什么是CASE表达式

2、CASE表达式的语法

3、CASE表达式的使用方法

一、各种各样的函数

1、函数的种类

        函数,就是输入某一值(参数),得到相应输出结果(输出值)的功能。函数大致可分为以下几种类型:

        1、算数函数(用来作为数值计算的函数)

        2、字符串函数(用来进行字符串操作的函数)

        3、日期函数(用来进行日期操作的函数)

        4、转换函数(用来转化数据类型和值的函数)

        5、聚合函数(用来进行数据聚合的函数)

2、算术函数

        NUMEIC是大多数DBMS都支持的一种数据类型,通过NUMERIC(全体位数,全体小数)的形式来指定数值的大小。

sql">--DDL:创建表
CREATE TABLE SampleMath
(m  NUMERIC (10,3),
 n  INTEGER,
 p  INTEGER);

--DML:插入数据
BEGIN TRANSACTION;

INSERT INTO SampleMath(m, n, p) VALUES (500,  0,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (-180, 0,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (NULL, NULL, NULL);
INSERT INTO SampleMath(m, n, p) VALUES (NULL, 7,    3);
INSERT INTO SampleMath(m, n, p) VALUES (NULL, 5,    2);
INSERT INTO SampleMath(m, n, p) VALUES (NULL, 4,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (8,    NULL, 3);
INSERT INTO SampleMath(m, n, p) VALUES (2.27, 1,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (5.555,2,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (NULL, 1,    NULL);
INSERT INTO SampleMath(m, n, p) VALUES (8.76, NULL, NULL);

COMMIT;

-- 确认创建好的表
SELECT * FROM SampleMath;
sql">    m     | n | p
----------+---+---
  500.000 | 0 |
 -180.000 | 0 |
          |   |
          | 7 | 3
          | 5 | 2
          | 4 |
    8.000 |   | 3
    2.270 | 1 |
    5.555 | 2 |
          | 1 |
    8.760 |   |
 \blacksquare ABS——绝对值
sql">postgres=# SELECT m,
postgres-#        ABS(m) AS abs_col
postgres-#   FROM SampleMath;
    m     | abs_col
----------+---------
  500.000 | 500.000
 -180.000 | 180.000
          |
          |
          |
          |
    8.000 |   8.000
    2.270 |   2.270
    5.555 |   5.555
          |
    8.760 |   8.760
 \blacksquare MOD——取余

MOD(被除数,除数)

sql">postgres=# select n,p,
postgres-#        MOD(n,p) AS mod_col
postgres-#   FROM SampleMath;
 n | p | mod_col
---+---+---------
 0 |   |
 0 |   |
   |   |
 7 | 3 |       1
 5 | 2 |       1
 4 |   |
   | 3 |
 1 |   |
 2 |   |
 1 |   |
   |   |
 \blacksquare ROUND——四舍五入

ROUND(对象数值,保留小数的数值) 

sql">SELECT m, n,
       ROUND(m, n) AS round_col
  FROM SampleMath;

3、字符串函数

--创建SampleStr表(不做具体代码说明)

sql">   str1    | str2 | str3
-----------+------+------
 opx       | rt   |
 abc       | def  |
 山田      | 太郎 | 是我
 aaa       |      |
           | xyz  |
 @!#$%     |      |
 ABC       |      |
 aBC       |      |
 abc太郎   | abc  | ABC
 abcdefabc | abc  | ABC
 micmic    | i    | I
  \blacksquare ||——拼接

字符串1||字符串2

sql">SELECT str1, str2,
       str1 || str2 AS str_concat
  FROM SampleStr;
sql">   str1    | str2 |  str_concat
-----------+------+--------------
 opx       | rt   | opxrt
 abc       | def  | abcdef
 山田      | 太郎 | 山田太郎
 aaa       |      |
           | xyz  |
 @!#$%     |      |
 ABC       |      |
 aBC       |      |
 abc太郎   | abc  | abc太郎abc
 abcdefabc | abc  | abcdefabcabc
 micmic    | i    | micmici
sql">postgres=# SELECT str1, str2, str3,
postgres-#        str1 || str2 || str3 AS str_concat
postgres-#   FROM SampleStr
postgres-#  WHERE str1 = '山田';
 str1 | str2 | str3 |  str_concat
------+------+------+--------------
 山田 | 太郎 | 是我 | 山田太郎是我
 \blacksquare LENGTH——字符串长度

LENGTH(字符串)

sql">postgres=# SELECT str1,
postgres-#        LENGTH(str

http://www.niftyadmin.cn/n/5869376.html

相关文章

leetcode day22 59

59 螺旋矩阵 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2: 输入:…

AutoMQ 可观测性实践:如何使用 OpenTelemetry 监控 Kafka 和底层流存储

前言 我们在之前的文章里介绍了 AutoMQ 如何与 Prometheus、观测云[1]、夜莺监控[2]等后端进行集成并实现对 AutoMQ 的监控,本文将进一步介绍 AutoMQ 的可观测性架构,以及 AutoMQ 如何实现多云可观测性。 可观测架构 Apache Kafka 的 Server 侧主要依…

基于Springboot的小说网站【附源码】

基于Springboot的小说网站 效果如下: 系统主页面 书库信息页面 书籍详情页面 推荐信息页面 小说推荐页面 书库信息页面 小说排行榜页面 系统管理页面 研究背景 随着互联网技术的快速发展,网络文学逐渐成为一种新兴的文学形式,吸引了大量读…

实体机器人在gazebo中的映射

这一部分目的是将真实的机器人映射到gazebo中,使得gazebo中的其他虚拟机器人能识别到真实世界的wheeltec机器人。 真实机器人的型号的wheeltec旗下的mini_mec。 一、在wheeltec官方百度云文档中找到URDF原始导出功能包.zip 找到对应的包 拷贝到工作空间下 在原有…

【C++】深入理解List:双向链表的应用

凭时间赢来的东西,时间肯定会为之作证。 前言 这是我自己学习C的第七篇博客总结。后期我会继续把C学习笔记开源至博客上。 上一期笔记是关于C的vector类知识,没看的同学可以过去看看:【C】探索Vector:灵活的数据存储解决方案-CS…

图扑农牧林数据分析可视化平台:智慧农业的“数字大脑”

在现代农业的发展中,数据的价值不言而喻。图扑推出的农牧林数据分析可视化平台,正是为农业数字化转型而生。 图扑平台基于自研的HT for Web GIS技术,结合遥感和卫星观测,构建了一个完整的农牧林数据可视化生态系统。平台不仅支持地…

elfk+zookeeper+kafka​数据流

申请7台部署elfkzookeeperkafka 数据流: filebeat(每台app) ------>【logstash(2) kafka(3)】 -------> logstash(1) -------> 【elasticsearch(3) kibana(1)】

Redis 中有序集合(Sorted Set)的使用方法

文章目录 前言1. 有序集合的特点2. 常用命令2.1 添加元素(ZADD)2.2 获取元素分数(ZSCORE)2.3 获取元素排名(ZRANK / ZREVRANK)2.4 获取范围内的元素(ZRANGE / ZREVRANGE)2.5 获取分数…