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 | | 32.270 | 1 |5.555 | 2 || 1 |8.760 | |
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.0002.270 | 2.2705.555 | 5.555|8.760 | 8.760
MOD——取余
MOD(被除数,除数)
postgres=# select n,p,
postgres-# MOD(n,p) AS mod_col
postgres-# FROM SampleMath;n | p | mod_col
---+---+---------0 | |0 | || |7 | 3 | 15 | 2 | 14 | || 3 |1 | |2 | |1 | || |
ROUND——四舍五入
ROUND(对象数值,保留小数的数值)
SELECT m, n,ROUND(m, n) AS round_colFROM SampleMath;
3、字符串函数
--创建SampleStr表(不做具体代码说明)
str1 | str2 | str3
-----------+------+------opx | rt |abc | def |山田 | 太郎 | 是我aaa | || xyz |@!#$% | |ABC | |aBC | |abc太郎 | abc | ABCabcdefabc | abc | ABCmicmic | i | I
||——拼接
字符串1||字符串2
SELECT str1, str2,str1 || str2 AS str_concatFROM SampleStr;
str1 | str2 | str_concat
-----------+------+--------------opx | rt | opxrtabc | def | abcdef山田 | 太郎 | 山田太郎aaa | || xyz |@!#$% | |ABC | |aBC | |abc太郎 | abc | abc太郎abcabcdefabc | abc | abcdefabcabcmicmic | 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
------+------+------+--------------山田 | 太郎 | 是我 | 山田太郎是我
LENGTH——字符串长度
LENGTH(字符串)
postgres=# SELECT str1,
postgres-# LENGTH(str