【数据库初阶】数据库基础知识

news2024/12/26 17:37:39
图片名称
🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

在这里插入图片描述

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 数据库基础知识 帮助您轻松入门,快速掌握核心概念。


如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

文章目录

    • @[toc]
  • 1. MySQL 的基本使用方法
    • 1.1 连接服务器
    • 1.2 Windows 系统开启Mysql服务
  • 2. 什么是数据库
    • 2.1 mysql 与 mysqld
    • 2.2 Linux 系统中的数据库
    • 2.3 创建数据库和数据库表
  • 3. mysqld 架构
    • 3.1 架构解释
    • 3.2 查看存储引擎
  • 4. SQL语句分类

上一篇文章中,博主介绍了 :

  • Ubuntu 系统中如何安装和卸载 MySQL;

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【MySQL初阶】Ubuntu 安装与卸载 MySQL

那么接下来正文开始:



1. MySQL 的基本使用方法

1.1 连接服务器

  • 实际上,MySQL 是一种 网络服务,它允许别的主机来访问本地的数据库;
  • 因此,当一个主机要访问另一台主机上的数据库是,可以采用一下命令:
    • mysql -h 主机IP地址 -P mysql网络端口号 -u 登录用户 -p 用户密码;
    • 由于我们现在访问的大概率都是本地的主机,所以前两个可以省略,采用如下方式即可:
      • mysql -uroot -p
    • 至于这里为什么会出现端口号呢?我们知道 mysql 的默认端口号是 3306;
    • 但是实际上在很多公司中,为了保护数据的安全,经常会将这个默认端口号进行修改,我们也是可以在MySQL的配置文件中进行修改的:
      • 在这里插入图片描述

      • 在这里插入图片描述

1.2 Windows 系统开启Mysql服务

  • 我们可以输入 Win + r,然后输入 services.msc 打开服务管理器;
  • 找到 Mysql,通过图标进行停止、暂停、重启。

在这里插入图片描述


2. 什么是数据库

  • 在操作系统中,有文件管理,为什么还需要数据库呢?
  • 可以想象一下,有一个包含十万行IP地址的文件,如果现在要找出IP地址是120开头的,且要统计一下出现的次数;
  • 作为程序员,我们可以在cpp或者java等语言中一行行读取文件内容,并进行比对,稍微有点麻烦;
  • 但是数据库,是在磁盘或者内存中存储的特定结构组织的数据,我们只需要输入特定的指令,数据库就知道我们想要干什么,然后它就会把我们想要的结果告知我们;
  • 所以,可以在磁盘或者内存中找到 存储数据库的方案;
  • 那么我们应该如何让数据库知道我们想要做什么呢?

2.1 mysql 与 mysqld

  • 实际上,我们在下载MySQL的时候,是下载了两个东西,第一个是mysql,第二个是mysqld
  • 其中mysql是客户端,mysqld是服务器;
    • 这里的d表示的是daemon,守护进程的意思。

我们可以来看一下:

在这里插入图片描述

  • 因此MySQL的本质是基于CS模式的网络服务!
  • 我们平时使用的就是客户端mysql,而mysqld就是读取了我们的指令,然后在内部分析我们的指令,然后在磁盘上进行增删查改;
  • 我们可以抽象的想象成数据库就是在磁盘上的 “文件”。

看一下下面这幅图:

在这里插入图片描述

稍微总结一下:

  1. 一般情况下,文件系统确实提供了数据存储功能,但是并没有为用户提供非常好的数据管理功能
  2. 所以数据库的本质就是对数据内容存储的一套解决方案,用户只要给出字段或者要求,数据库直接给出回显就行。

2.2 Linux 系统中的数据库

  • Linux中,在MySQL配置文件中,有一个字段是 datadir,表示的是数据库的存储位置,我们可以来验证一下:

    • 在这里插入图片描述
  • 然后,我们登录一下mysql,看一下有什么数据库:

    • 在这里插入图片描述

    • 发现在 /var/lib/mysql 路径中,深颜色的就代表着我们已经创建的数据库,因此数据库在 Linux 系统中就是目录!

