mysql数据库介绍

💜今天对mysql的一些基础概念进行讲诶横扫,如概念、特点、优势、发展历史等等。对之前内容感兴趣的同学可以参考👇:

  • 链接: mysql学习之数据系统概述

🎾让我们开始今日份的学习吧!

目录

  • 1. mysql的基本概念
    • 1.1 mysql的优势
    • 1.2 mysql的发展历史
  • 2. mysql的特性
    • 2.1 mysql的安装
    • 2.2 数据库常用对象
  • 3. mysql的sql语句
  • 4. mysql的存储引擎
  • 5. mysql与其他数据库对比
  • 6. 参考资料

1. mysql的基本概念

数据库(database)就是一个存储数据库的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。mysql数据库就是这样一个关系型数据库管理系统(RDBMS),它可以称得上是目前运行速度最快的SQL数据库管理系统。

1.1 mysql的优势

mysql是一款自由软件,任何人可以从官网网址中下载。mysql是一个真正的多用户,多线程sql数据库服务器。它是以客户/服务器结构的实现,由一个服务程序mysqld和很多不同的客户程序和库组成。它能够快捷、有效和安全地处理大量的数据。相对于oracle等数据库来说,mysql在使用时非常简单。mysql的主要目标是快捷、便捷和易用,以下是mysql的一些特点:

  • 开源和免费:MySQL是开源的,并且可以免费使用。这使得MySQL成为开发人员和小型企业的首选数据库。
  • 可扩展性:MySQL可以轻松地扩展以支持更大的数据集和更高的并发用户。MySQL提供了许多扩展和插件,以帮助用户轻松地进行扩展。
  • 跨平台支持:MySQL可以在多个平台上运行,包括Windows、Linux、Unix、macOS等。
  • 安全性:MySQL具有强大的安全功能,可以保护数据免受未经授权的访问。MySQL提供了许多安全功能,例如加密、用户访问控制和审计等。
  • 高可用性:MySQL支持主从复制和自动故障转移,这使得MySQL可以实现高可用性和灾备恢复。
  • 性能:MySQL具有卓越的性能,可以轻松地处理大型数据集和高并发用户。MySQL支持索引、查询优化和缓存等功能,以提高性能。
  • 支持大型企业应用程序:MySQL可以处理大型企业级应用程序和高流量网站。许多大型企业和网站使用MySQL作为他们的数据库管理系统。

1.2 mysql的发展历史

MySQL是由瑞典公司MySQL AB开发的一种关系型数据库管理系统。其名字的由来是由MySQL AB的创始人之一Michael Widenius取的,最初取名为“My”(他的女儿的名字),加上“SQL”(结构化查询语言)的缩写组成。因此,MySQL这个名字代表着“我的SQL”,强调MySQL作为一个开源软件,可以根据用户的需求进行个性化的定制和修改。MySQL的名字既简单又易于记忆,因此在数据库市场上得到了广泛的认可和应用。
mysql从无到有,到技术的不断更迭,版本的不断升级,已经非常成熟了,mysql的官网地址和下载地址如下,选择自己需求的版本按安装即可。
链接: mysql官网地址
链接: mysql下载地址

在这里插入图片描述

2. mysql的特性

mysql是一个真正的多用户、多线程sql数据库服务器。SQL是世界上最流行的和标准化的数据库语言。其特性如下:

  • 使用C和C++语言编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
  • 支持多种操作系统,如Linux、Mac os、Windows等。
  • 为多种编程语言提供了API。这些编程语言包括C、C++、Java、Perl、 PHP、Ruby、Eiffel、Tcl等。
  • 支持多线程,充分利用CPU资源。
  • 优化SQL查询算法,有效提高查询速度。
  • 既能够作为一个单独的应用程序在客户端服务器网络环境中,也能够作为一个库而嵌入到其他软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以作为数据数据的表名和数据列名。
  • 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
  • 提供用于管理、检查、优化数据库操作的管理工具。
  • 可以处理拥有千万条记录的大型数据库。
    目前的最新版本是mysql8.0版本。

2.1 mysql的安装

mysql的安装可以去官网下载,根据自己的系统和芯片选择合适的版本进行下载即可(我的是mac,m1芯片,选择第一个):
在这里插入图片描述
安装完成后可以在系统设置里看到mysql的服务。
在这里插入图片描述
安装完成后可以安装一个mysql的可视化软件,我这里选择的是navicate,下载完成后安装即可。
在这里插入图片描述
连接完数据后可以在这里面进行一些练习:
在这里插入图片描述

2.2 数据库常用对象

在mysql数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体都被称为数据库对象,下面介绍几种常用的数据库对象:

  1. 表:表是数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。
  2. 字段:表中的每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等。其中,字段类型是字段中最重要的属性,它决定了字段能够存储那种数据。SQL规范支持5中基本类型的字段类型:字符型、文本型、数值型、逻辑型和日期时间类型。
  3. 索引:索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需要的数据。
  4. 视图:视图是从一张表或者多张表中导出的表,是用户查看数据表中数据的一张方式。表中包括几个被定义的数据列与数据行,其结构和数据建立在对表的查询基础之上。
  5. 存储过程:存储过程是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL sever服务器端端数据库中,由用户通过指定存储过程的名字来执行,当这个存储过程被调用执行时,这些操作也会同时执行。

