1. 算术运算符
算术运算符 | 描述 | 示例 |
+ | 加法运算符 | SELECT A+B |
- | 减法运算符 | SELECT A-B |
* | 乘法运算符 | SELECT A*B |
/ | 除法运算符 | SELECT A/B |
% | 取余运算符 | SELECT A%B |
1.1 加法与减法操作符
SELECT 100,100+11,100-11,100+23.0,100-23.0
运算结果
由此得出结论:
-
一个整数加上或者减去一个整数结果还是一个整数
-
一个整数加上或者减去一个浮点数结果是一个浮点数
-
在PostgreSQL中+只表示数值相加,如果遇到非数值类型,先尝试转化成数值,如果转失败,则直接报错。
SELECT 100+'1';
如果想实现连接使用||操作符
1.2 乘法与除法运算符
SELECT 100,100*1,100*1.0,100/1.0,100.0/1,100+2*5/2,100/3;
由此可知:
一个数乘以1和除以1后仍得原数
一个数乘以浮点数和除以浮点数后变成浮点数
一个整数数除以浮点数或者一个浮点数除以一个整数,结果的小数位为16位。
两个整数相处结果为整数
select 1/0;
在PostgreSQL中,0不能作为除数,会报错。
1.3 取模运算符
select 12%3,12.0%5,12%5.0,12%5,0.0%5,0%5.0||'';
由此可知:
两个整数取模结果为整数,
整数与浮点数取模结果为浮点数
0%整数结果为整数0,取模浮点数结果为浮点数。取模的优先级大于连接操作符的优先级
不能取模0,PostgreSQL会报错
2. 比较运算符
比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较结果为真则返回true,比较结果为假则返回false,其他情况返回NULL。
比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的记录。
比较运算符 | 描述 | 示例 |
= | 等于 | manager_id = 100 |
!= | 不等于 | department_id != 50 |
<> | 不等于 | job_id <> 'SA_REP’' |
> | 大于 | salary > 10000 |
>= | 大于等于 | hire_date >= '2007-01-01' |
< | 小于 | salary < 15000 |
<= | 小于等于 | employee_id <= 123 |
2.1 等号运算符
等号运算符(=)判断等号两边的值、字符串或表达式是否相等,如果相等返回true,不等返回false
在使用等号运算时,遵循如下规则:
-
等号两边的值都是整数,按照数值大小比较
-
等号两边的值一个是整数,另一个是字符串,则将字符串转化为整数,按照数值比较
-
等号两边的值有一个是NULL,则结果为NULL
SELECT 1 = 1, 1 = '1', 1 = 0, 'a' = 'a', (5 + 3) = (2 + 6), '' = NULL , NULL = NULL;
2.2 不等于运算符
不等于运算符(<>和!=)用于判断两边的数字、字符串或者表达式的值是否不相等,如果不相等则返回true,相等则返回false。不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL,或两边都为NULL,则结果为NULL。 SQL语句示例如下:
SELECT 1 <> 1, 1 != 2, 'a' != 'b', (3+4) <> (2+6), 'a' != NULL, NULL <> NULL;
2.3 空运算符
空运算符(IS NULL)判断一个值是否为NULL,如果为NULL则返回true,否则返回 false。 SQL语句示例如下:
SELECT NULL IS NULL, 1 IS NULL;
2.4 非空运算符
非空运算符(IS NOT NULL)判断一个值是否不为NULL,如果不为NULL则返回true,否则返 回false。 SQL语句示例如下:
SELECT NULL IS NOT NULL, 'a' IS NOT NULL, 1 IS NOT NULL;