【MySQL】带你了解MySQL 如何学习MySQL以及MySQL的用途以及意义

news2024/12/23 1:48:44

        

目录

 1 MySQL的起源和发展

1.0.1 数据库管理系统

 1.1 MySQL的起源

命名由来:

1.2 MySQL的发展历程

2 什么是MySQL?

2.1 数据库

2.1.1 我们之前存储数据的格式:

2.1.2 使用数据库的目的:

2.1.3 数据库分类

2.2 SQL语句

2.2.1 为什么要SQL语句

2.2.2 SQL语句分类 

3 怎么样学习MySQL

3.1 mysql的知识体系

3.2 推荐的一些视频&书籍

3.3 MySQL的特点


        提起 MySQL 我们大多数与这个行业有相关联系或者说是细微联系的人都知道这个“东西”,你可能并不知道 MySQL 是什么,或者说是你可能了解一些他是数据库管理系统,但是你可能并没有真正的知道什么是MySQL,为什么有那么多相似的产品我们大多数人都说学习 MySQL 而不是其他的系统。我们在学习时,一定要知其然也要知其所以然,我们不能说是:啊,我要学MySQL! 之后就找到MySQL的讲解课程开始直接的学习语句。这样确实是可以学会去操作MySQL,可是,你是否知道你学习它的意义在于哪里吗?所以呢,我们在开始学习之前一定要去了解一下MySQL,去了解下它的用途,它的功能,这样的话,我们在后期的学习之中是不是就会对自己学习的知识有一个清晰的对应认知了,也就不会产生说是我学他到底是为什么这一说辞了!

 1 MySQL的起源和发展

         MySQL(发音为"my ess cue el")是一款开源的关系型数据库管理系统,由瑞典MySQL AB公司开发。

1.0.1 数据库管理系统

        数据库管理系统的简称是“DBMS”,英文全称是“Database Management System”。它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。其对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。而用户通过数据库管理系统(DBMS)访问数据库中的数据,数据库管理员也通过数据库管理系统(DBMS)进行数据库的维护工作。而我们今天所聊的MySQL也是数据库管理软件其中之一。

 1.1 MySQL的起源

         MySQL数据库的历史可以追溯到1979年,那时Bill Gates退学没多久,微软公司也才刚刚起步,而Larry Ellison的Oracle公司 也才成立不久。那个时候有一个天才程序员Monty Widenius为一个名为TcX的小公司打工,并且用BASIC设计了一个报表工具,使其 可以在4MHz主频和16KB内存的计算机上运行。没过多久,Monty又将此工具用C语言进行了重新编写并移植到了UNIX平台上。当时, 这只是一个很底层且仅面向报表的存储引擎,名叫UNIREG。最初的UNIREG是运行在瑞典人制造的ABC800计算机上的。ABC800的内存 只有32KB,CPU是频率只有4MHz的Z80。在1983年Monty Widenius遇到了David Axmark,两人相见恨晚,开始合作运营TcX,Monty Widenius负责技术,David Axmark负责搞管理。后来TcX将UNIREG移植到其他更加强大的硬件平台,主要是Sun的平台。虽然TcX这个 小公司资源有限,但Monty Widenius天赋极高,面对资源有限的不利条件,反而更能发挥他的潜能。Monty Widenius总是力图写出 最高效的代码,并因此养成了习惯。与Monty Widenius在一起的还有一些别的同事,很少有人能坚持把那些代码持续写到20年后, 而Monty Widenius却做到了。

  1990年,一次Monty接到了一个项目,客户需要为当时的UNIREG提供更加通用的SQL接口,当时有人提议直接使用商用数据库, 但是Monty Widenius觉得商用数据库的速度难以令人满意。于是Monty Widenius找到了David Hughes(mSQL的发明人)商讨合作事宜 。想借助于mSQL的代码,将它集成到自己的存储引擎中。然而令人失望的是,在经过一番测试后,他们发现mSQL的速度并不尽如人 意,无法满足客户的需求。于是Monty Widenius雄心大起,决心自己重写一个SQL支持。从此MySQL就开始诞生了。

