• 基本概念篇

SQL语言的4种分类(DDL、DML、DCL、DQL)

对应的英文全程:data (definition、manipulation、control、query)language

参考资料:

https://www.cnblogs.com/kawashibara/p/8961646.html

总结:

DDL操作对象是库表

DML、DQL操作对象是记录

DCL操作对象是用户

DDL包括:create,drop,alter

create database/table/index/view

drop database/table/index/view

alter table

create database qa_test;
create database qa_test2;
create database qa_test3; create table qa_test.t1(id int);
create table qa_test.t2(id int primary key, id2 int);
create table qa_test.t3(id int, id2 int, id3 int); create index idx_a on qa_test.t1(id);
create unique index idx_a on qa_test.t3(id3);
create view see_t1 as select * from qa_test.t1; alter table qa_test.t1 drop index idx_a;
alter table qa_test.t1 add primary key(id);
alter table qa_test.t1 add id2 int;
alter table qa_test.t1 add id3 int;
alter table qa_test.t2 drop primary key(id); drop table qa_test.t2;
drop database qa_test2;
drop view see_t1;

  

DML包括:insert,delete,update

insert into ... values ...

insert into ... select * from ...

delete from .. where

delete from ...

update ... set ... where ...

update ... set ...

create database qa_ddl;
create table qa_ddl.t(id int);
insert into qa_ddl.t values(1),(2),(3);
update qa_ddl.t set id = 10 where id >2;
delete from qa_ddl.t where id = 1;
create table qa_ddl.t2(id int, id2 int, id3 int);
insert into qa_ddl.t2 values(1,2,3),(2,3,4);
insert into qa_ddl.t2 select * from qa_ddl.t2;
insert into qa_ddl.t2(id, id2) values (100,200);

DCL包括:grant,revoke,commit,rollback

DQL包括:select,from,where

select * from ... where ...

create database qa_ddl;
create table qa_ddl.t(id int);
insert into qa_ddl.t values(1),(2),(3);
update qa_ddl.t set id = 10 where id >2;
delete from qa_ddl.t where id = 1;
create table qa_ddl.t2(id int, id2 int, id3 int);
insert into qa_ddl.t2 values(1,2,3),(2,3,4);
insert into qa_ddl.t2 select * from qa_ddl.t2;
insert into qa_ddl.t2(id, id2) values (100,200); select * from qa_ddl.t2;

数据库的log

分类5个:err-log,general-log,bin-log,slow-log,relay-log

有时候还有DDL log

参考资料:

https://www.cnblogs.com/f-ck-need-u/p/9001061.html#blog5

https://dev.mysql.com/doc/refman/5.7/en/server-logs.html(mysql官方文档)

这5种log都是什么用途?(下图摘自mysql官方文档)

binlog在什么时候更新?

mysql>flush logs;  执行后,关闭旧的binlog,打开新的binlog。

my.cnf中的log参数配置

#=============== [error/general/slow log options] ==============================================
log-error-verbosity = 1
log-error = /usr/local/nestdb_master/log/mysql.err error-log的位置
general-log = ON 允许记录general-log
general-log-file = /usr/local/nestdb_master/log/mysql.log general-log的位置
slow-query-log = ON 允许记录error-log
slow-query-log-file = /usr/local/nestdb_master/log/slow.log error-log的位置
long-query-time = 1 查询时间,如果查询小于等于1s,记录到general-log,如果大于1s,记录到error-log
log-queries-not-using-indexes = 1
mysql> show global variables like 'log_warnings';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings | 0 | 0:warning信息不记录到error-log中;1:warning信息记录到error-log中;大于1:各类告警信息写入到error-log中。
+---------------+-------+
1 row in set (0.01 sec)

bin-log配置

#------------------> (2) binlog <---------------------------------------------------------------
log-bin = mysql-bin bin-log的前缀,当每次flush logs;重启mysql,日志文件达到最大时,都会重新更新bin-log
log-bin-index = mysql-bin.index 记录了所有bin-log的文件名
sync-binlog = 1000
binlog-format = ROW
binlog-cache-size = 1M
max-binlog-size = 1G bin-log文件最大值,超过1G,变更bin-log
expire-logs-days = 7

查看bin-log

