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

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

http://www.kler.cn/a/561074.html

相关文章:

  • Go入门之struct
  • HTTP代理与HTTPS代理的区别及HTTPS的工作原理
  • Redis——用户签到BitMap,UV统计
  • 【SpringBoot AI 集成DeepSeek 大模型API调用】
  • 算法题(76):跳跃游戏II
  • 【Bug经验分享】Postgresql 项目链接不上,JDBC及Datasource可以连接,Navicat也可连接
  • JS宏进阶:数据分析之线性回归
  • 【Jenkins】显示 HTML 标签
  • 什么是事务?并发事务引发的问题?什么是MVCC?
  • 如何使用Spring Boot实现商品的管理系统
  • 嵌入式Modbus协议面试题及参考答案
  • Shell脚本基础:用Bash自动化任务
  • 【行业解决方案篇五】【DeepSeek智慧城市:交通流量预测系统】
  • 软考——WWW与HTTP
  • akka现有的分布式定时任务框架总结
  • leetcode 1656. 设计有序流 简单
  • Nginx解决前端跨域问题
  • LD_PRELOAD 绕过 disable_function 学习
  • JavaWeb-在idea中配置Servlet项目
  • 为什么要将PDF转换为CSV?CSV是Excel吗?