当前位置: 首页 > 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 可能适用于只读数据、全文搜索或特定用途的应用
http://www.xdnf.cn/news/678475.html

相关文章:

  • 高性能计算 | 硅光芯片代工厂揭秘——技术特点与未来演进
  • SpringBoot集成jwt,实现token验证
  • 鸿蒙OSUniApp 实现自定义的侧边栏菜单组件#三方框架 #Uniapp
  • SQLord: 基于反向数据生成和任务拆解的 Text-to-SQL 企业落地方案
  • CMake 在尝试下载 Boost 时失败:SHA256 校验和与预期值不匹配
  • 【第1章 基础知识】1.8 在 Canvas 中使用 HTML 元素
  • 力扣HOT100之回溯:131. 分割回文串
  • 基于Matlab实现各种光谱数据预处理
  • Turf.js:前端地理空间分析的瑞士军刀
  • 2025山东CCPC补题
  • 基于Python的简易聊天机器人实现:从原理到实践
  • 组合API-provide和inject函数
  • 多模态机器学习
  • Android 开发:从 View Activity 向 Compose Activity 传递数据的多种实现方式
  • [yolov11改进系列]基于yolov11引入可改变核卷积AKConv的python源码+训练源码
  • QCustomPlot设置曲线图中文字缩放大小
  • 微信小程序一次性订阅封装
  • Linux 权限管理基础:深入理解 root 与 sudo 的用法
  • 【监控】Spring Boot 应用监控
  • libvirt设置虚拟机mtu实现原理
  • 决策树 GBDT XGBoost LightGBM
  • ETL数据集成过程全流程优化指南
  • ICMP与TCP端口:网络层与传输层解析
  • 尚硅谷redis7 49-51 redis管道之理论简介
  • Python的虚拟环境
  • 4 月 62100 款 App 被谷歌下架!环比增长 28%
  • 英码科技携带 “无感知AI数字课堂”解决方案,亮相第22届广东教育装备展
  • redis高并发问题
  • Common JS和ES Module的区别
  • 6.4.5_关键路径