【MySQL 01】数据库基础

news2024/9/22 5:14:42

目录

1.数据库是什么

2.基本操作

数据库服务器连接操作

 数据库和数据库表的创建

 服务器,数据库,表关系

数据逻辑存储

3.MySQL架构 

 4.SQL分类

5.存储引擎


1.数据库是什么

mysql&&mysqld:

  • mysql这通常指的是 MySQL 的命令行客户端工具。它是用户与 MySQL 数据库服务器(mysqld)进行交互的一种方式。用户可以通过 mysql 客户端工具输入 SQL 语句来查询、更新、管理数据库中的数据。mysql 客户端通过 TCP/IP 网络协议(或其他支持的协议)与 MySQL 服务器(mysqld)进行通信。

  • mysqld这是 MySQL 数据库的服务端守护进程(daemon)。它负责处理来自客户端(如 mysql 命令行工具、图形界面客户端、应用程序等)的请求,执行 SQL 语句,并管理数据库文件的存取。mysqld 提供了数据库的核心功能,包括数据的存储、查询、索引、事务处理等。它是 MySQL 数据库系统的核心组成部分。

MySQL本质:

        MySQL本质:基于C(mysql)S(mysqld)模式的一种网络服务mysql是一套给用户提供数据存取的服务的网络程序数据库服务指的就是mysqld。

有文件为什么不用文件存储:

        一般文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据内容的管理能力。(eg:比如我想在百万行的IP地址中,找出所有以127开头的IP地址,这种情况下,数据库只需要给出指定的命令就可以了,但是文件操作并没有这么方便)

数据库本质:

        数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据--将来在磁盘上存储的一套数据库方案。

        对数据内容存储的一套解决方案,用户给我字段或要求,数据库直接给你结果就可以。

        从物理层面来看,数据库确实也是以文件的形式存储在磁盘上的。数据库管理系统(如MySQL)提供了一套高级接口(如SQL语言),mysqld就会根据SQL语言,在数据库文件中给用户做增删查改,最后将结果返回给mysqld,mysqld再将结果交给用户

        数据库本质是文件。只不过 这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作的

2.基本操作


数据库服务器连接操作

登录指令:

  • -h [主机名或IP地址]:这个选项用来指定MySQL服务器的主机名或IP地址。如果您想连接到本地机器上的MySQL服务,可以省略这个选项(或者指定为127.0.0.1localhost)。

  • -P [端口号]:这个选项允许您指定MySQL服务器监听的端口号。MySQL的默认端口号是3306,如果您使用的是默认端口号,也可以省略这个选项。

  • -u [用户名]:这个选项用来指定登录MySQL服务器的用户名。如果不指定,通常会尝试以root用户身份登录。但出于安全考虑,推荐使用具有适当权限的特定用户进行连接。

  • -p:这个选项告诉mysql命令在连接时需要密码。注意,-p选项后面不需要立即跟密码,因为系统会提示您输入密码以确保密码的安全性。

mysql -h 192.168.1.100 -P 3306 -u myuser -p

 数据库和数据库表的创建

在ubuntu环境下查看配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

        其中有一行:datadir = /var/lib/mysql 表示MySQL的数据库文件被存储在 /var/lib/mysql 这个目录下。

        以下工作由mysql客服端让mysqld服务端做的。

1.创建数据库:

create database 数据库名;

2.列出MySQL服务器中所有的数据库。

show databases;

这就可以看到我们刚刚创建的数据库了。

在该路径下也确实新增了 hellosql数据库的目录。

所以建立数据库,本质就是建立Linux下的一个目录。

3.使用指定的数据库

use 数据库名;

就是用刚才的数据库

4.在数据库内创建表

create table 表名(字段1 字段1类型);

        这样我们就创建好了一张表,我们可以进入hellosql目录下进行查看:所以在数据库内建立表,本质就是在Linux下创建对应的文件即可。

5.往数据库中插入数据

insert into 表名(字段名) values(值);

6.查询表中所有数据

select * from 表名;

 服务器,数据库,表关系

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

数据逻辑存储

        在关系型数据库中,数据以表的形式进行组织。每个表由一系列定义好的列组成,每列代表特定类型的数据,每行则包含了一条记录,代表着一组相关数据。


3.MySQL架构 

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

MySQL架构大致分为以下三层:

1. 连接层

  • 功能:处理客户端与服务器之间的连接、认证和通信。
  • 关键组件:连接管理器、认证模块、SSL加密。

2. 查询层

  • 功能:解析SQL查询,优化查询计划,并调用存储引擎执行查询。
  • 关键组件:SQL解析器、查询优化器(不再包括已废弃的查询缓存)。

3. 存储引擎层

  • 功能:负责数据的存储、索引和检索。
  • 特点:插件式架构,支持多种存储引擎(如InnoDB、MyISAM、Memory等),每种引擎有其特定的功能和性能特点。

 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

5.存储引擎

        存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎
 

查看存储引擎:

常见存储引擎对比:

最常用的就是以下两种;

1. InnoDB

特点

  • 事务支持:支持ACID事务模型,具有提交、回滚和崩溃恢复能力。
  • 数据一致性:通过MVCC(多版本并发控制)和行级锁定,保证数据的一致性。
  • 外键支持:支持外键约束,有助于维护数据的完整性。
  • 存储方式:使用聚簇索引存储数据,表数据直接存储在主键的B+树叶节点上。

优势

  • 高可靠性和高并发性能。
  • 适用于需要事务支持和复杂查询的应用场景。

适用场景

  • 大多数应用程序场景,尤其是需要处理大量并发访问和复杂数据操作的应用。

2. MyISAM

特点

  • 非事务型:不支持事务处理。
  • 表级锁定:使用表级锁定,并发性能相对较差。
  • 全文索引:支持全文索引,适用于文本搜索。
  • 存储方式:表数据和索引分开存储,索引文件包含指向数据文件中记录的指针。

优势

  • 读取速度较快(主要指读操作),特别是全表扫描。
  • 适用于读密集型的应用场景。

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

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

相关文章

PMBOK® 第六版 排列活动顺序

目录 读后感—PMBOK第六版 目录 职场中有句玩笑话:“工作是永远做不完的,任何时候都不可能做完。”这里所吐槽的要点就在于工作任务繁多以及工作缺乏秩序。工作确实是做不完的,倘若工作都能完成,那也就不需要工作了。 工作中令人…

统信服务器操作系统【搭建FTP】设置介绍

如何在操作系统上安装vsftp服务。设置匿名用户登录、设置授权用户密码访问功能,并介绍使用匿名方式、授权用户方式访问vsftp服务。本文适用于A、D、E三个服务器操作系统版本,除安装方式的差异,其他设置均相同。 文章目录 功能概述一、功能介绍二、准备环境三、安装步骤1. 在…

MoFA: 迈向AIOS

再一次向朋友们致以中秋的祝福! MoFA (Modular Framework for Agents)是一个独特的模块化AI智能体框架。MoFA以组合(Composition)的逻辑和编程(Programmable)的方法构建AI智能体。开发者通过模版的继承、编程、定制智能体&#xf…

MobaXterm : Network error: Connection refused(连接被拒绝)

具体报错如下如所示: 首先进行问题排查 ① 检查SSH服务是否运行 sudo service ssh status ② 检查SSH服务是否已启动(启用返回 enable) sudo systemctl is-enabled ssh ③ 查看所有的端口 sudo netstat -tulnp ④ 查看SSH使用的22号端口有…

部标(JT/T1078)流媒体对接说明

1.前言 最近在配合客户开发流媒体相关的服务的时候,整理了一些对接过程资料,这里做个分享与记录。流媒体的对接主要牵扯到4个方面: (1)平台端:业务端系统,包含前端呈现界面。 (2&a…

Spring IDEA 2024 自动生成get和set以及toString方法

1.简介 在IDEA中使用自带功能可以自动生成get和set以及toString方法 2.步骤 在目标类中右键,选择生成 选择Getter和Setter就可以生成每个属性对应的set和get方法, 选择toString就可以生成类的toString方法,

推荐一款PS VR2电脑PC适配器 / 转接板方案

一、引言 随着虚拟现实技术的不断发展,PS VR2 为用户带来了沉浸式的游戏和娱乐体验。然而,为了让 PS VR2 能够与电脑连接,充分发挥其性能并拓展使用场景,需要开发一款电脑适配器 / 转接板。本技术文档方案旨在详细阐述该适配器 / …

Linux软件包管理器、Linux开发工具、vim的配置等的介绍

文章目录 前言一、Linux软件包管理器yum二、Linux开发工具1. 命令模式2. 插入模式3. 底行模式4. 三种模式的切换5. 命令模式下的快捷键 三、vim的配置总结 前言 Linux软件包管理器、Linux开发工具、vim的配置等的介绍 一、Linux软件包管理器yum 关于rzsz 这个工具用于 window…

【深度学习】聊一聊正则化

在机器学习中,正则化是一种常用的技术,用于控制模型的复杂度,减少过拟合的风险。它通过在损失函数中引入额外的项来对模型的参数进行约束或惩罚,使模型更加简单、平滑或稀疏。我们在实际应用中,经常使用的是L1和L2正则…

JAVA连接世界驾驭未来国际版二手车交易市场系统小程序源码

🚗【连接世界,驾驭未来 —— 探索国际版二手车交易市场系统】🚗 🌍 开篇:梦想无界,车行天下 🌍 在这个日新月异的时代,我们对未来的憧憬不再局限于脚下的土地。你是否曾梦想过&…

VM-Ubantu中使用vscode头文件报错——解决办法

问题 系统中头文件明明存在但是却报错 解决方法 在报错的文件中点击,shift ctrl p选择Edit Configurations(JSON) 修改文件内容 原文件内容 修改之后的内容 {"configurations": [{"name": "Linux","includePath":…

How can I integrate OpenAI Whisper model into a Kotlin app?

题意: 如何将 OpenAI Whisper 模型集成到 Kotlin 应用程序中? 问题背景: I require guidance on incorporating Whisper OpenAI into my Android application developed with Kotlin in Android Studio. Unfortunately, I havent come across any rele…

Trapezoidal Decomposition梯形分解算法(TCD)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言Trapezoidal Decomposition梯形分解算法(TCD)原理(1)第一种原理(2…

粒子向上持续瀑布动画效果(直接粘贴到记事本改html即可)

代码&#xff1a; 根据个人喜好修改即可 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>宽粒子向上…

技术周总结 09.16~09.22 周日

文章目录 一、09.16 周一1.1&#xff09;问题01&#xff1a; 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么&#xff1f;1.2&#xff09;问题02&#xff1a; 软件质量属性中…

Sharding-Jdbc+Mybatis+SpringBoot的分库分表实现

Sharding-JdbcMybatisSpringBoot的分库分表实现 1、sharding jdbc简介 Sharding-JDBC定位为轻量级java框架&#xff0c;使用客户端直连数据库&#xff0c;以jar包形式提供服务&#xff0c;未使用中间层&#xff0c;无需额外 部署&#xff0c;无其他依赖&#xff0c;DBA也无需…

SQL - 进阶语法(一)

1. SELECT TOP SELECT TOP Number|Percentage column1 from ... 选择所需要的数据的前多少行&#xff0c;Number表示具体数值&#xff0c;Percentage表示百分比 2. LIKE 搜索列元素的指定模式&#xff0c;匹配对应的信息进行自定义搜索 通常需要搭配通配符进行使用 %替代…

FPGA与Matlab图像处理之直方图均衡化

文章目录 一、什么是直方图?二、什么是直方图均衡化&#xff1f;三、Matlab实现直方图均衡化的步骤第一步&#xff1a; 彩色图像转成灰度图像第二步&#xff1a;提取亮度通道的直方图第三步&#xff1a;累计亮度通道的像素值频率第四步&#xff1a; 映射到新的灰度值 四、Veri…

使用pe工具制作ubuntu备份系统和还原系统

使用pe工具制作ubuntu备份系统和还原系统 备份系统还原系统修复磁盘教程修复引导教程为什么使用pe工具 1,因为我个人觉得这个工具实现起来比systemback软件操作起来报错少些,而且装的快,其他系统同理 实验准备 1,一个电脑,一个pe启动U盘 备份系统 插入U盘,开机进入pe系…

数据结构|二叉搜索树

&#x1f36c; mooridy-CSDN博客 &#x1f36c;数据结构专栏&#xff08;更新中&#xff09; 目录 1. ⼆叉搜索树的概念 2. ⼆叉搜索树的性能分析 3.⼆叉搜索树key和key/value key搜索场景 key/value搜索场景 4. 二叉搜索树的代码实现 4.1 ⼆叉搜索树的插⼊ 4.2 ⼆叉搜索…