当前位置: 首页 > news >正文

MySQL :MySQL基本概念

MySQL :MySQL基本概念

  • (一)数据库概念
    • 1.主流数据库
    • 2.mysql和mysqld的区别
  • (二) 基本使用操作
    • 登录数据库
    • 使用数据库
  • (三) 服务器、数据库、表关系
  • (四)MySQL架构
  • (五)SQL语句分类
  • (六) 存储引擎

登录mysql
在这里插入图片描述

(一)数据库概念

数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合

普通文件也可以存储数据为什么要使用数据库呢?

文件保存数据有以下几个缺点:
文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便

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

数据库具备简单、高效、可靠管理数据的特性,可以轻而易举的对数据进行操作;数据库由两部分组成:客户端 Client、服务器 Server,是一种 基于 CS 模式的网络服务,用户只需要使用 客户端 向 服务器 发出 SQL 语句,等待结果即可,这是非常方便的。

数据库存储介质:

  • 磁盘
    MySQL 数据库是将数据存储在 磁盘 中,称为 磁盘数据库
    磁盘数据库 将数据存储在 磁盘 中,在 持久化保存 上有明显优势,但 IO 次数势必会增多,为了提高自己的存储效率,磁盘数据库 拥有自己的缓存机制,即 高效 IO
  • 内存
    将数据存储在 内存 中,称为 内存数据库 / 主存数据库,比如 Redis 就是这种存储模式
    内存数据库 中的数据存储在 内存 中,最大的优点就是 数据读写非常快,可以大大提高操作效率;内存数据库 并非完全不使用磁盘,比如数据库的启动信息、初始数据就得存储在磁盘中,其他涉及操作的数据存储在 内存 中,直接进行运算,为了防止数据丢失,内存数据库 通常会定期将数据转存到磁盘中,确保持久化存储

磁盘数据库和内存数据库都是数据库管理系统的存储方式,它们各自有自己的特点和适用场景

1.主流数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

2.mysql和mysqld的区别

在这里插入图片描述
可以看到这里有两个mysql 那么这都是什么呢??

mysql和mysqld在不同的文件中,mysql在/usr/bin/mysql 而 mysqld在/usr/sbin/mysqld中。

mysqld发现其实是个守护进程,其实这个mysqld(d表示deamon)是个数据库的服务器端,这个mysql是个数据库的客户端,所以我们平常学习到的mysql就是个基于C(mysql)S(mysqld)模式下的一种网络服务。
在这里插入图片描述

一般的文件确实提供了数据的存储功能,但是文件并没有提供良好的数据内容管理能力,所以数据库就是对数据内容存储的一套解决方案,当用户给到了字段或者要求,数据库服务器直接拿出结果给用户即可。换而言之,就是用户提出需求(在mysql客户端),mysqld(服务端)根据这些内容自己生成对应的解决方案返回给用户。

在这里插入图片描述

(二) 基本使用操作

登录数据库

mysql -u 用户 -p -h IP地址 -P 端口

在这里插入图片描述

如果是直接在云服器中登录,可以不指定 -h 和 -P。

mysql -u root -p

使用数据库

  • 查看MySQL系统中的数据库。
//查看数据库
mysql> show databases;

在这里插入图片描述

上面的数据库内容是数据库系统自带的。

  • 创造一个数据库
mysql> create database 数据库名;

在这里插入图片描述

MySQL 运行所产生的数据都存储在 /var/lib/mysql 目录中,当我们新建一个数据库后,实际就是在 mysql 目录中新建了一个目录(文件夹)
在这里插入图片描述

  • 使用数据库
    使用数据库,MySQL 中会有很多数据库,在进行 建表、查询 等操作前,需要先指明使用哪一个数据库进行操作。
mysql> use 数据库名字;
  • 创建数据库表
create table student(
name varchar(32),
age int,
gender varchar(2)
);
  • 向表中插入数据,以及查询表中信息
    在这里插入图片描述

实际上创建表的本质也是在创建文件,进入 HelloWorld 目录,可以看到这个目录下确实多了一个名为 student 的相关文件。
在这里插入图片描述

(三) 服务器、数据库、表关系

  • 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
  • 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
  • 数据库服务器、数据库和表的关系如下:
    在这里插入图片描述
    在这里插入图片描述

为什么是在这个路径下??
因为我们在 mysql的配置文件上 加上了数据库数据的默认存放处。
在这里插入图片描述

(四)MySQL架构

MySQL 是一个可移植的数据库,可以在几乎所有操作系统上运行,但主要在 Linux 类似的服务器后端中运行得益于优秀的分层设计,MySQL 能保证在各个平台运行时,物理体系结构的一致性,具体分层如下:
在这里插入图片描述

  • 第一层:解决安全和连接管理
  • 第二层:词法、语法分析以及 SQL 语句优化
  • 第三层:完成数据的存储方案

(五)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

(六) 存储引擎

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

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

查看引擎也可以用 show engines \G;

在这里插入图片描述

存储引擎有很多,主要记住两个就行了:InnoDB 和 MyISAM,这两个数据库几乎覆盖了 80% 的业务场景。

  • InnoDB 适合需要事务支持、数据完整性和高并发性能的应用
  • MyISAM 可能适用于只读数据、全文搜索或特定用途的应用

相关文章:

  • 安全生产例题
  • day2 MySQL表数据操作
  • 大数据分析06 数据排序汇总
  • 常见JDK安装配置
  • 代码随想录算法训练营第60期第四十九天打卡
  • 卷积神经网络(CNN):原理、架构与实战
  • 火山引擎声音复刻
  • 【Python】2. 基础语法(2)
  • KV Cache:大模型推理加速的核心机制
  • 八、【状态管理篇】:Pinia 在大型应用中的状态管理实践
  • mediapipe标注视频姿态关键点(基础版加进阶版)
  • SE91 找到报错的程序
  • MySQL的参数 innodb_force_recovery 详解
  • 研发中的隐形瓶颈:知识为何越来越难被留下?
  • 清理skywalking历史索引
  • C++:设计模式--工厂模式
  • 【MySQL】第11节|MySQL 8.0 主从复制原理分析与实战
  • 看fp脚本学习的知识1
  • vmvare 虚拟机内存不足
  • atomic.Value与sync.map有什么区?
  • 网站策划流程/游戏优化大师官方下载
  • 重庆物流公司网站建设/免费宣传网站
  • 小型手机网站建设多少钱/如何检测网站是否安全
  • pc网站开发制作/如何做好百度推广
  • 帮人做网站赚多少钱/百度认证怎么认证
  • 织梦网站建设案例/高级搜索引擎