MySQL查询在一张表不在另外一张表的记录

假设有A、B两张表。 如果查询在A表中存在,但是在B表中不存在的记录,应该如何操作? 1 示例数据 假设A表数据: +----+ | id | +----+ | 1 | | 2 | | 3 | | 4 | | 5 | +----+ B表数据: +----+------+ | id | a_id | +----+------+ | 1 | 3 | +----+------+ 其中,B表中的a_id是需要排除的A表的id。 这里我们要排除A表中id为3的记录,实…

MySQL Explain 解析

一、语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二、explain输出解释 +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+ | id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra | +---…

MySQL批量修改

mysql更新语句很简单,更新一条数据的某个字段,一般这样写:  UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: UPDATE mytable SET myfield = 'value' WHERE other_field in ('other_values'); 这里注意,other_values是一个逗号,分隔的字符…

MySQL查看实时执行的SQL语句

MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录。 mysql> SHOW VARIABLES LIKE "general_log%"; 如下general_log值为OFF说明没有开启: +------------------+----------------------------------+ | …

MySQL慢查询

1 概念 MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。 具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。 long_query_time的默认值为10,意思是记录运行10秒以上的语句。 默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参…

MySQL5.7修改默认root密码

MySQL5.7 开始,增加了很多安全性的更新,老版本的用户可能会有一些不习惯。 5.7.6 版本以后,首次安装并启动MySQL数据库时,会生成一个临时密码到日志文件。如下: $ cat /var/log/mysqld.log | grep 'password' 2016-12-10T06:30:12.041470Z 1 [Note] A temporary password is generated for root@localhost: nWoo>o0rXtr4 临时密…

MySQL选择性复制表数据

在MySQL中,用什么命令可以实现选择性复制表数据吗? 比如,从A表查询id、name的所有数据, 插入到表B的a_id、name。 可以的,而且很方便,组合INSERT和SELECT命令就行。 1 读取一个表 假设有表 order,要读取表 user 中部分字段的所有值,并插入到表中。命令如下: INSERT INTO order(title, description, update_time) SELECT name, d…

MySQL Utilities管理工具介绍

MySQL Utilities提供了一系列MySQL服务器和数据库的管理工具。 完全支持MySQL5.1及以上版本,也兼容MySQL5.0版本,不过有些特性不支持。 不支持MySQL4.0版本。 下面这些工具工作在数据库级别,可以用来管理一个或多个服务器的数据库。 1 mysqldbcompare 比较两个服务器或同个服务器上的数据库 比较定义文件和数据 产生差异报告 生成差异…

mysqldbcompare MySQL数据库比较工具

mysqldbcompare用于比较两个服务器或同个服务器上的数据库,有文件和数据,并生成差异性SQL语句。 要比较数据表,请用另外一个工具:mysqldiff(点击查看教程)。 以下是mysqldbcompare的用法。 1 安装 mysqldbcompare是MySQL Utilities中的一个脚本,默认的MySQL不包含工具集,所以需要独立安装。 MySQL Utilities下载地址:http://dow…

MySQL批量插入数据

MySQL插入多条数据有二种方法,一种是写多条insert语句,再用逗号;分割每条语句,另外一种是用insert一次性赋多个值。 1 多条语句 写多条insert,用同数量的;号隔开,让MySQL执行多次。比如: insert into table (field1, field2, field3) value ("a", "b", "c"); insert into table (field1, field2, field3) value ("d", "e", "f"); in…