MySQL 入门+进阶 (必知必会)

导读:本篇文章讲解 MySQL 入门+进阶 (必知必会),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

为什么要有数据库

数据库的优点

总结一下:

数据库的分类

MySQL入门

安装和使用

SQL语句使用

几个注意的点

SQL语句执行顺序

三种 join

索引创建

索引

为什么要有索引

索引优缺点

优势

劣势

索引的分类

按照索引的特征

按照索引的数据结构

按照索引的物理存储

索引的数据结构 B+树

SQL事务 通俗理解

分库分表

SQL优化


为什么要有数据库

其实平常的文件比如 txt也可以存储数据,但是读写效率,存储容量等都不能满足需求,所以就出现了数据库。

数据库的优点

数据库系统主要有以下几点优点:

1.整体数据结构化:在数据库系统中,记录的结构和记录之间的联系有数据库管理系统进行维护,从而减轻了程序员的工作量,提高了工作效率。

2.数据的共享性高、冗余度低且易扩充:数据共享包括多个用户、多个应用可以同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库中的数据。同时,数据库实现数据共享大大减少了数据冗余,还能够避免数据之间的不相容性和不一致性。(数据的不一致性:指同一数据不同副本的值不一样)

3.数据独立性高:数据独立性包括数据的物理独立性和逻辑独立性,即用户的应用程序与数据库中数据的物理存储和数据的逻辑结构均相互独立。

4.数据由数据库管理系统统一管理和控制:利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系,同时数据库管理系统提供了以下几个方面的数据控制功能,以解决数据共享带来的安全隐患。

数据的安全性保护:保护数据以防止不合法使用造成的数据泄密和破坏;
数据的完整性检查:保证数据的正确性、有效性和相容性(数据中的相容性是指表示同一事实的两个数据应相同,或者满足某一约束关系的一组数据不应发生互斥);
并发控制:使在同一周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用(例如,当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏);
数据库恢复:数据库管理系统能及时发现故障,并将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。

总结一下:

存储空间大,读写效率高,支持高并发。

数据的完整性检查 ,安全保证 ,可恢复性。

易于维护,安全性高,通过数据库管理系统,提供了丰富的功能。

数据库的分类

具体请看博文

关系型数据库和非关系型数据库_trigger的博客-CSDN博客

关系型数据库就是MySQL之类的,非关系型就是Redis,Redis属于nosql,意思是不仅仅是SQL,在SQL的基础上还有其他功能。

随着云计算的发展和大数据时代的到来,关系型数据库越来越无法满足需要,这主要是由于越来越多的半关系型和非关系型数据需要用数据库进行存储管理,以此同时,分布式技术等新技术的出现也对数据库的技术提出了新的要求,于是越来越多的非关系型数据库就开始出现,这类数据库与传统的关系型数据库在设计和数据结构有了很大的不同, 它们更强调数据库数据的高并发读写和存储大数据,这类数据库一般被称为NoSQLNot only SQL)数据库。 而传统的关系型数据库在一些传统领域依然保持了强大的生命力。

MySQL入门

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB

可以认为mysql是一个服务器,向外提供一种数据库的服务,可以用客户端或者编程和它进行交互,前提是知道这个服务的网络地址(ip+端口号(MySQL端口号是3306))。

安装和使用

超详细MySQL安装及基本使用教程_bobo553443的博客-CSDN博客_mysql安装教程

SQL语句使用

mysql常用语句大全 – MrSmartLin – 博客园

几个注意的点

SQL语句执行顺序

开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果 

MySQL 入门+进阶 (必知必会)

三种 join

索引创建

索引

为什么要有索引

加快数据查询,索引(index)是帮助MySQL高效获取数据的数据结构(有序)

索引优缺点

优势

1) 类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本

2) 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。

劣势

1) 实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间

的。

2) 虽然索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE。因为

更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所

带来的键值变化后的索引信息。

索引的分类

按照索引的特征

1) 单值索引 :即一个索引只包含单个列,一个表可以有多个单列索引

2) 唯一索引 :索引列的值必须唯一,但允许有空值

3) 复合索引 :即一个索引包含多个列

按照索引的数据结构

MySQL目前提供了以下4种索引:

  • BTREE 索引 : 最常见的索引类型,大部分索引都支持 B 树索引。

  • HASH 索引:只有Memory引擎支持 , 使用场景简单 。

  • R-tree 索引(空间索引):空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少,不做特别介绍。

  • Full-text (全文索引) :全文索引也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从Mysql5.6版本开始支持全文索引。

按照索引的物理存储

聚集索引 ,索引本身就是数据,在物理上是聚集的

非聚集索引有单独的目录文件

区别:

聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个 聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续

聚集索引:物理存储按照索引排序;聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序。

比如 主键就是聚集索引 因为物理上是连续的存储

非聚集索引:物理存储不按照索引排序;非聚集索引则就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序。

对年龄建立的索引就是 非聚集索引

索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。

聚集索引和非聚集索引的区别_riemann_的博客-CSDN博客_聚集索引和非聚集索引的区别

索引的数据结构 B+树

【最通俗易懂】MySQL索引原理 – 知乎

一步步分析为什么B+树适合作为索引的结构 以及索引原理 (阿里面试) – aspirant – 博客园

redis为何单线程 效率还这么高 为何使用跳表不使用B+树做索引(阿里) – aspirant – 博客园

SQL事务 通俗理解

https://blog.csdn.net/weixin_40757930/article/details/123182984

分库分表

什么是分库分表,为什么要分库分表? – 知乎

阿里云和华为云都写了回答。

SQL优化

MySQL优化之推荐使用规范_猪哥-CSDN博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92869.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!