命名由来:

        Monty Widenius有一个女儿,名叫My Widenius,因此他将自己开发的数据库命名为MySQL。Monty还有一个 儿子,名为Max,因此在2003年,SAP公司与MySQL公司建立合作伙伴关系后,Monty Widenius又将与SAP合作开发的数据库命名为 MaxDB。而现在的MariaDB中的Maria便是Monty Widenius的小孙女的名字。

1.2 MySQL的发展历程

  • 1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。Monty直接借助于mSQL的代码,将它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,决心自己重写一个SQL支持。 
  • 1995年,Michael Widenius、David Axmark和Allan Larsson三人创建了MySQL AB公司,并发布了第一个版本的MySQL。
  • 1996年,MySQL发布了第一个可商业使用的版本,开始在商业领域中得到广泛应用。
  • 2000年,MySQL 3.23发布,引入了B树索引等功能,提高了查询效率和稳定性。
  • 2003年,MySQL 4.0发布,引入了事务处理和视图等功能,将MySQL从轻量级数据库向企业级数据库过渡。
  • 2005年,MySQL 5.0发布,引入了存储过程、触发器、视图更新等功能,进一步提升了MySQL的性能和可扩展性。
  • 2008年,Sun Microsystems收购了MySQL AB公司,MySQL成为了Sun的重要组成部分。
  • 2010年,Oracle Corporation收购了Sun Microsystems,MySQL成为了Oracle旗下的产品之一。
  • 2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。MySQL 5.5不是时隔两年后的一次简单的版本更新,而是加强了MySQL各个方面在企业级的特性。Oracle公司同时也承诺MySQL 5.5和未来版本仍是采用GPL授权的开源产品。
  • 2013年,MariaDB项目创始人Michael Widenius宣布离开Oracle,创建了自己的公司并推出了基于MySQL的分支MariaDB。
  • 2014年,MySQL 5.7发布,引入了JSON支持、在线DDL、空间索引等功能,继续增强了MySQL的功能和性能。

目前,MySQL已经成为了世界上最受欢迎的关系型数据库之一,广泛应用于Web应用程序、企业信息系统等领域。MySQL也是许多知名公司和组织(例如Google、Facebook、Twitter等)所采用的数据库系统之一。

2 什么是MySQL?

        MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。 MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。

        也就是说它是操纵和管理数据库的大型软件,而使用的语言就是SQL语句。也就是利用SQL语句在MySQL中去操纵和管理数据库。

2.1 数据库

        数据库是一个有组织的数据集合,包括一系列相关表、字段、记录及其它数据对象。数据库通常用于存储和管理大量数据,并提供查询、更新、删除等操作。

数据库通常由一个或多个表组成,每个表都是由一些列和行组成的,列定义了表中的数据类型和名称,行则表示实际的数据条目。例如,在一个用户信息数据库中,可以有一个表表示用户信息,该表可以包含列如姓名、性别、年龄、电话号码等,而每一行则对应着一个具体的用户。

除了表之外,数据库还可以包括索引、视图、触发器、存储过程等对象,它们可以帮助我们更快速、更方便地访问和管理数据库中的数据。

数据库可以被广泛应用于各种领域,例如Web应用程序、企业信息系统、物联网系统等。在这些应用场景中,数据库不仅能够帮助我们存储大量的数据,还可以通过数据分析、数据挖掘等方式为我们提供有价值的信息。

2.1.1 我们之前存储数据的格式:

我们在存储数据都经历的那些阶段:

#  1.文件操作阶段(用文件充当数据库 with open(python))
	jason|123|read
	jason&123&read
    jason*123*read
'''这个阶段每个人在存储数据的时候格式都不同 程序之间无法兼容'''
    
    
#  2、软件开发目录规范
	db目录下  : 数据存储文件
'''虽然存储的目录规范了,但是每个人存储的数据格式还都不相同 程序之间也无法兼容'''


#  3、数据库阶段
'''规定了文件的存储位置和数据格式,这样就解决了数据无法兼容的问题。解决了各方面的问题。'''

2.1.2 使用数据库的目的:

   使用数据库的目的就是为了解决数据不兼容的问题,基于网络使数据在某一个地方以相同的格式统一做一个保存,实现数据共享

2.1.3 数据库分类

关系型数据库