2.3 创建数据库和数据库表

  • 我们可以重新创建一个数据库,比如就叫helloworld:

    1. 创建数据库:

      create database helloworld;
      
    2. 使用数据库:

      use helloworld;
      
    3. 创建数据库表:

      create table student(
          id int,
          name varchar(32),
          gender varchar(2)
      );
      
    4. 为表中插入数据:

      insert into student (id, name, gender) values (1, '张三', '男');
      insert into student (id, name, gender) values (2, '李四', '女');
      insert into student (id, name, gender) values (3, '王五', '男');
      
    5. 查询表中数据:

      select * from student;
      
  • 在这里插入图片描述

  • 我们可以看一下在数据库存储的位置中发生了些什么:

    • 在这里插入图片描述

    • 可以发现,我们创建的表实际上就会在数据库这个目录中创建出一个文件

    • 这个文件是二进制形式的,并不是把我们的表完全一样的存储起来:

      • 在这里插入图片描述

再总结一下:

  1. 建立数据库,本质就是在Linux中建立一个目录;
  2. 在数据库中建立一个表,本质就是在在数据库目录中建立一个文件;
  3. 数据库本身也是文件,只不过这些文件并不是直接由用户操作,而是数据库服务器帮我们操作!

因此就有了下面一幅图:

在这里插入图片描述


3. mysqld 架构

3.1 架构解释

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

在这里插入图片描述

mysqld 层状解释

  1. 第一层是连接池,因为MySQL是网络服务,所以需要处理来连接的主机;
  2. 第二层主要目的是为了检查客户端的指令是否是合法的,要进行词法分析、语法分析,除此之外还要对这个指令进行优化
  3. 对于优化后的指令,第三层就是存储引擎,这层有点类似于OS中的驱动层,对于每种指令,一般都会选择最优秀、效率最高的引擎来处理,常用的有InnoDBMyISAM,其中InnoDB支持transaction事务),这也是它常用的原因;
  4. 最后一层就是OS中的文件系统

3.2 查看存储引擎

  • 存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
  • 我们可以用指令 show engines 来查看MySQL的引擎:
    • 在这里插入图片描述

4. 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】726、原子的数量

