零、基础知识:

一、事务只有InnoDB支持事务,外键约束,原子性,一致性,隔离性,持久性。

1. 事务分类:1. 开启事务:start transaction

2. 结束事务:end transaction

3. 提交事务:commit transaction

4. 回滚事务:rollback transaction

2. 提交:默认是自动提交,show variables like '%commit%'查看autocommit是否开启。set autocommit=off关闭自动提交。如果关闭了事务,每次执行完sql语句,需要commit来提交。

3. 事务的隔离级别:默认是:repeatable read:可重复读。select @@tx_isolation;查看隔离级别。1. read uncommitted:读未提交。事务A未提交的数据被事务B读取了,此时数据是脏数据,此时是「脏读」。这种隔离级别最低,理论上存在这种情况,数据库默认的隔离级别一般都高于该隔离级别。

2. read committed:读已提交。当事务A不停的提交数据,导致事务B每次获取的数据都不一致,导致了不可重复读,最好事务B每次读取的数据都是一样的。

3. repeatable read:可重复读。事务A,C,D都提交数据,但是对于B是不可读的,保证了事务B的数据可重复读,但是导致了事务B读取的数据和数据库里面真实的数据不一致,这就是「幻读」。场景1:银行年底结算,在年底结算,计算数据此时发生变化,也不应该影响目前的结算统计。

4. serializable:串行化。在同一个时间点,只有一个事务在执行,其他事务等待。

二、约束constraint,对表中的数据的限制条件。保证数据的完整和有效性。

1. 约束分类:1. 非空约束:not null

2. 唯一性约束:unique。

2.1 列级约束写法:`email varchar(128) unique,` :email不能重复。

2.2 表级约束写法:`unique (email),`:email不能重复。`unique (name, email),`:name和email不能完全一样。

2.3 给「表级约束」起别名:`constraint t_user_name_email unique(name,email),`给这个约束起了别名,可以在`information_schema`->`TABLE_CONSTRAINTS`查看该约束。

3. 主键约束PK:primary key

> 一个表中只能有一个主键。默认是0。数据引擎必须是MyISAM。

3.1 `primary key`作用等价于`not null unique`,既不为空,也不重复。但区别是`primary key`还会自动添加「索引 - index」。

3.2 列级主键写法:`id int(4) primary key,`。id不让重复,且有索引。

3.3 表级主键写法:`primary key(id),`。

3.4 表级联合(或复合主键)主键:`primary key(id, name),`,当id和name都不一致就不算重复。场景1:当没有某列例如id作为索引,可以使用多个列作为复合主键来确定唯一。

3.5 给「主键约束」起别名:`constraint t_user_id_name_pk primary key(id, name)`。

4. 外键约束FK:foreign key

> 外键在表中可以有多个,主键只能有一个(复合主键也只是一套)。

4.1 单一外键:给一个字段添加外键。

`constraint t_student_classno_fk foreign key(classno) references t_class(cno)`:t_student是子表,t_class是父表。classno是子表中要引用外表的一个字段,cno是父表的一个用来约束(被引用)的字段,一般是主键,但是必须是唯一的。外键字段可以是NULL,外键为空的数据被成为「孤儿数据」。

4.2 复合外键:给多个字段添加一个外键。

5. 级联更新与级联删除

主表中数据删除,子表中约束的数据也删除。

主表中数据更新了,子表中约束的数据也更新。

三、存储引擎:1. MyISAM:

1.0 适合大量的数据读取、少量的数据更新。

1.1 使用3个文件表示每个表(结构文件frm、数据文件MYD、索引文件MYI)

2. InnoDB:默认

2.1 每个表的在数据库目录中以.frm格式文件存储。

2.2 提供一组用来记录事务性活动的日志文件。

2.3 用commit、savepoint、rollback来支持事务。

2.4 提供全部ACID兼容。

2.5 MySQL服务器崩溃后提供自动恢复。

2.6 行级锁。

2.7 支持外键及引用的完整性

四、索引:索引类似于字典的目录,「主键」是自动添加索引的,所以能通过主键查询的最好通过主键查询。

索引和表一样,都是一个对象,都是存储在硬盘中。1. 表的检索方式:

1.1 全表扫描(效率底下):没有索引的话,只能从上到下,一个一个的找。

1.2 索引检索(效率高):**具体原理**

2. 常用命令:

`show index from table_name;`:查看索引。

`create index index_name on table_name(column_name);`:添加索引。

`create unique index index_name on table_name(column_name);`:只有唯一一个索引。

`drop index index_name on table_name;`:删除索引。

五、案例:1. 连接方式分类:

1.1 内连接:

1.1.1 等值连接:

1.1.2 非等值连接:

1.1.3 自连接:

1.2 外连接:

1.2.1 左外连接/左连接

1.2.2 右外连接/右连接

1.3 全连接:

六、常用函数:1. `group by columan_name`: 其中select必须是columan_name或者函数(max,min等)。

2. `having`:必须和group by一起用,用于分组(group by)之后的条件筛选。

3. 解析:

1

2

3

4

5

6select xxxx

from xxx

where xxx

group by xxx

having xxx

order by xxx 1) from:将硬盘上的表文件加载到内存。

2) where:将符合条件的数据摘取出来,生成一张新的临时表。

3) group by:根据列中的数据种类,将当前临时表划分成若干个新的临时表。

