SELECT 语句检索一个或多个列
SELECT col_name FROM table_name;
SELECT col_name1, col_name2, ... FROM table_name;
SELECT * FROM table_name;
SELECT DISTINCT col_name ...; # 返回值不同的行可以使用LIMIT row_start, row_num来限制输出数目,另一种形式为LIMIT row_num OFFSET row_start。
如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。
SELECT col_name
FROM table_name
ORDER BY some_col_name; # 可以与选择列不同,也可以是多列
ORDER BY some_col_name DESC; # 逆序排列,DESC关键字只应用到直接位于其前面的列名一个例子,用来寻找最高价格:
SELECT col_name
FROM table_name
WHERE condition在同时使用 ORDER BY 和 WHERE 子句时,应该让 ORDER BY 位于 WHERE 之后。 WHERE 条件:
注意:NULL 不能被等于或不等于条件选出。
可以使用AND,OR, NOT和IN。
# and
WHERE condition1 AND condition2
# or
WHERE condition1 OR condition2
# not
WHERE NOT condition1
# in
WHERE col_name in (item1, item2,...)WHERE col_name LIKE search_pattern # search_pattern 是一个字符串搜索区分大小写。
%: 表示任何字符出现任意次数。不能匹配 NULL。_: 只匹配单个字符。
WHERE col_name REGEXP search_pattern # search_pattern 是一个字符串MySQL 只支持少部分的正则表达式。 单个字符匹配:
.: 任意一个字符。|: 搜索两个串之一(或者为这个串,或者为另一个串)。[]: 匹配几个字符之一。[123]是[1|2|3]的缩写。[]只能匹配单个字符,不能匹配字符串。可以使用-匹配范围,如[123456789]简写成[1-9]。
正则表达式默认只需要匹配列值的一部分,而 LIKE 需要匹配整个列值。
正则表达式默认不区分大小写,如要区分,需要在 search_pattern 前加上 BINARY。
转义使用\\。
可以自定义字符类方便查找:
使用重复元字符:
定位符:






