谓词
对于通常的函数来说,返回值有可能是数字、字符串 或者 日期,但是谓词的 返回值全都是真值 (TRUE、FALSE、UNKNOWN),这也是 谓词 和 函数 的最大区别
‘ddd%’ 是代表 以 ddd 开头的所有字符串
SELECT *<br /> FROM Sampletable <br /> WHERE strcol LIKE '%ddd%';<br /> *在字符串的起始和结束位置 加上 %,就能取出 包含 ddd 的字符串 了
此外,可以使用下划线 _ 来代替 %,与%的不同之处在于,它代表了 ‘任意1个字符’
SELECT *<br /> FROM Sampletable<br /> WHERE strcol LIKE 'abc__';<br /> * 选取出 strcol 列的值为 abc+任意2个字符 的记录
使用 BETWEEN AND 可以进行范围查询
SELECT product_name, sale_price<br /> FROM Product<br /> WHERE sale_price BETWEEN 100 AND 1000;<br /> *从product 中读取出 销售单价 sale_price 为100 元到1000元之间的商品
BETWEEN AND 的特点是 结果中 会包含 100 和 1000 两个临界值
如果不想让结果中包含临界值,那就必须使用 < 和 >
SELECT product_name, sale_price<br /> FROM Product<br /> WHERE sale_price > 100<br /> AND sale_price < 1000;
选取出某些值 为 NULL 的列的数据,不能使用 = ,只能使用 特定谓词 IS NULL
SELECT product_name, purchase_price<br /> FROM Product<br /> WHERE purchase_price IS NULL;
想要选取 NULL 以外的数据时,需要使用 IS NOT NULL
SELECT product_name, purchase_price<br /> FROM Product<br /> WHERE purchase_price IS NOT NULL;
IN 谓词 与 OR 的 简便用法
SELECT product_name, purchase_price
FROM Product
WHERE purchase_price = 320
OR purchase_price = 500
OR purchase_price = 5000;
可以使用 IN 谓词 来替代上述 SQL 语句
SELECT product_name, purchase_price<br /> FROM Product<br /> WHERE purchase_price IN (320, 500, 5000);
否定形式则用 NOT IN
使用子查询作为 NOT IN 的参数
SELECT product_name, sale_price<br /> FROM Product<br /> WHERE product_id NOT IN ( SELECT product_id<br /> FROM ShopProduct<br /> WHERE shop_id = '000A');
*选取出在东京店 (000A) 以外销售的商品 product_id 的 销售单价 sale_price