具有固定的表结构 ,并且表与表之间可以通过外键建立关系。
关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

可以看作为excel表格的形式 :有固定的几个字段,下面是数据。

缺点:性能没有非关系性数据库好    优点:数据统计有严谨性

关系型数据库有哪些:

1、MySQL
MariaDB  	:和MySQL是同一个作者开发几乎一致(并且有自己的特性),但是开源免费
Oracle		:大多数银行使用
PostgreSQL  :支持二次开发
sqlserver	
sqlite  	: django框架自带该数据库
db2 .....

非关系型数据库

没有固定的表结构,数据存储采用k:v键值对的形式  {k:v}  非结构化的存储。

非关系型数据库有哪些

常用的非关系型数据库:
1、redis   :目前最火的缓存数据库 具有很多数据结构,功能强大(大部分公司使用)
2、mongoDB :文档型数据库,适用于敏捷开发(应用在爬虫和大数据领域)
3、memcache :几乎已经被redis淘汰。

 

2.2 SQL语句

        SQL(Structured Query Language)是一种用于管理关系型数据库的语言。SQL语句是指通过SQL语言编写的用于操作数据库的命令或查询。SQL语句可以被用来创建、读取、更新和删除数据库中的数据。

 

2.2.1 为什么要SQL语句

        因为数据库能够支持的语言非常的多 为了避免识别问题 发明了SQL语句 规定只要想使用数据库就统一使用SQL语句操作 解决不同语言操作数据库产生语言不兼容的情况,实现数据兼容问题。

2.2.2 SQL语句分类 

  1. 数据库操作语句:用于创建、修改和删除数据库及其对象,例如CREATE DATABASE、ALTER DATABASE和DROP DATABASE等。

  2. 表操作语句:用于创建、修改和删除表及其结构,例如CREATE TABLE、ALTER TABLE和DROP TABLE等。

  3. 数据操作语句:用于插入、查询、更新和删除表中的数据,例如SELECT、INSERT、UPDATE和DELETE等。

  4. 索引操作语句:用于在表上创建、修改和删除索引,例如CREATE INDEX、ALTER INDEX和DROP INDEX等。

  5. 视图操作语句:用于创建、修改和删除视图,例如CREATE VIEW、ALTER VIEW和DROP VIEW等。

  6. 存储过程和触发器:用于定义存储过程和触发器,例如CREATE PROCEDURE、ALTER PROCEDURE和DROP PROCEDURE等。

        当然,SQL语句是一种通用的语言,可以运行于各种关系型数据库管理系统(如MySQL、Oracle、SQL Server、PostgreSQL等)。掌握SQL语句能够有效地对数据库进行管理和查询,对于Web应用程序开发以及数据分析等领域都非常重要。

3 怎么样学习MySQL

既然要学习 MySQL,那该怎么学?这是一个问题。

怎样去学习并学好一门技术,对于很多人有很多不同的方法,你可以去网上找下相关的视频,也可以去搜索一下似有似无的相关博客,甚至可以去一些开源项目里去边学边练。对于 MySQL 也是如此,这 “家伙” 也非常的庞大,用途也非常广,想要系统的学习掌握谈何容易。

其实大概也可以分为以下这三步去掌握:

基础运用阶段:这一阶段要去学习 MySQL 的理论知识,例如:常用的数据类型和适用场景、Schema 的设计规范等等。之后,以理论去指导实践,简单的用一用 MySQL,能理解基本的增删改查、聚合分组概念等等。同时,也要求能够自行去解决一些简单的问题,例如:SQL 语法错误、键冲突等等。

能力提升阶段:在能够熟练的应用之后,可以去看一些进阶知识点以及 MySQL 高级特性,例如:事务、锁并发、日志系统、索引优化等等。听起来,似乎这一阶段都是理论相关的。但是,也是理论指导实践的最佳诠释。在学习理论的过程中,你会惊讶的发现:原来 MySQL 还可以这样用、我之前的方法太低效了等等意想不到的收获。此时,你就可以用 “新的知识” 优化、重构之前的工作,以提升性能。同时,你的能力也在逐步提升。

