MySQL数据库基础(2):数据库基础 雨落在了我的手上个人主页个人仓库Gitee仓库❄️个人专栏JaveSe C语言 C语言数据结构 MySQL数据库基础 Java数据结构 人生格言无人扶我青云志我自踏雪至山巅博主简介目录一本节⽬标二数据库简介1.什么是数据库2.为什么要使⽤数据库3.主流数据库4.什么是关系型数据库三MySQL安装和配置1.安装和配置2.数据库服务器数据库与表之间的关系四客⼾端⼯具1.mysql2.Workbench3.Navicat Lite版五客⼾端与服务器的通讯⽅式1.C/S架构与B/S架构六SQL简介1.什么是SQL2.SQL分类七MySQL架构八存储引擎1.简介2.查看存储引擎3.存储引擎对⽐内容大纲本文系统介绍了关系型数据库的基本概念、作用及MySQL的安装配置。重点讲解了数据库的持久化、结构化存储、安全性与事务管理等优势对比了主流关系型与非关系型数据库。详细阐述了MySQL在Windows/Linux下的安装、客户端工具如mysql命令行、Workbench、Navicat的使用以及C/S与B/S架构的区别。同时介绍了SQL语言分类DDL、DML、DCL、MySQL架构组成及核心组件——存储引擎通过对比MyISAM、InnoDB等引擎特性帮助读者理解不同场景下的选型依据。一本节⽬标• 掌握关系型数据库数据库的作⽤• 掌握在Windows和Linux系统下安装MySQL数据库• 了解客⼾端⼯具的基本使⽤和SQL分类• 了解MySQL架构和存储引擎二数据库简介1.什么是数据库数据库是20世纪60年代末发展起来的⼀项重要技术已经成为计算机科学与技术的⼀个重要分 ⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问题数据处理的主要内容是数据的存储、查 询、修改、排序和统计等。2.为什么要使⽤数据库1. 数据持久化数据库可以将数据保存在存储介质中即使应⽤程序关闭或服务器重启数据也不会 丢失。2. 数据结构化数据库能够以结构化的⽅式存储数据使得数据易于管理和查询。3. 数据完整性数据库管理系统DBMS提供了数据完整性的保障确保数据的准确性和⼀致性。4. 并发控制数据库可以处理多个⽤⼾或进程同时访问和修改数据同时确保数据的⼀致性。5. 安全性数据库提供了多种安全机制如访问控制、加密等保护数据不被未授权访问。6. 可扩展性随着数据量的增⻓数据库可以⽔平或垂直扩展以适应不断增⻓的数据需求。7. 备份和恢复数据库⽀持数据的备份和恢复以防数据丢失或损坏。8. 查询优化数据库系统提供了⾼效的查询优化器可以快速执⾏复杂的查询操作。9. 事务管理⼤部分关系型数据库都⽀持事务确保⼀系列操作要么完全成功要么完全失败提⾼ 了操作的可靠性。10. 多⽤⼾⽀持数据库允许多个⽤⼾同时访问和操作数据适合多⽤⼾环境。3.主流数据库关系型数据库• Oracle甲⻣⽂产品适合⼤型项⽬业内最强的数据库没有之⼀需要收费。• MySQL开源免费最受欢迎的数据库在中⼩企业中普及率⾮常⾼属于甲⻣⽂主要⽤在电 商论坛等。• PostgreSQL加州⼤学伯克利分校计算机系开发的关系型数据库可以免费使⽤修改和分发。 • SQLSever微软推出的⼀款专业级数据库与旗下的操作系统编程环境配合使⽤适⽤于中⼤ 型项⽬。• SQLite⼀款轻型的数据库占⽤资源⾮常低常⽤于嵌⼊式设备⼿机APP桌⾯程序等场景。⾮关系型数据库• Redis流⾏的基于键值对的内存数据库常⽤作缓存⽀持数据持久化⽀持多种数据结构。• MongoDB基于NoSQL的⽂档型数据库易扩展⾼性能⾼可⽤性⽀持丰富的查询和聚合操 作。4.什么是关系型数据库关系型数据库是指采⽤了关系模型来组织数据的数据库以⾏和列的形式存储数据。关系模型可 以简单理解为⼆维表格模型⽽⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组 织。三MySQL安装和配置1.安装和配置安装和配置看上章内容这里我们就跳过了2.数据库服务器数据库与表之间的关系• 数据库服务器是指在机器上安装了⼀个数据库管理系统程序这个管理程序可以管理多个数据库 ⼀般开发⼈员会针对每⼀个应⽤创建⼀个数据库。• 为保存应⽤中实体的数据⼀般会在数据库中创建多个表以保存程序中实体的数据。• 数据库服务器、数据库和表的关系如下四客⼾端⼯具1.mysqlMySQL安装成功后⾃带的命令⾏客⼾端⼯具可以输⼊命令和执⾏SQL语句mysql的基本使⽤⾮常 简单打开终端并输⼊以下命令使 ⽤前检查PATH环境变量中是否配置了mysql所在⽬录# 使用mysql客户端连接服务器 C:\Users\bitmysql -uroot -p # 输入密码 Enter password: your_password Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 8.0.39 MySQL Community Server - GPL Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type help; or \h for help. Type \c to clear the current input statement. # 编写SQL语句 mysql select version(); ----------- | version() | ----------- | 8.0.39 | ----------- 1 row in set (0.00 sec) # 查询结果 mysql # 这里可以继续输入数据库操作指令2.WorkbenchMySQL官⽅提供的可视化客⼾端⼯具运⾏后如下所⽰3.Navicat Lite版业内⼴泛使⽤的可视化客⼾端⼯具现在出了免费的Lite版本对于学习中编写SQL语句完全够⽤推 荐使⽤第⼀次使⽤要先配置连接如下图所⽰• 新建连接• 配置连接并测试• 新建查询五客⼾端与服务器的通讯⽅式1.C/S架构与B/S架构• C/S架构即客⼾端/服务器架构模式• B/S架构即浏览器/服务器架构模式CS 架构C/S 架构全称是客⼾端/服务器(Client/Server)架构是常⽤的两层架构。客⼾端需要安装客⼾ 端软件服务端程序运⾏在服务器上提供Socket或数据库服务。使 ⽤客⼾端与MySQL数据库服务器通讯属于C/S架构常⽤于固定⽤⼾群体中。常⻅的C/S架构的应⽤⽐如QQCCTALK各种⽹络游戏等等⼀般需 要安装并且与服务器进⾏⽹络通信的都属于此类。优点• ⼤部分业务都可以在客⼾端完成充分利⽤本地的计算机资源• 响应速度快• 个性化定制能⼒强• ⾯向相对固定的⽤⼾群对信息安全的控制能⼒强缺点• 需要安装客⼾端才能使⽤• 维护成本⾼任何⼀台电脑上的客⼾端出现问题都需要进⾏维护升能过程繁琐BS架构B/S架构全称是浏览器/服务器(Browser/Server)结构分为Web浏览器、服务器程序、数据库服 务三部分可以理解为是对C/S架构⼀种改进。由于所有的业务逻辑都由服务器程序处理所以客⼾端 仅使⽤浏览器就可以完成所有操作⼤⼤降低了客⼾端的维护成本。常⽤于对公开⽤⼾提供的⽹络服务中。⽐如常⻅的⼤型⽹站都属于此类。优点• 客⼾端零维护只需要安装⼀个浏览器即可• 所有业务都集中在服务器端业务扩展⾮常⽅便• 维护成本低只需要维护服务器即可缺点• 服务器安全与业务处理能⼒需要花费很⼤精⼒与成本• 不同浏览器⽀持不尽⼈意六SQL简介1.什么是SQLSQLStructuredQueryLanguage是结构化查询语⾔的简称是⼀种数据库查询和程序设计语⾔ ⽤于存取数据以及查询、更新和管理关系数据库。2.SQL分类• DDL 【 Data Definition Language 】 数据定义语⾔⽤来维护存储数据的结构代表指令:create, drop ,alter• DML 【 Data Manipulation Language 】 数据操纵语⾔⽤来对数据进⾏操作代表指令insertdeleteupdateselect• DCL 【 Data Control Language 】 数据控制语⾔主要负责权限管理和事务代表指令grantrevokecommit七MySQL架构MySQL8.0服务器是由连接池、服务管理⼯具和公共组件、NoSQL接⼝、SQL接⼝、解析器、优 化器、缓存、存储引擎、⽂件系统组成。MySQL还为各种编程语⾔提供了⼀套⽤于外部程序访问服务 器的连接器。整体架构图如下所⽰八存储引擎1.简介存储引擎是MySQL数据库处理数据的核⼼组件不同的存储引擎对数据如何存储、索引、更新和 查询的实现⽅式各有不同在不同的业务场景可以选⽤合适的存储引擎。MySQL服务器采⽤可插拔的 存储引擎架构在服务器运⾏时可以动态的加载和卸载2.查看存储引擎查看当前服务器⽀持哪些存储引擎可以使⽤ SHOW ENGINES 语句结果如下图所⽰INNODB默认的 存储引擎3.存储引擎对⽐FeatureMyISAMMemoryInnoDBArchiveB-tree indexesYesYesYesNoBackup/point-in-time recovery (note 1)YesYesYesYesCluster database supportNoNoNoNoClustered indexesNoNoYesNoCompressed dataYes (note 2)NoYesYesData cachesNoN/AYesNoEncrypted dataYes (note 3)Yes (note 3)Yes (note 4)YesForeign key supportNoNoYesNoFull-text search indexesYesNoYes (note 6)NoGeospatial data type supportYesNoYesYesGeospatial indexing supportYesNoYes (note 7)NoHash indexesNoYesNo (note 8)NoIndex cachesYesN/AYesNoLocking granularityTableTableRowRowMVCCNoNoYesNoReplication support (note 1)YesLimited (note 9)YesYesStorage limits256TBRAM64TBNoneT-tree indexesNoNoNoNoTransactionsNoNoYesNoUpdate statistics for data dictionaryYesYesYesYes注意在服务器端实现而不是在存储引擎中实现。仅在使用压缩行格式时支持压缩的 MyISAM 表。使用压缩行格式的 MyISAM 表为只读。通过加密函数在服务器端实现。通过加密函数在服务器端实现在 MySQL 5.7 及更高版本中支持静态数据加密data-at-rest encryption。通过加密函数在服务器端实现从 NDB 8.0.22 开始支持加密的 NDB 备份NDB 8.0.29 及更高版本支持透明 NDB 文件系统加密。从 MySQL 5.6 及更高版本开始支持 FULLTEXT 索引。从 MySQL 5.7 及更高版本开始支持地理空间索引。InnoDB 在其自适应哈希索引Adaptive Hash Index功能内部使用哈希索引。参见后面的讨论。以上就是我们的全部内容了