过滤数据(通过搜索条件):
|| WHERE 子句:后加条件语句可以按搜索条件过滤数据
|| WHERE子句后的搜索条件有关操作符
= / != / <> / != / > / < / BETWEEN…AND…
AND / OR / NOT / IN(OR的简易表示) /
|| 搜索条件中的优先级:AND优先级大于OR, 使用括号可以改变优先顺序
SELECT culomn_id
FROM tables
WHERE id = 10;
SELECT c_id, c_value
FROM tables
WHERE (c_id = 10 or c_id = 12) AND NOT c_value > 1000;
SELECT c_id, c_value
FROM tables
WHERE c_id NOT IN(1002, 1005);
过滤数据(通过搜索模式):
核心:使用“全串的简式找全串”
|| 什么是通配符:一种专门用来匹配值的一部分特殊字符
|| 什么是搜索模式:通配符,字面量或两者结合构成的特殊搜索条件,由 LIKE 引出,区分大小写
|| 通配符:%:%所在的一侧可以接纳任意个数的字符
|| 通配符:’ _ ’ :’ _ ’ 所在的一侧可以接纳一个字符
|| 关于通配符的建议:1,搜索慢,特别是通配符在搜索模式的开头时 2,%不可以搜索值为NULL的列
SELECT c_id, c_cvalue
FROM tables
WHERE c_id LIKE '_s%a'; // 'ab_x' '%abx_' '%aaa%'
搜索操作(使用正则表达式)
核心:使用“子串找全串”
|| 正则表达式就是个用于匹配文本的串儿,由特定含义的字符构成
|| REGEXP与 LIKE的区别:如果列与 LIKE ‘搜索模式’ 使用“全串的简式找全串”,而 **REGEXP ‘正则’**使用“子串找全串“,且正则不区分大小写!
—>单个匹配
|| 正则表达式中的单值元字符 ‘ .xxx ’ // ’ xxx|xxx ’ // ’ [xxx] ’ // ‘ [^xxx] ’
[xxx] == [x | x | x] // 其中的[]代表只占一位,类似只有特定数据的 .
[^xxx] //其中 "在括号内的^" 代表否定,(除了这些字符以外)
[0 - 9] = [0123456789] // 其中的 - 代表限定了范围
|| 若需要正则表达式中的特殊字符也作为匹配文本,使用 ’ \ \ '转义 ( 注意是右斜杠)
|| 转义字符本身也可以组成正则表达式 \f \n \t \r \v
|| 字符集 :[字符集] SQL中有预定义的字符集,如大写字母集?,数字集,ASCLL集,16进制集
—>多个匹配
|| 正则表达式中的重复元字符:* // + // ? // {n} // {n,} // {n, m}
* >> {0,} 0个匹配或无数个匹配
+ >> {1,} 1个或多个匹配
? >> {0, 1} 0个或1个匹配
—>定位匹配
|| 正则表达式中的定位元字符:^ // $ // [[:<:]] // [[:>:]]
^ >> 在“ 括号外的^ ”表示定位到文本的头匹配
$ >> 表示定位到文本的尾匹配
[[:<:]] >> 表示定位到词的头匹配
[[:>:]] >> 表示定位到词的尾匹配
|| 正则表达式的测试:REGEXP 总是返回0(匹配)或者1(不匹配)
SELECT ‘hello111’ REGEXP ‘[0-9]’;