• 基本概念篇

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*/;

mysql数据库-笔记的更多相关文章

  1. mysql数据库笔记0

    mysql数据库笔记0 一次性添加多行数据 例如: INSERT INTO students (class_id, name, gender, score) VALUES (1, '大宝', 'M', ...

  2. Mysql数据库笔记

    出错记录: 1.mysql服务启动不了,进程意外终止 1067    错误显示:can not connect to mysql server on local hosts(1061)    解决方法 ...

  3. MySQL数据库笔记总结

    MySQL数据库总结 一.数据库简介 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的.它不仅仅指狭义上的数字,而是有多种表现形式:字母.文字.文本. ...

  4. MySQL数据库笔记六:数据定义语言及数据库的备份和修复

    1. MySQL中的函数 <1>加密函数 password(str) 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码加密. select PASSWORD('tlxy666 ...

  5. MySQL数据库笔记二:数据类型及数据库操作

    三.MySQL数据库数据类型 MySQL数据库中支持多种数据类型:数值型.字符型.日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值.与存储大小和数值的范围无关. ...

  6. MySQL数据库笔记一:简介及简单操作

    一.初识MySQL数据库 1.数据库的概述 <1>数据库:Database 长期存储在计算机内的,有组织的,可共享的数据集合. 存储数据的仓库.(文件) <2>数据库管理系统: ...

  7. MySQL数据库笔记四:MySQL的约束

    <1>概念 是一种限制,它是对表的行和列的数据做出约束,确保表中的数据的完整性和唯一性. <2>使用场景 创建表的时候,添加约束 <3>分类 1. default: ...

  8. MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)

    五.数据查询语言(DQL) (重中之重) 完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order ...

  9. (mysql)数据库笔记

    一.数据库的特点: a.实现数据共享  b.采用特定的数据类型. c.具有较高的数据独立性 d.具有统一的数据控制功能. 二.mysql的优势: a.速度:运行速度快 b.价格:mysql对多数个人来 ...

随机推荐

  1. PMP--1.2 PMBOK指南组成部分

    图1.2.5 ​ PMBOK指南关键组成部分在项目中的相互关系说明:项目生命周期中包含项目阶段,项目阶段结束之后就是阶段关口: 而项目管理过程和项目管理过程组以及项目管理知识领域都是为了项目生命周期服 ...

  2. nodejs编程优化

    如何编写优化的 JavaScript 对象属性的顺序:始终以相同的顺序实例化对象属性,以便共享的隐藏类和随后优化的代码可以共享之.   动态属性:在实例化之后向对象添加属性将强制执行隐藏的类更改,并降 ...

  3. 【Spring】bean的作用域(@Scope) - singleton、prototype

    已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...

  4. vc6 保存文件卡住

    解决办法:删除工程文件中的三个文件,分别是:*.ncb  * .opt   * .plg引用链接:https://blog.csdn.net/lvxianlong123/article/details ...

  5. C#效率优化(4)-- 编译器对数组遍历的优化

    在平时开发过程中,数组是我们使用频率最高的类型之一,在使用定长列表时,数组可以说是最佳方案,这也是我们最熟悉的数据结构之一. 在C#中使用数组,可以获取在内存上连续的相同类型的一组变量,在连续访问时可 ...

  6. Pots POJ - 3414【状态转移bfs+回溯】

    典型的倒水问题: 即把两个水杯的每种状态视为bfs图中的点,如果两种状态可以转化,即可认为二者之间可以连一条边. 有3种倒水的方法,对应2个杯子,共有6种可能的状态转移方式.即相当于图中想走的方法有6 ...

  7. Raspbain系统无屏幕无网线通过ssh远程连接树莓派设置wifi步骤

    应该是最简单的步骤了,只需通过电脑.路由器.树莓派在同一个局域网即可,它们之间都是无线连接 1.首先通过路由器连接树莓派,查看树莓派的地址 然后我们依旧可以用网线,以及WIFI,连接树莓派,第一次连接 ...

  8. AI 数学基础 : 熵

    什么是熵(entropy)? 1.1 熵的引入 事实上,熵的英文原文为entropy,最初由德国物理学家鲁道夫·克劳修斯提出,其表达式为: 它表示一个系系统在不受外部干扰时,其内部最稳定的状态.后来一 ...

  9. Windows Live Writer 2012 安装配置

    Windows Live Writer 2012用起来比较舒服,可以直接编辑 在线博客文章 下载地址 http://g.live.com/1rewlive5-all/zh-cn/wlsetup-all ...

  10. react-native构建基本页面1---主页:tab栏

    配置Tab栏 配置Tab栏的图标 注意:使用图标,需要接收 license; /** * Sample React Native App * https://github.com/facebook/r ...