比较运算符的正式名称是谓词,谓词的返回值都是真值(TRUE/FALSE/UNKNOWN)。
谓词的作用:“判断是否存在满足某种条件的记录”。如果存在这样的记录就返回真(TRUE),如果不存在就返回假(FALSE)
LIKE:字符串的部分一致查询
当需要进行字符串的部分一致查询时需要使用谓词LIKE。
-- 创建SampleLike表
CREATE TABLE SampleLike(
strcol VARCHAR(6) NOT NULL,
PRIMARY KEY (strcol)
);
-- 插入数据
START TRANSACTION;
INSERT INTO SampleLike (strcol) VALUES ('abcddd');
INSERT INTO SampleLike (strcol) VALUES ('dddabc');
INSERT INTO SampleLike (strcol) VALUES ('abdddc');
INSERT INTO SampleLike (strcol) VALUES ('abcdd');
INSERT INTO SampleLike (strcol) VALUES ('ddabc');
INSERT INTO SampleLike (strcol) VALUES ('abddc');
COMMIT;
-- 确认表内容
SELECT * FROM SampleLike;
从该表中读取出包含字符串“ddd”的记录时,可能会得到前方一致、中间一致和后方一致等不同的结果。
1.前方一致:选取出“dddabc”
2.中间一致:选取出“abcddd”“dddabc”“abdddc”
3.后方一致:选取出“abcddd”
-- 使用LIKE和%前方一致查询
-- %是代表“0字符以上的任意字符串”的特殊符号
SELECT *
FROM SampleLike
WHERE strcol LIKE 'ddd%';
-- 使用LIKE和%中间一致查询
SELECT *
FROM SampleLike
WHERE strcol LIKE '%ddd%';
-- 使用LIKE和%后方一致查询
SELECT *
FROM SampleLike
WHERE strcol LIKE '%ddd';
-- 使用LIKE和_(下划线)进行后方一致查询
-- 下划线表示“任意1个字符”
SELECT *
FROM SampleLike
WHERE strcol LIKE 'abc__';
模式匹配:不使用“=”来指定条件字符串,而以字符串中是否包含该条件的规则为基础的查询。
模式:用于匹配的规则。
BETWEEN:范围查询
BETWEEN 的结果中包含两个临界值。如果不想让结果包含临界值,需要使用<
和>
。
-- 包含临界值:选取销售单价为100 ~ 1000元的商品