Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

由于有编程基础,因此对于这一章仍是很好理解,只须要注意对NULL的运算。
操做的表格
sql

算数运算符

查询商品名字和商品售价,并商品售价乘2编程

SELECT product_name,sale_price * 2 AS "sale_price * 2" 
FROM Product;


查询商品名字,并查询商品利润code

SELECT product_name,sale_price-purchase_price AS "利润" 
FROM Product;


加法和除法也是同样的操做,注意包含NULL的运算结果都是NULL。blog


比较运算符

运算符:
等于:=
不等于:<>
大于等于>=
大于:>
小于等于:<=
小于:<
好比查询售价大于1000的商品。字符串

SELECT product_name,sale_price 
FROM Product
WHERE sale_price>1000;


查询2019年1月4日以前登记的商品class

SELECT product_name,regist_date 
FROM Product
WHERE regist_date<to_date('2019-1-4','yyyy-mm-dd');


注意

对字符串进行比较查询时,如 1,2,3,10,15,123,32按照字符串类型储存时,按照从小到大的顺序排列是:1<10<123<15<2<3<32。
由于字符串的比较是先比较首位,1,10,123的首位1比2,3,32的首位小。若是首位相同,就比较下一位。
不能对NULL使用比较运算符。好比查询售价<>2800的商品名字,售价为NULL的的记录不会被选取。一样,若是要查询售价为NULL的商品名字,也特殊一点。基础

SELECT product_name, purchase_price
FROM Product
WHERE purchase_price IS NULL;


或者用IS NOT NULL查询不为空的记录。date

逻辑运算符

这部分很简单,平时都有用到,因此只列几个列子。im

  • AND运算符
    查询分类为厨房用具,而且售价大于1000的记录:
SELECT *
FROM Product
WHERE product_type='厨房用具' AND sale_price>1000;

  • NOT运算符
    查询分类不为办公的记录:
SELECT *
FROM Product
WHERE NOT product_type='办公';

  • OR运算符
    查询售价大于3000.或者小于1000的记录:
SELECT *
FROM Product
WHERE  sale_price>3000 OR sale_price<1000;

  • 组合使用
    查询厨房用品中,售价大于3000或者小于1000的记录:
SELECT *
FROM Product
WHERE  product_type='厨房用具' AND (sale_price>3000 OR sale_price<1000);

  • NULL的区别对待。 在逻辑运算中,除了真与假,还有第三种状况。不肯定(UNKNOWN),真值表:
相关文章
相关标签/搜索