MySQL的一些记录

记录一些平时可能会遗忘的东西

拼接字段 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个触发器。