1.连接查询
场景:
A-----从表
B-----主表
C-----主表
B,C两表的主键都是A表的外建。
现在要查数据,直接查A表,查到的是B和C表的ID,如何找到对应的B表C表数据呢?
使用left jon on
SELECT a.name,
b.NAME AS MODEL,
c.`NAME` AS PLACE
FROM itsm_ci a
LEFT JOIN itsm_ci_model b ON a.MODEL=b.RESOURCEID
LEFT Join itsm_ci_position c ON a.PLACE=c.RESOURCEID
2.一张表:有班级,姓名,成绩三个字段。现在需要做查询,查询每个班级最高成绩的:姓名,班级,成绩。
SELECT name,score,class from sco WHERE score in (select max(score) FROM sco GROUP BY class)
思路:先分组查询每个班级的最高成绩,然后,查询在这个成绩里的人。
3:慢查询日志的配置:windows下:my.ini文件
[mysqld]下添加:
log_slow_queries=ON //表示开启慢查询日志
long_query_time=2 //表示超过两秒的查询将会被记录
slow_query_log=ON //表示开启慢查询日志
log_queries_not_using_indexes=ON //没有使用索引的将会被记录
slow_query_log_file="C:/Program Files/MySQL/MySQL Server 5.5/data/mysqldata/slow-query.log" //慢查询日志的位置
相关命令的操作:
1.查看慢查询的数量:show global status like '%slow%';
2.查看慢查询制定多少时间:show variables like '%long%';
3:查看慢查询状态:show variables like '%slow%';