总结输出阶段:在工作中,解决各种错误、性能问题的同时,一定要注意多做笔记,多做总结。并在这个过程中,将自己懂得的知识点、技巧、优化方案等等输出出去,帮助其他同学共同进步。正所谓,赠人玫瑰,手有余香。

3.1 mysql的知识体系

 

基础:

  • SQL语句
  • 表结构设计

调优:

  • 索引、慢查询优化
  • 配置参数调优

核心原理:

  • InnoDb存储引擎 (包括隔离级别、事务、锁、缓存池、回滚日志等等)
  • Mysqld (包括连接管理、进程管理、查询缓存、查询优化、日志等等)

架构与运维:

  • 用户与权限、安全
  • 备份与恢复
  • 日志
  • 分布式与高可用

3.2 推荐的一些视频&书籍

大家可以在CSDN里找一些自己喜欢的博主,去关注他们的专栏来学习相关的知识,这里我给大家推荐一些书以及网课。

《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。

《数据库系统概念》这本书是dba必看的。看完这些并且实践+思考之后,可以算入门了。

 

至于网课的话我给大家推荐的是黑马程序员的免费网课(就不推荐需要付费的啦)

 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili

当然如果大家还有什么好的资源推荐也可以发在评论区里。

3.3 MySQL的特点

MySQL具备的特点如下:

—功能强大

MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。

—支持跨平台

MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。

—运行速度快

高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。

—支持面向对象

PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。

—安全性高

灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。

—成本低

MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。

—支持各种开发语言

MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。

—数据库存储容量大

MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。

—支持强大的内置函数

PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32-HAL-串口的printf重定向

一、C语言的格式化输出 C语言的printf是一个标准库函数,用于将格式化的数据输出到标准的输出设备(通常是终端) 基本语法: int printf(const char *format, ...);其中的第一个参数const char *format表示输出格式,后面…

Kubernetes核心组件及资源介绍

文章目录 一、Kubernetes架构二、Kubernetes核心组件三、Kubernetes核心资源四、拓展1、Service和Ingress的区别是什么?2、Replicaset和Deployment的区别是什么?3、Deployment和Statefulset的区别是什么?4、Job和Cronjob的区别是什么&#xf…

【FAQ】统一扫码服务常见问题及解答

1.隐私政策是怎么样的?收集哪些信息? 关于Scan Kit的隐私政策及收集的信息,请查看SDK隐私安全说明。 Android:SDK隐私安全说明 iOS:SDK隐私安全说明 2.如何使用多码识别?多码模式下如何实现指定条码&am…

vue生命周期的理解?

目录标题 一、什么是生命周期?二、生命周期的流程图: 一、什么是生命周期? Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译版、挂载Dom ->染、更新 ->渲染、卸载 等一系列过程,称这是Vue的生…

简单清晰了解B树和B+树

一.学习背景 在MySQL的学习中,我们了解到了索引的知识,而关于MySQL索引背后的数据结构,我们在这里进行学习. 首先,我们要了解到的是,MySQL的索引用到的数据结构为B树. 使用B树是因为,在数据量大的时候,内存不够用,大部分数据只能存放在磁盘上,只有需要…

【Linux命令行与Shell脚本编程】第七章 Linux文件权限

Linux命令行与Shell脚本编程 第七章 Linux文件权限 文章目录 Linux命令行与Shell脚本编程七,Linux文件权限7.1,Linux的安全性7.1.1,用户信息 /etc/passwd文件7.1.2,用户密码 /etc/shadow文件7.1.3,useradd 添加新用户7.1.4,userdel 删除用户7.1.5, 修改用户1,usermod2,passwd…

Hystrix Dashboard图形化监控

👉🏻 SpringCloud 入门实战系列不迷路 👈🏻: SpringCloud 入门实战(一)什么是SpringCloud?SpringCloud 入门实战(二)-SpringCloud项目搭建SpringCloud 入门实…

【云计算•云原生】1.什么是云计算?它为什么这么火?

文章目录 1.云计算基础什么是云计算云计算的分类开源软件、自由软件、免费软件 2.云计算机制云基础设施机制云管理机制云安全机制基本云架构 3.虚拟化技术服务器虚拟化服务器虚拟化技术CPU虚拟化内存虚拟化设备和I/O虚拟化存储虚拟化网络虚拟化桌面虚拟化 KVM 4.网络与存储基础…

