MYSQL笔记(2)

1.SELECT pro_name FROM products LIMIT5,5
LIMIT后面第一个数为开始位置,第二个数为要检索的行数,LIMIT 5, 5指示MySQL返回从行5(第一行序号是0,所以5实际是第6行)开始的5行。
LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样

2.也是通配符,与%一样,但是%可以匹配多个字符,但是只能匹配一个,不多也不少

3.LIKE和REGEXP的区别
LIKE匹配整个列。如果被匹配的文本仅在列值中出现,LIKE并不会找到它,相应的行也不会返回(使用通配符除外)。而REGEXP在列值内进行匹配,如果被匹配的匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回(如果适应定位符号^和$,可以实现REGEXP匹配整个列而不是列的子集)。
e.g.如果表products中的列pro_name有两个数据,分别是Jetpack 1000和Jetpack 2000
select pro_name from products where pro_name like '1000'
select pro_name from products where pro_name REGEXP '1000'
如果执行上述两条语句,会发现第一条语句不返回数据,而第二条语句返回一行。

4.count()与count(1)的区别
一般情况下select count(
) 与select count(1)两者返回的结果一致。但是针对表中主键的有无,情况会有不同。
无主键:count(1)比count()快
有主键:count(主键)最快
count(
)与count(1)都包括null统计,而count(column)不包括null统计,即如果指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果COUNT(*),则不忽略。

5.Concat()拼接串,即把多个串连接起来形成一个较长的串,各个串之间用逗号分隔。
e.g.concat(A,'(',B,')')------->A(B)

6.RTrim()(去掉串右边的空格),LTrim()(去掉串左边的空格),Trim()(去掉串左右两边的空格)

7.SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。
SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较
e.g.资料中有个客户名叫Y.Lee,但其实是输入错误,他的正确名字是Y.Lie,要是用正确的名字查找显然是查找不到的,但可以用SOUNDEX函数查找。
select * from customers where Soundex(cust_contact)=Soundex('Y.Lie');

8.UNION默认去重,如果想返回所有匹配行,可使用UNION ALL而不是UNION。

你可能感兴趣的:(MYSQL笔记(2))