WHERE子句
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
SELECT field1, field2,…fieldN FROM table_name1, table_name2…
[WHERE condition1 [AND [OR]] condition2…
LIKE子句
LIKE运算符用于WHERE表达式中,以搜索匹配字段中的指定内容,语法如下:(如果在需要区分大小写/中文的时候,可以加入BINARY操作符)
WHERE column LIKE pattern
WHERE column NOT LIKE pattern
like一条一条扫描,比较耗性能
正则表达式
下表中的正则模式可应用于 REGEXP 操作符中。
模式 | 描述 |
---|---|
^ | ^匹配字符串开始位置,如查询所有姓王的人名 |
$ | $匹配字符串结束位置,如查询所有姓名末尾是“明”的人名 |
. | 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式。 |
[…] | 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。 |
[^…] | 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。 |
p1|p2|p3 | 匹配 p1 或 p2 或 p3。例如,'z |
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
{n} | n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 |
分组
HAVING where_condition
注意
(1)假设表中没有大于35岁的
如果想保证having运行成功
必须保证他是聚合函数,要么保证having中的字段出现在查询中
现在即使没找到,也会运行成功
(2)
虽然说id不在查询内,但是它在聚合函数内,所以having是能成功运行的
排序
对查询结果进行排序
ORDER BY {col_name | expr| position} [ASC|DESC]
limit
LIMIT {[offset,] row_count | row_count OFFSET offset}]
offset从0 开始标识
比较运算符
select s1 from t1 where s1 > any (select s1 from t2);
-
假设any内部的查询语句返回的结果个数是三个,
那么, -
ANY关键字:any 可以与=、>、>=、<、<=、<>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据就返回true。否则为false。
-
ALL关键字:all可以与=、>、>=、<、<=、<>结合是来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据就返回true。否则为false。
-
SOME关键字:some和any一样的功能。
子查询
使用[NOT] IN的子查询
!=ALL或<>ALL与NOT IN等效功能。
使用[NOT] EXISTS 的子查询
如果子查询返回任何行数据,EXISTS将返回true,否则为false。
连接
内连接
左外连接
如果没有值 会显示为空
右外连接
如果外连接发现没有值 会显示为空
同时,如果设计时这个不允许为空,就会发生冲突,停止查找
在慕课网观看视频后的总结,但是它下架了,所以没有办法发链接了。