3. mysql的sql语句

这一章在之前写的博客中有介绍,这里我们就不做详细介绍:

  1. 链接: MySQL之表的创建、删除和更新
  2. 链接: MySQL之查询基础
  3. 链接: MySQL之聚合与排序
  4. 链接: MySQL之数据的插入、删除、更新和事务
  5. 链接: MySQL之视图、子查询和关联子查询
  6. 链接: MySQL之函数和谓词

4. mysql的存储引擎

MySQL的存储引擎(storage engine)是指用于存储和检索数据的底层软件组件。MySQL支持多种不同的存储引擎,每种引擎都有自己的特点和优势,应该根据具体需求选择合适的引擎。

以下是MySQL常见的存储引擎:

  • InnoDB
    InnoDB是MySQL默认的存储引擎,支持ACID事务处理和行级锁定,适用于高并发的OLTP应用。它还支持外键约束和崩溃恢复等高级特性。
  • MyISAM
    MyISAM是MySQL的传统存储引擎,不支持事务和行级锁定,但对于读多写少的应用非常适合。它的特点是速度快,占用资源少,适用于数据仓库和大型数据表。
  • Memory
    Memory存储引擎将数据存储在内存中,速度非常快,但缺点是容易丢失数据,适用于临时数据表和缓存。它还支持HASH和B-tree索引。
  • CSV
    CSV存储引擎将数据以CSV格式存储在文件中,适用于存储大量文本数据,但不支持索引和事务处理。
  • Archive
    Archive存储引擎是一种高度压缩的存储引擎,适用于存储历史数据或归档数据,但不支持索引和事务处理。
  • Blackhole
    Blackhole存储引擎不实际存储数据,所有写入操作都被丢弃,适用于数据复制和数据同步等应用场景。
  • Federated
    Federated存储引擎可以将远程服务器上的表映射为本地表,支持跨服务器的查询和数据操作。

总的来说,选择适合自己应用场景的存储引擎可以提高数据库的性能和可靠性。

5. mysql与其他数据库对比

特点MySQLOracleSQL Server
开发公司Oracle CorporationOracle CorporationMicrosoftCorporation
开源
许可证GPL商业许可证商业许可证
操作系统支持Windows, Linux, macOS, FreeBSD, Solaris, OS/2Windows, Linux, macOS, Solaris, AIX, HP-UX, z/OS, *BSDWindows
存储引擎InnoDB, MyISAM, Memory, CSV, Archive, Blackhole, Federated等Oracle Database, Oracle RAC等SQL Server Engine, Analysis Services, Reporting Services等
数据类型支持常见的数据类型,包括数值、字符、日期、二进制等支持常见的数据类型,包括数值、字符、日期、二进制等支持常见的数据类型,包括数值、字符、日期、二进制等
事务处理支持支持支持
锁机制行级锁定、表级锁定、读写锁等行级锁定、表级锁定、对象级锁定等行级锁定、表级锁定、页级锁定等
备份和恢复支持支持支持
安全性支持用户和角色管理、权限控制等支持用户和角色管理、权限控制等支持用户和角色管理、权限控制等
扩展性可以通过分区、复制等方式进行扩展可以通过分区、集群等方式进行扩展可以通过分区、复制等方式进行扩展
索引B+树B+树B+树
缓存可定制可定制可定制

6. 参考资料

  • 《mysql从入门到精通》
  • chatgpt
  • 《SQL必知必会》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十七、网上商城项目(5)

本章概要 购物车 购物车状态管理配置购物车组件 结算页面用户管理 用户状态管理配置用户注册组件用户登录组件 17.8 购物车 在一个电商网站中,购物车在很多页面都需要用到,因此非常适合放在 Vuex 的 store 中进行集中管理。在本项目中,采…

【北大青鸟天府校区的Java专业怎么样?】

北大青鸟天府校区是北大青鸟总部在西南投资兴办的重点校区,拥有极为强大的外部教育资源和就业资源,使咱们的学员能够享受更好、更完善的教学资源。超过23年的办学经验,培养了超过10000位学员,保障就业,学员就业率达到9…

[入门必看]数据结构2.3:线性表的链式表示

[入门必看]数据结构2.3:线性表的链式表示第二章 线性表2.3 线性表的链式表示知识总览2.3.1 单链表的定义2.3.2_1 单链表的插入删除2.3.2_2 单链表的查找2.3.2_3 单链表的建立2.3.3 双链表2.3.4 循环链表2.3.5 静态链表2.3.6 顺序表和链表的比较2.3.1 单链表的定义单…

JUC高级四:Java内存模型之JMM

JUC高级四:Java内存模型之JMM 1. 计算机硬件存储体系(JMM为什么诞生) 因为有这么多级的缓存(cpu和物理主内存的速度不一致的),CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题 在我们cpu寄存…

WebRTC开源库内部调用abort函数引发程序发生闪退问题的排查

