MYSQL笔记(2)

作者: 木子兜兜 | 来源:发表于2019-01-26 16:19 被阅读3次

    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)

        本文链接:https://www.haomeiwen.com/subject/rhpijqtx.html