MySQL学习笔记(2)

MySQL学习笔记(2)_第1张图片


过滤数据(通过搜索条件):

|| 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];

你可能感兴趣的:(learning,mysql)