PostgreSQL基础4--算术运算符、比较运算符和逻辑运算符

时间:2021-02-05 17:20:49

1 算术运算符(+ - * /)

SELECT product_name, sale_price, sale_price * 2 AS "sale_price_2" FROM product;

PostgreSQL基础4--算术运算符、比较运算符和逻辑运算符

可以看出所查出数据的第三列是计算得到2倍的sale_price。此外需要注意NULL的计算,计算结果都是NULL。

2 比较运算符 (=  <>  >=  >  <=  <)

SELECT product_name, product_type FROM product WHERE sale_price = 500;
查询出sale_price大于500的数据,展示出对应数据的product_name和product_type

SELECT product_name, product_type FROM product WHERE sale_price <> 500;
查询出sale_price不等于500的数据,展示出对应数据的product_name和product_type

SELECT product_name, product_type, regist_date FROM product WHERE regist_date >= '2017-08-08';
查询出regist_date为2017-08-08以及此日期之后的数据

注意:对字符串类型的数据进行比较时,是按照字典顺序进行比较,比如'10'小于'2'

此外,选取值为NULL的话,不可以用<>,而是用下面的方法

SELECT product_name, purchase_price FROM product WHERE purchase_price IS NULL;
PostgreSQL基础4--算术运算符、比较运算符和逻辑运算符

同理,选取值为不是NULL的数据,使用IS NOT NULL。

3 逻辑运算符

3.1 NOT 运算符用于否定某一条件,所以它不能单独使用,需要和其它查询条件配合使用,比如

SELECT product_name FROM product WHERE NOT sale_price >= 1000;
等价于sale_price < 1000的数据。

3.2 AND 运算符,在其两侧的查询条件都成立是整个查询条件才成立,相当于并且

SELECT product_name FROM product WHERE product_type = '厨房用具' AND sale_price >= 3000;

查询出是厨房用具并且价格大于等于3000的数据

3.3 OR 运算符,查询出符合两侧条件任一条件的数据,相当于或者

SELECT product_name FROM product WHERE product_type = '厨房用具' OR sale_price >= 3000;
查询出是厨房用具或者价格大于等于3000的数据

注意:AND运算符优先于OR运算符,例如

SELECT product_name FROM product WHERE product_type ='办公用品' AND regist_date ='2017-08-09' OR regist_date = '2017-08-15';
条件是满足为办公用品且日期为2017-08-09的,或者日期是2017-08-15的。