1、SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句
select prod_name FROM products LIMIT 5;
LIMIT 5指示Mysql返回不多于5行。也可指定要检索的开始行和行数: LIMIT 5,5 表示返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
注:a)LIMIT检索出来的第一行为行0不是行1。因此,LIMIT 5,5 将检索出第6行至第10行。
b)LIMIT后的参数必须是整数常量,如果第二个参数指定返回记录行的最大数目时,行数不够,MySQL只返回实际行数。
c)LIMIT用于ORDER BY子句之后。
2、通配符
%表示任何字符出现任意次数,能匹配0个,1个或多个字符
_ 只能匹配单个字符
注:a)不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符
b)确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符至于搜索模式的开始处,搜索起来最慢。
3、正则表达式 用来匹配文本的特殊的串(字符集合)
REGEXP 后所跟的东西作为正则表达式。(学习几个)
‘.’表示匹配任意一个字符;
‘|’为正则表达式的OR操作符;
‘[]’匹配特定的字符,[123]定义一组字符,表示匹配1或2或3
LIKE 和 REGEXP之间的区别:
select prod_name
from products
where prod_name REGEXP '1000'
order by prod_name;
select prod_name
from products
where prod_name REGEXP '1000'
order by prod_name;
LIKE匹配整个列。如果被匹配的文本仅在列值中出现,LIKE将不会找到它,相应的行也不返回(除非使用通配符)。REGEXP 在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP 将会找到它,相应的行将被返回。
3组合查询
UNION操作符使用规则:
1)UNION必须有两条或两条以上的select语句组成,语句之间用关键字UNION分隔
2) UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的顺序列出)
3)列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型
UNION从查询结果中自动去除重复的行,如果想返回所有匹配行,可使用UNION ALL。
select语句的输出用 ORDER BY子句排序,在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条select语句之后。
例:
select vend_id,prod_id,prod_price
from products
where prod_price<=5
UNION
select vend_id,prod_id,prod_price
from products
where vend_id IN(1001,1002)
ORDER BY vend_id,prod_price;
使用UNION操作符可简化复杂的WHERE子句,简化从多个表中检索数据的工作。
正在看Mysql必知必会,欢迎指教。