[root@vm10-0-0-8 bin]# ./mysqlbinlog   ../var/mysql-bin.000005
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#191114 16:53:43 server id 9988123 end_log_pos 123 CRC32 0xb80d9c2f Start: binlog v 4, server v 5.7.27-debug-log created 191114 16:53:43
BINLOG '
FxbNXQ8baJgAdwAAAHsAAAAAAAQANS43LjI3LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AS+cDbg=
'/*!*/;
# at 123
#191114 16:53:43 server id 9988123 end_log_pos 154 CRC32 0x0020c8cb Previous-GTIDs
# [empty]
# at 154
#191115 13:17:42 server id 9988123 end_log_pos 219 CRC32 0x80e8fd47 Anonymous_GTID last_committed=0 sequence_number=1 rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#191115 13:17:42 server id 9988123 end_log_pos 313 CRC32 0x4219fe85 Query thread_id=73 exec_time=0 error_code=0
SET TIMESTAMP=1573795062/*!*/;
SET @@session.pseudo_thread_id=73/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database lr_1
/*!*/;
# at 313
#191115 13:17:53 server id 9988123 end_log_pos 378 CRC32 0xbfbb5fc0 Anonymous_GTID last_committed=1 sequence_number=2 rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 378
#191115 13:17:53 server id 9988123 end_log_pos 478 CRC32 0x8217330c Query thread_id=73 exec_time=0 error_code=0
SET TIMESTAMP=1573795073/*!*/;
create table lr_1.test(id int)
/*!*/;
# at 478
#191115 13:18:08 server id 9988123 end_log_pos 543 CRC32 0xf0bb2b47 Anonymous_GTID last_committed=2 sequence_number=3 rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 543
#191115 13:18:08 server id 9988123 end_log_pos 611 CRC32 0xdf8eb376 Query thread_id=73 exec_time=0 error_code=0
SET TIMESTAMP=1573795088/*!*/;
BEGIN
/*!*/;
# at 611
#191115 13:18:08 server id 9988123 end_log_pos 658 CRC32 0xef41195b Table_map: `lr_1`.`test` mapped to number 109
# at 658
#191115 13:18:08 server id 9988123 end_log_pos 698 CRC32 0xde1f9e3c Write_rows: table id 109 flags: STMT_END_F BINLOG '
EDXOXRMbaJgALwAAAJICAAAAAG0AAAAAAAEABGxyXzEABHRlc3QAAQMAAVsZQe8=
EDXOXR4baJgAKAAAALoCAAAAAG0AAAAAAAEAAgAB//4BAAAAPJ4f3g==
'/*!*/;
# at 698
#191115 13:18:08 server id 9988123 end_log_pos 729 CRC32 0x0884f90f Xid = 63
COMMIT/*!*/;
# at 729
#191115 13:18:19 server id 9988123 end_log_pos 776 CRC32 0x7e8d61f6 Rotate to mysql-bin.000006 pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

最新文章

  1. VS2015中SharedProject与可移植类库(PCL)项目
  2. SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount
  3. Linux系统下 解决Qt5工程打不开的方法
  4. 经典Bug 修改方法
  5. UINavigationController 操作记录
  6. 《Junit实战》读书笔记
  7. ubuntu adb devices 找不到任何东西,安装驱动
  8. cscope使用
  9. (转)在Repeater中嵌套使用Repeater
  10. Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询
  11. 如何去除AJAX收到数据中包含的html页面数据
  12. ratingbar设置不可调节星星数量
  13. Part 3:视图和模板--Django从入门到精通系列教程
  14. JQuery插件使用之Validation 快速完成表单验证的几种方式
  15. 全文检索-Elasticsearch (二) CURD
  16. Windows下struct和union字节对齐设置以及大小的确定(一 简介和结构体大小的确定)
  17. 大数据学习路线之linux系统基础搭建
  18. Python自动化开发 - select模块
  19. (第二周)读《我是一只IT小小鸟》有感
  20. Numpy基础总结

热门文章

  1. mysql-主从备份问题小结
  2. open xml 导出excel遇到的问题
  3. intellji IDEA 2019版激活码(亲测可用 2019年10月14日08:53:54)
  4. 浅谈python的第三方库——numpy(二)
  5. 纪中20日c组模拟赛
  6. P1055 ISBN号码(getline(cin,s); printf(&quot;%s&quot;,str); )
  7. kali-linux下载地址
  8. WIN10与ubuntu双系统安装教程
  9. ajax-属性、原理、实现html5进度条上传文件
  10. magento2.2.3 根据产品ID获取栏目名称的正确调用方式