【LeetCode】726、原子的数量 文章目录 一、递归: 嵌套类问题1.1 递归: 嵌套类问题 二、多语言解法 一、递归: 嵌套类问题 1.1 递归: 嵌套类问题 遇到 ( 括号, 则递归计算子问题 遇到大写字母, 或遇到 ( 括号, 则清算历史, 并开始新的记录 记录由两部分组成: 大写字母开头的 …

财经英语期末考试复习

文章目录 第一篇第二篇第三篇第四篇思路梳理作文撰写 第一篇 李宁是中国运动服装和鞋类行业的领导者,这源于其创始人,同名体操冠军李宁的愿景. Ling-Ning is the Chinese leader in athletic apparel and footwear, rooted in the vision of its founder and namesake,the cha…

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集VA-I-FGSM介绍相关定义算法流程 VAI-FGSM代码实现VAI-FGSM算法实现攻击效果 代码汇总vaifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对…

20241225在ubuntu20.04.5下监控SSD

20241225在ubuntu20.04.5下监控SSD 2024/12/25 20:29 参考资料: 百度:ubuntu查看ssd寿命 方法 1:使用「磁盘」工具监测 SSD 健康状态 sudo apt install gnome-disk-utility 方法 2:使用 smartctl 工具检查 SSD 健康状态 Ubuntu 和…

mvn install:install-file jar 打入本地仓库

安装指定文件到本地仓库命令:mvn http://install:install-file -DgroupId : 设置上传到仓库的包名 -DartifactId : 设置该包所属的模块名 -Dversion1.0.0 : 设置该包的版本号 -Dpackagingjar : 设置该包的类型(很显然jar包) -Dfile : 设置该jar包文件所在的路径…

CentOS下,离线安装vscode的步骤;

前置条件: 1.CentOS7; 步骤: 1.下载vscode指定版本,例如; 例如 code-1.83.1-1696982959.el7.x86_64.rpm 2.使用下面命令: sudo rpm -ivh code-1.83.1-1696982959.el7.x86_64.rpm 其他: 卸载vscode的命…

【CSS in Depth 2 精译_087】14.4:CSS 中的浮动特效以及在文字环绕中的应用 + 14.5:本章小结

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 14.2.1 带渐变效果的蒙版特效14.2.2 基于亮度来定义蒙版14.2.3 其他蒙版属…

2025考研加油!Jing也加油哦!

一恍惚,离自己考研初试过去都两年了!研究生生活也过去一大半!借此机会也总结一下研究生这一段生活——研究生生活(上) About I 昨天实验室聚餐,作为老生欢迎新生,啊啊啊,真的没想到…

Flink调优----资源配置调优与状态及Checkpoint调优

目录 第 1 章 资源配置调优 1.1 内存设置 1.1.1 TaskManager 内存模型 1、内存模型详解 2、案例分析 1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源 1.2.1 使用 DefaultResourceCalculator 策略 1.2.2 使用 DominantResourceCalculator 策略 1.2.3 使用 DominantRes…

9. zynq应用开发--makefile编译

3. 使用SDK工具 如果只做 Linux 应用开发,只需要一个 sdk.sh 文件即可,可以脱离 Petalinux 和 Vitis,也可以编译其三方的应用,可以说一劳永逸。 配置根文件系统 petalinux-config -c rootfs 编译SDK petalinux-build --sdk Linu…

【ORB-SLAM3:相机针孔模型和相机K8模型】

在ORB-SLAM3中,相机的建模是 SLAM 系统的核心之一,因为它直接影响到如何处理和利用图像数据进行定位和地图构建。ORB-SLAM3 支持不同的相机模型,其中包括针孔模型和鱼眼模型(K8 模型)。下面分别介绍这两种模型。 相机…

element-plus在Vue3中开发相关知识

报错&#xff1a;error.mjs:20 ElementPlusError: [ElForm] model is required for resetFields to work. 原因&#xff1a;el-form使用v-model没有把内容绑定上&#xff0c;需要使用 :model 才可以校验 将&#xff1a; <el-form label-width"auto" class"…

HarmonyOS NEXT 实战之元服务:静态案例效果--- 日出日落

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; import { authentication } …

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;WebStorm 目录 出现错误的情况 报错&#xff1a; 代码&#xff1a; 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

基础运维学习计划-base版

目录 需要学习的内容&#xff1f; liunx基础 sql/mysql基础 tcp/ip协议基础 http基础 dns基础 网络基础&#xff1a;交换&路由概念&原理 常见网络协议 月学习计划 12.26 日 &#xff08;bilibili自己找视频看看&#xff0c;资源很多&#xff09; 12.27日 1…

亚信安全与方天股份达成战略合作,双向奔赴助力数字化转型

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与青岛方天科技股份有限公司&#xff08;以下简称“方天股份”&#xff09;签订合作框架协议。双方强强携手&#xff0c;在网络安全运营平台共建、信息化项目安全支撑、政企市场拓展…

117.【C语言】数据结构之排序(选择排序)

目录 1.知识回顾 2.分析 设想的思路 代码 执行结果 ​编辑 错误排查和修复 详细分析出错点 执行结果 3.正确的思路 4.其他问题 1.知识回顾 参见42.5【C语言】选择排序代码 点我跳转 2.分析 知识回顾里所提到的文章的选择排序一次循环只比一个数字,和本文接下来要…

画展在线上通过虚拟展厅展览,如何实现?有何好处?

画展在线上通过虚拟展厅展览的实现方式及好处可以归纳如下&#xff1a; 一、实现方式 1、技术基础&#xff1a; 虚拟现实&#xff08;VR&#xff09;技术&#xff1a;利用VR技术&#xff0c;观众可以佩戴VR设备身临其境地参观展厅&#xff0c;与展品进行直观互动。 三维建模…

WordPress Tutor LMS插件 SQL注入漏洞复现(CVE-2024-10400)

0x01 产品简介 WordPress Tutor LMS插件是一款功能丰富且强大的学习管理系统(LMS)插件,它专为WordPress平台设计,旨在帮助用户轻松创建、管理和销售在线课程。功能强大且易于使用的学习管理系统插件。它提供了完整的在线课程市场解决方案,帮助用户轻松创建、管理和销售在…

Spring源码_05_IOC容器启动细节

前面几章&#xff0c;大致讲了Spring的IOC容器的大致过程和原理&#xff0c;以及重要的容器和beanFactory的继承关系&#xff0c;为后续这些细节挖掘提供一点理解基础。掌握总体脉络是必要的&#xff0c;接下来的每一章都是从总体脉络中&#xff0c; 去研究之前没看的一些重要…