首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

《剑指数据库:MySQL基础·古风溯源》

  • 25-03-07 16:01
  • 2413
  • 13658
blog.csdn.net

 

一、前言

      在安装完MySQL后,接下来就为小伙伴介绍一下数据库基础,希望大家能够有所收获!!!

二、正文

1.数据库基础

1.1 什么是数据库

有小伙伴可能会问存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据有以下几个缺点:

①文件的安全性问题

②文件不利于数据查询和管理

③文件不利于存储海量数据

④文件在程序中控制不方便

数据库存储介质:

①磁盘

②介质

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。 

1.2 主流数据库

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。

Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。 MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。

PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。

SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库 中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

1.3 基本使用

1.3.1 MySQL安装

CentOS 6.5下编译安装MySQL 5.6.14_

 CentOS 7 通过yum安装 MariaDB

 Windows下安装MySQL5.7

1.3.2 连接服务器 

输入:

  1. ​
  2. mysql -h 127.0.0.1 -P 3306 -u root -p
  3. ​

输出:

  1. ​Enter password: ****
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. Your MySQL connection id is 2
  4. Server version: 5.7.21-log MySQL Community Server (GPL)
  5. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  6. Oracle is a registered trademark of Oracle Corporation and/or its
  7. affiliates. Other names may be trademarks of their respective
  8. owners.
  9. Type 'help;' or '\h' for help. Type '\c' to clear the current input
  10. statement.
  11. mysql>
  12. ​

注意:

如果没有写 -h 127.0.0.1 默认是连接本地

如果没有写 -P 3306 默认是连接3306端口号

1.3.3 服务器管理

●执行 win+r 输入 services.msc 打开服务管理器

●通过下图左侧停止,暂停,重启动按钮进行服务管理

1.3.4 服务器,数据库,表关系

●所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。

●为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

●数据库服务器、数据库和表的关系如下:

1.3.5 使用案例

● 创建数据库

create database helloworld;

● 使用数据库

use helloworld;

● 创建数据库表

  1. create table student(
  2.   id int,
  3.   name varchar(32),
  4.   gender varchar(2)
  5. );

● 表中插入数据

  1. insert into student (id, name, gender) values (1, '张三', '男');
  2. insert into student (id, name, gender) values (2, '李四', '女');
  3. insert into student (id, name, gender) values (3, '王五', '男');

● 查询表中的数据

select * from student;
1.3.6 数据逻辑存储

1.4 MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

1. MySQL数据库的基本架构组成

MySQL的架构可以划分为两个主要部分:

  • ‌服务器层(Server Layer)‌:负责处理客户端的连接、查询解析、优化和执行等操作。
  • ‌存储引擎层(Storage Engine Layer)‌:负责数据的存储和提取,MySQL支持多种存储引擎,可以根据需要选择合适的存储引擎。

2. MySQL架构中的服务器层

服务器层是MySQL的核心部分,它包含以下几个关键组件:

  • ‌连接器(Connector)‌:处理客户端的连接请求,包括用户认证和权限检查。
  • ‌查询缓存(Query Cache)‌:在MySQL 8.0之前的版本中,查询缓存用于存储常用的查询结果,以减少重复查询的开销。但由于查询缓存的失效问题,MySQL 8.0已经移除了这一功能。
  • ‌分析器(Parser)‌:对SQL语句进行词法分析和语法分析,确保SQL语句的正确性。
  • ‌优化器(Optimizer)‌:根据分析器的结果,选择最优的执行计划,包括索引选择和表连接顺序等。
  • ‌执行器(Executor)‌:按照优化器生成的执行计划,调用存储引擎的API来执行SQL语句,并返回结果。

3. MySQL架构中的存储引擎层

存储引擎层是MySQL的数据存储和提取机制,它支持多种存储引擎,每种存储引擎都有其独特的特点和适用场景。MySQL支持的主要存储引擎包括:

  • ‌InnoDB‌:支持事务处理、外键约束和行级锁,是MySQL的默认存储引擎。
  • ‌MyISAM‌:不支持事务和外键,但访问速度快,适合只读或读多写少的场景。
  • ‌Memory‌:数据存储在内存中,速度极快,但数据在数据库重启后会丢失。
  • ‌NDB‌:一种集群存储引擎,支持高可用性和高扩展性。

1.5 SQL分类

●DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter DML【data manipulation language】 数据操纵语言,用来对数据进行操作 代表指令: insert,delete,update

●DML中又单独分了一个DQL,数据查询语言,代表指令: select

●DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务 代表指令: grant,revoke,commit

1.6 存储引擎

1.6.1 存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。

1.6.2 查看存储引擎
show engines;

1.6.3 存储引擎对比

三、 结语

          到此为止,本文关于MySQL基础内容到此结束了,如有不足之处,欢迎小伙伴们指出呀!

         关注我 _麦麦_分享更多干货:_麦麦_-CSDN博客

         大家的「关注❤️ + 点赞? + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下期见!

一枚积极学习,乐于分享的苏苏子
QQ名片
注:本文转载自blog.csdn.net的_麦麦_的文章"https://blog.csdn.net/m0_73953114/article/details/145669264"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

112
数据库
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top