记录一些平时可能会遗忘的东西
拼接字段 Concat
注意
多数DBMS使用 + 或 || 来实现拼接,MySQL则使用 Concat() 函数来实现。当把SQL语句转换成 MySQL语句时一定要把这个区别铭记在心。
使用
分组GROUP BY 过滤分组 HAVING
注意
GROUP BY 子句必须出现在 WHERE 子句之后, ORDER BY 子句之前。
使用
加上过滤
外部联结
外部联结语句有三种
inner join, left outer join 和 right outer join
都可以简写,分别为join,left join,right join。
等值连接 JOIN
只返回两个表中联结字段相等的行
左连接 LEFT JOIN
返回包括左表中的所有记录和右表中联结字段相等的记录
右连接 RIGHT JOIN
返回包括右表中的所有记录和左表中联结字段相等的记录
组合查询 UNION /UNION ALL
利用 UNION ,可给出多条SELECT 语句,将它们的结果组合成单个结果集。
UNION ALL 不过滤重复行
UNION 过滤重复行
全文本搜索 FULLTEXT 索引
注意
从MySQL5.6版本开始支持InnoDB引擎的全文索引
InnoDB引擎的全文本搜索只支持text类型
char的上限为255字节,varchar的上限65535字节,text的上限为65535。
char在存储的时候会截断尾部的空格,varchar和text不会。
varchar会使用1-3个字节来存储长度,text不会。
中文需要做分词,或者拼音分词。
额外一点小知识
Like与Instr模糊查询性能比较
https://blog.csdn.net/ljj2312/article/details/78217752
视图
CREAT VIEW myview AS SELECT xxxxx
存储过程
游标
MySQL游标只能用于存储过程(和函数)。主要用在循环处理、存储过程、函数中使用,用来查询结果集。
创建游标 打开关闭游标
触发器
只有表才支持触发器,视图不支持(临时表也不
支持)。每个表最多支持6个触发器。