目录 1、初始问题描述 2、使用Process Explorer工具查看到处理音视频业务的rtcmpdll.dll模块没有加载起来 3、使用Dependency Walker工具查看到rtcmpdll.dll依赖的库有问题 4、更新库之后Debug程序启动时就发生异常,程序闪退 5、VS调试时看不到有效的函数调用堆…

十大Python可视化工具,太强了

今天介绍Python当中十大可视化工具,每一个都独具特色,惊艳一方。 Matplotlib Matplotlib 是 Python 的一个绘图库,可以绘制出高质量的折线图、散点图、柱状图、条形图等等。它也是许多其他可视化库的基础。 import matplotlib.pyplot as p…

OpenCV入门(二十)快速学会OpenCV 19 对象测量

OpenCV入门(二十)快速学会OpenCV 19 对象测量1.对象测量2.多边形拟合3.计算对象中心作者:Xiou 1.对象测量 opencv 中对象测量包括: 如面积,周长,质心,边界框等。 弧长与面积测量; …

《LKD3粗读笔记》(4)进程调度

1、多任务 什么是多任务操作系统? 能同时并发地交互执行多个进程。注意是并发而不是并行。特别地,在多处理机机器上可以实现真正意义上的并行,因为它长了多个脑子多任务操作系统有哪些分类? 非抢占式多任务(cooperati…

【云原生】Kubernetes(k8s)部署 MySQL+Dubbo+Nacos服务

一、说明二、部署 MySQL三、部署 Nacos四、部署 Dubbo 服务4.1. 创建镜像仓库的密钥4.2. 部署 provider 服务4.3. 部署 consumer 服务五、测试一、说明 本文介绍基于 Kubernetes(k8s) 环境集成阿里云 私有镜像仓库 来部署一套 Dubbo Nacos 的微服务系统,并使用 Ku…

7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF

PDF 是具有数字思维的组织的重要交流工具。提供高效的工作流程和更好的安全性,可以创建重要文档并与客户、同事和员工共享。文档的布局已锁定,因此无论在什么设备上查看,格式都保持不变。这是让每个人保持一致的好方法——尤其是那些使用Micr…

C++中的引用

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C】 接下来就要开始进行C的学习路线了,听说这块的内容稍微难一些,不过我相信只要自己好好学习,态度…

java与Spring的循环依赖

java与Spring的循环依赖一、循环依赖是什么有什么危害二、循环依赖在Spring中的体现和类型三、Spirng如何解决循环依赖四、总结一、循环依赖是什么有什么危害 什么是循环依赖 java中循环依赖用一张图来说就是下图:在对象的创建过程中多个对象形成了依赖闭环&#xf…

初识linux之管道

一、进程间通信的概念大家都知道,进程是具有独立性的,因为一个程序运行起来生成进程时,也会生成它的进程结构体,即PCB,然后然后通过进程结构体中的结构体指针找到它的虚拟地址空间,然后再通过它的页表映射到…

C语言——字符函数和字符串函数【详解】(一)

文章目录函数介绍1.strlen2.strcpy3. strcat4. strcmp5. strncpy6. strncat7. strncmp8. strstr函数介绍 求字符串长度 strlen 长度不受限制的字符串函数(使用时不安全) strcpy strcat strcmp 长度受限制的字符串函数介绍(与长度不受限制函数…

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(9)

目录 写在前面: 题目:P1025 [NOIP2001 提高组] 数的划分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代…

【数据结构】哈希表

目录 1、哈希表 1.1 哈希表的简介 1.2 降低哈希冲突率 1.3 解决哈希冲突 1.3.1 闭散列 1.3.2 开散列(哈希桶) 1、哈希表 1.1 哈希表的简介 假设我们目前有一组数据,我们要从这组数据中找到指定的 key 值,那么咱们目…

【Java集合面试宝典】HashMap的put流程和特性?HashMap的扩容机制?原理— day08

目录 数组和链表分别适用于什么场景,为什么? 数组 链表 List和Set的区别 List和Map、Set的区别 HashMap 、HashTable 和TreeMap有什么区别? hashmap的特性 HashMap和HashTable有什么区别?(必会) J…

【数据结构】树的介绍

文章目录前言树的概念及结构树的概念树的表示树在实际中的运用二叉树的概念及结构二叉树的概念现实中的二叉树特殊的二叉树二叉树的性质二叉树的储存结构顺序存储链式存储写在最后前言 🚩本章给大家介绍一下树。树的难度相对于前面的数据结构来说,又高了…

ESP32设备驱动-HDC1080温度湿度传感器驱动

HDC1080温度湿度传感器驱动 文章目录 HDC1080温度湿度传感器驱动1、HDC1080介绍2、硬件准备3、软件准备4、驱动实现1、HDC1080介绍 HDC1080 是一款集成温度传感器的数字湿度传感器,可在极低功耗下提供出色的测量精度。 HDC1080 在很宽的电源范围内工作,是一种低成本、低功耗…

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析(二) 上文给简单聊了一下为什么ChatGPT不能取代数据分析师,本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一:SQL取数 背景:多数数据分析师都要用SQL语言从数据库中提取数据&#x…