1. distinct:去重。不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。除非指定的多个列都不同,否则所有行都将被检索出来。
2. limit:限制行,返回第一行或者前几行。
limit 5:返回不多于5行
limit 5, 5(limit 5 offset 5):返回从行5开始的5行(从0开始)
3. order by:排序用select 语句检索出的数据,order by子句取一个或多个列的名字,据此对输出进行排序。在按多个列排序时,排序完全按所规定的顺序进行,先按照第一个进行排序,再下一个,以此类推。(使用order by和limit的组合,能够找出一个列中最高或最低的值。在给出order by子句时,应该保证它位于from子句之后。如果使用limit,它必须位于order by之后。在同时使用rder by和where子句时,应该让rder by位于where之后)
4. desc:可以使order by子句以降序顺序排序。desc关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序, 必须对每个列指定desc关键字。与desc相反的关键字是asc, 在升序排序时可以指定它,不过是默认的,不指定也可以。
5. 在处理OR操作符前,优先处理AND操作符.
6. not:WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。MySQL 支 持 使 用 NOT 对 IN 、 BETWEEN 和 EXISTS子句取反。
7. 为在搜索子句中使用通配符,必须使用LIKE操作符。(MySQL中,搜索时区分大小写的)
① %表示任何字符出现任意次数。%通配符可以匹配任何东西,但有一个例外,即NULL
② (_)下划线只匹配单个字符而不是多个字符
8. 正则表达式:匹配文本,将一个模式(正则表达式)与一个文本串进行比较。MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字。
① REGEXP:匹配字符串。与LIKE的区别:LIKE匹配整个列。如果被匹配的文本在列值中出现, LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现, REGEXP将会找到它,相应的行将被返回。
② |:搜索两个串之一(或者为这个串,或者为另一个串)
③ []:匹配任何单一字符
④ \\:匹配特殊字符,需要在特殊字符前面加\\
9. Concat():拼接串,即把多个串连接起来形成一个较长的串。
10. RTrim():函数去掉值右边的所有空格
11. GROUP BY:分组。
① GROUP BY子句可以包含任意数目的列。这使得能对分组进行嵌套,为数据分组提供更细致的控制。
② 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组上进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。
③ GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在
④ GROUP BY子句中指定相同的表达式。不能使用别名。除聚集计算语句外, SELECT语句中的每个列都必须在GROUP BY子
句中给出。
⑤ 如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。
⑥ GROUP BY子句必须出现在WHERE子句之后, ORDER BY子句之前。
12. HAVING:数据分组后进行过滤。