mysql join规则?
MySQL的join用法主要有三种:inner jon 内连接,left join 左连接,right join 右连接。
内连接又叫等值连接,此时的inner可以省略。获取两个表中有匹配关系的记录,即两表取交集。
以左表为基础,获取匹配关系的记录,如果右表中没有匹配项,NULL表示。
以右表为基础,获取匹配关系的记录,如果左表中没有匹配项,NULL表示。
如何使用MySQL中的实用函数及查询技巧?
mysql常用的函数包括数学函数,字符串函数,日期相关函数,加密函数等,你挨个尝试一下应该都能掌握了。至于查询技巧,你可以建几个表尝试一下left join,inner join,union all等,尝试一下行转列,列转行,尝试一下分页查询的写法。
总之,很多东西还是要在实际的项目中多用,自然就能熟练,也不必着急。
希望我的回答能给您带来帮助…
1.函数CONCAT使用场景:查询时把多个字段拼接成一个字符串;2.函数IFNULL 使用场景:查询时判断字段是否为空,如果为空则取第二个默认参数,不为空则取表中数据;3.函数COALESCE使用场景:查询时判断字段是否为空,如果字段为空则取从第二个参数开始不为空的值,字段不为空则取表中数据;4.REPLACE使用场景:查询时替换字段中的指定字符;5.函数FIND_IN_SET使用场景:指定字符在字段中是否存在,这类字段都有一个特点,就是会有多个值,以 ','(英文逗号)分隔;6.函数CASE使用场景:一张表中有 state 字段,取值为 0(禁用) 或 1(启用),但是想在查询结果中分别显示对应的中文汉字;7.函数GROUP_CONCAT使用场景:假如有一张产品表,一张产品标签表以及一张产品标签关联表,想查出每个产品对应的多个产品标签 id;8.函数DATE_FORMAT使用场景:格式化时间;9.函数TIMESTAMPDIFF使用场景:求出时间差。
查询技巧:比较运算符能用 “=”就不用“<>”;明知只有一条查询结果,那请使用 “LIMIT 1”;为列选择合适的数据类型;将大的DELETE,UPDATE or INSERT 查询变成多个小查询;使用UNION ALL 代替 UNION,如果结果集允许重复的话;为获得相同结果集的多次执行,请保持SQL语句前后一致;尽量避免使用 “SELECT *”;WHERE 子句里面的列尽量被索引;JOIN 子句里面的列尽量被索引; ORDER BY 的列尽量被索引;使用 LIMIT 实现分页逻辑;使用 EXPLAIN 关键字去查看执行计划。
这是平日总结的,可以参考下
还没有评论,来说两句吧...