4) having:可以过滤掉group by生成的不符合条件的临时表。

5) select:对当前临时表进行整列读取。

6) order by:对select生成对临时表,进行重新排序,生成新的临时表。

mysql动力节点老杜_【动力节点】高清MySQL视频教程相关推荐

  1. mysql动力节点老杜_动力节点老杜 day02课堂笔记

    需要配套资源的同学可以加群737676214获取 1.常用的DOS命令(续) 1.1.del命令,删除一个或者多个文件 删除T1.class文件 C:\Users\Administrator>d ...

  2. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day01.txt

    文章目录 文件来源/资料下载: MySQL课堂笔记-day01.txt 1.sql.DB.DBMS分别是什么,他们之间的关系? 2.什么是表? 3.学习MySQL主要还是学习通用的SQL语句,那么SQ ...

  3. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day03.txt

    文章目录 文件来源/资料下载: MySQL课堂笔记-day03.txt 1.约束 1.1.唯一性约束(unique) 1.2.主键约束 1.3.外键约束 2.存储引擎?(整个内容属于了解内容) 2.1 ...

  4. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day02.txt

    文章目录 文件来源/资料下载: MySQL课堂笔记-day02.txt 1.关于查询结果集的去重? 2.连接查询 2.1.什么是连接查询? 2.2.连接查询的分类? 2.3.在表的连接查询方面有一种现 ...

  5. mysql基础入门 day2 动力节点[老杜]课堂笔记

    day_2 本文原作者为动力节点教学总监杜老师老杜在其课老杜带你学_mysql 入门基础(mysql 基础视频+数据库实战)所写讲课笔记 该文档和其涉及资料见文档末链接 本人将其讲课笔记 txt 下载 ...

  6. [记录学习]自学动力节点老杜Spring6笔记_02

    首先感谢动力节点和杜老师的教学分享!Respect! 学习来源:B站 https://www.bilibili.com/video/BV1Ft4y1g7Fb/?spm_id_from=333.337. ...

  7. [记录学习]自学动力节点老杜Spring6笔记_01

    首先感谢动力节点和杜老师的教学分享!Respect! 学习来源:B站 https://www.bilibili.com/video/BV1Ft4y1g7Fb/?spm_id_from=333.337. ...

  8. mysql动力节点百度云_动力节点MySQL数据库视频 百度云 网盘 下载

    资源名称:动力节点MySQL数据库视频 百度云 网盘 下载 # o4 E. q% ]2 ?百度网盘下载链接:[/hide]- t4 L+ S# b2 T( }! d) n& d 密码:dff7 ...

  9. 动力节点老杜javaweb笔记丰富总结

    文章目录 Servlet 关于系统架构 B/S结构的系统通信原理(没有涉及到Java小程序) 关于WEB服务器软件 实现一个最基本的web应用(这个web应用中没有java小程序) 对于一个动态的we ...

  10. jdbc(B站动力节点老杜)学习笔记复习使用

    jdbc概述 什么是jdbc? java语言连接数据库的一套接口,jdbc是SUN公司定制的一套接口 为什么要SUN公司要制定一套接口? 每个数据库的底层实现原理不同,程序员要想使用java连接某一个 ...

最新文章

  1. 美国计算机专业录取率,美国留学高录取率院校计算机专业申请条件是什么? 爱问知识人...
  2. 数据分页 THINKPHP3.2 分页 三种分页方法
  3. 50行的python游戏代码_50行代码实现贪吃蛇(具体思路及代码)
  4. 清明节游戏服务器维护,清明节游戏活动【4月2日--4月16日】
  5. mysql 函数用还是不用_Mysql中日期和时间函数应用不用求人
  6. vi查找和替换字符串
  7. 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础
  8. 对 n = 2,3,...,300, 判断那些 Mersenne 数 M_n=2^n-1 是素数 | matlab 源码
  9. qscrollbar 固定滑块大小_模仁、镶件、斜顶、滑块等模具零件的加工工艺分析
  10. java ee 结构图,javaee体系结构图
  11. IOS-App Store 提审应用步骤
  12. 软件测试基础 (三): 系统测试
  13. win7(win10)更改“文件类型显示图标“的终极修改方法
  14. Windows上实现iOS APP自动化测试:tidevice + WDA + airtest
  15. linux txt转化vcf命令,【9.2更新】Vcf转换工具(Excel、TXT转Vcf 和 Vcf转Excel)
  16. 开源一款苹果 macOS 工具 - AppleParty(苹果派)
  17. 2、基因树 与物种树的关系及建树
  18. IMX6DL 在Android4.4.2版本插入SD卡不能开机
  19. 海思3559万能平台搭建:OSD功能的优化
  20. 规范TS项目Any类型的使用

热门文章

  1. 使用LibreOffice的Draw取代Microsoft visio
  2. matlab产生er随机图,ER随机图模型
  3. Git工作流(简单)
  4. 微信域名防封最全代码
  5. 在python中、下列代码的输出是什么-智慧树知到《Python程序设计基础》章节测试答案...
  6. 运输问题基本解 最小元素法
  7. 运筹说 第41期 | 运输问题硬核知识点梳理—表上作业法求解运输问题
  8. 校验码的计算方法说明
  9. 健康档案管理系统方案/案列/APP/软件/小程序
  10. android怎么开机画面,android开机动画bootanimation 分析