90后,第一批接棒白酒的“年轻人”

【潮汐商业评论/原创】 又到了每月的公司团建,“团建必喝酒”似乎已经成为了大家的共识。 但在酒水的选择上,有红的、啤的、洋的,还有低度果酒,唯独不见听谁说聚会喝白的。当Jason询问为什么没有白酒时,得到了几乎一…

C语言函数大全-- o 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- o 开头的函数 1. obstack_init,obstack_free,obstack_alloc,obstack_blank,obstack_grow 1.1 函数说明 函数声明函数功能void obstack_init(struct obstack *obstack_ptr);它是 POSIX …

Python采集某网站小sp内容, m3u8内容下载

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 环境使用: Python 3.8 Pycharm 模块使用: import requests >>> pip install requests import re 正则表达式 解析数据 import json 本次案例所用知识点: python基础语法: 字典创建/取值 print输出函数使用…

【人工智能概论】 RNN、LSTM、GRU简单入门与应用举例、代码耗时计算

【人工智能概论】 RNN、LSTM、GRU简单入门与应用举例、代码耗时计算 文章目录 【人工智能概论】 RNN、LSTM、GRU简单入门与应用举例、代码耗时计算一. RNN简介1.1 概念简介1.2 方法使用简介 二. 编码层embedding2.1 embedding的参数2.2 embedding的理解 三. Linear层与CrossEnt…

全景图像算法简述

全景图像拼接是一种将多个图像合成为一个大型全景图像的技术。这种技术广泛应用于虚拟现实、游戏开发、文化遗产保护等领域。本文将介绍三种主流的全景图像拼接算法,并对它们进行综合比较。 一、基于特征点匹配的拼接算法 特征点匹配是全景图像拼接中最常用的一种算…

深入讲解ARMv8 异常处理简介

内核稳定性问题复杂多样,最常见的莫过于“kernel panic”,意为“内核恐慌,不知所措”。这种情况下系统自然无法正常运转,只能自我结束生命,留下死亡信息。诸如: “Unable to handle kernel XXX at virtual …

直播系统开发中哪些技术架构是必不可少的

在当今数字化时代,直播已成为一种极其受欢迎的娱乐和营销方式。由于直播应用的复杂性,架构师在直播系统的开发和设计中扮演着至关重要的角色。本文将介绍直播系统开发中技术架构师所必不可少的技术和工具。 什么是直播系统? 直播系统是一种通…

uni-app入门到实战

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 🍟欢迎来到前端初见的博文,本文主要讲解uni-app入门到实战🍟 👨‍🔧 个人主页 : 前端初见 🥞喜欢的朋友可以关注一下&#xff…

【Linux】浏览器写代码!部署code-server远程vscode网页

部署code-server远程vscode网页,在浏览器上写代码! 参考文档 https://developer.aliyun.com/article/876967#slide-7 本文首发于 慕雪的寒舍 1.什么是code-server? 注意,这不是在linux系统上安装vscode软件(和windo…

虹科分享 | 如何主动保护个人信息 | 网络安全评级

网上报税和支付越来越流行,针对毫无防备的纳税人的税务欺诈也越来越频繁。以下是一些需要避免的常见网上税务骗局: 网络钓鱼诈骗 骗子利用电子邮件、短信或电话伪装成相关机构或报税软件提供商,诱骗人们提供他们的个人信息,或点击…

走进梦龙冰淇淋的生产线 揭晓“灯塔工厂”背后的秘密

作为一家积极履行社会责任的公司,联合利华和路雪在今年3月携手京东“青绿计划”,推出了包含梦龙、可爱多、千层雪、和路雪等多款可持续组合装产品,这一助力实现双碳目标的举措也引发了消费者的关注。其实,自联合利华太仓食品生产基…

我们都被 ChatGPT 给骗了?

引言: 用过 ChatGPT 的人都知道,当你与 chatgpt 对话的时候,它是“逐字输出”的,就像真的有个人在跟你打字一样。其实,这种技术并没有那么神奇,这种技术叫做“实时文本生成”或“逐字输出”技术&#xff0…