因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。
操作的表格
算数运算符
查询商品名字和商品售价,并商品售价乘2
SELECT product_name,sale_price * 2 AS "sale_price * 2"
FROM Product;
查询商品名字,并查询商品利润
SELECT product_name,sale_price-purchase_price AS "利润"
FROM Product;
加法和除法也是一样的操作,注意包含NULL的运算结果都是NULL。
比较运算符
运算符:
等于:=
不等于:<>
大于等于>=
大于:>
小于等于:<=
小于:<
比如查询售价大于1000的商品。
SELECT product_name,sale_price
FROM Product
WHERE sale_price>1000;
查询2019年1月4日之前登记的商品
SELECT product_name,regist_date
FROM Product
WHERE regist_date
注意
对字符串进行比较查询时,如 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查询不为空的记录。
逻辑运算符
这部分很简单,平时都有用到,所以只列几个列子。
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),真值表: