当前位置: 首页 > news >正文

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

目录

一、各种各样的函数

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(全体位数,全体小数)的形式来指定数值的大小。

--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;
    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——绝对值
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(被除数,除数)

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(对象数值,保留小数的数值) 

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

3、字符串函数

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

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

字符串1||字符串2

SELECT str1, str2,
       str1 || str2 AS str_concat
  FROM SampleStr;
   str1    | str2 |  str_concat
-----------+------+--------------
 opx       | rt   | opxrt
 abc       | def  | abcdef
 山田      | 太郎 | 山田太郎
 aaa       |      |
           | xyz  |
 @!#$%     |      |
 ABC       |      |
 aBC       |      |
 abc太郎   | abc  | abc太郎abc
 abcdefabc | abc  | abcdefabcabc
 micmic    | i    | micmici
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(字符串)

postgres=# SELECT str1,
postgres-#        LENGTH(str

相关文章:

  • JavaScript 中的逻辑运算符
  • 项目实战--网页五子棋(匹配模块)(5)
  • 【网络安全 | 漏洞挖掘】Stripe 子系统 TaxJar 的 ATO 漏洞挖掘之旅
  • 【第五节】C++设计模式(创建型模式)-Prototype(原型)模式
  • 【NLP 23、预训练语言模型】
  • 码率和采样率
  • UE_C++ —— Gameplay Modules
  • C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化
  • 白帽黑客系列教程之Windows驱动开发(64位环境)入门教程(六)
  • Pytorch实现论文:基于多尺度融合生成对抗网络的水下图像增强
  • Python常见面试题的详解20
  • Starlink卫星动力学系统仿真建模第十讲-基于SMC和四元数的卫星姿态控制示例及Python实现
  • Hot100 贪心算法
  • Blob转Base64
  • 火绒终端安全管理系统V2.0网络防御功能介绍
  • VMware17下Ubuntu22.04设置本地共享文件夹
  • 大白话Vue2和Vue3 组件通信,方式有哪些,都有什么区别?
  • Linux System V - 消息队列与责任链模式
  • Web前端开发——HTML基础
  • Java 基本数据类型
  • 津南网站建设/爱链工具
  • 品牌商城网站开发/如何查看网站权重
  • 合肥网站制作模板推荐/登封网站设计
  • 公司做网站一般/百度如何发布作品
  • 做网站怎么租用服务器/百度云资源搜索平台
  • 传媒公司网站设计方案/比较正规的代运营