初识MySQL · 数据库

news2024/11/29 11:41:34

目录

前言:

数据库

简单使用 + 存储引擎


前言:

本文也是MySQL的第一篇文章了,新的知识点已经出现,怎么能够停止不前,穿越时空……(迪迦奥特曼乱入哈哈哈)。

言归正传,我们在本文的目标有:

1 什么是数据库 2 主流数据库有哪些 3 MySQL的基本使用 4 MySQL的基本架构 5 存储引擎

进入正题吧!


数据库

首先提问,按照常理来说,什么是数据库呢?

不少人想到的一点就是,不就是数据的集合吗?是的,数据库从数据存储方面确实只是数据的集合,但是数据库不只是为了集合数据而存在。

如果是为了集合数据,像我们磁盘中任意的文件,本质上也是集合数据:

这是一种集合数据。

集合完数据之后我们应该干什么呢?单纯为了集合数据肯定不行,我们应该需要某个东西/软件来管理我们的数据,方便我们可以在日常使用,或者是程序处理问题的时候更加方便,效率更高,这个时候,数据库就闪亮登场了。

没错,我们学习的MySQL本质上就是数据库,给我们提供了数据存储的功能以外,还可以提供数据的各方面管理。

那么,提问,我们使用ubuntu登录到MySQL的时候,可是看到了两个东西的:

一个是mysql一个是mysqld,它们所在的目录分别为:

它们是什么关系呢?

这里不卖关子了,mysql是数据库服务的客户端,mysqld是数据库服务的服务端,而我们使用指令netstat也是可以查到mysql的,所以得出结论,是什么

mysql实际上是一种网络服务,而且是一种基于C(mysql)S(mysqld)的网络服务。

那么服务的是什么呢?服务的是数据存取。

所以数据库是:在磁盘或者是内存中以特定结构组成而成的数据,那么数据库服务就是mysqld

那么又是如何服务的呢?

给某种特定的要求,或者某种特定的字段,mysqld直接给结果就可以了。

所以数据库的本质是:对数据内容处理的一种解决方案

以上是对数据库的一些基本理解,我们上文提及的,数据库不只是有一个,目前主流的数据库有的如下:

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

Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。

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

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

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

那么具体的差异就交给同学们自己查阅了,因为MySQL是免费的,所以我们用它来介绍sql语句,而我们有了该数据库的基础,学习其他数据库起来也是十分轻松的了。

而对于MySQL来说,数据库肯定和表拉不开关系,那么对于表的上一层是DB,也就是Database,数据库,对于程序员来说,一般来说都会为不同的软件专门分配不同的数据库,多个数据库中又会创建不同的表,用来保存数据。

这是MySQL,Database,表的基本关系。

说了那么多,我们来简单使用一下。


简单使用 + 存储引擎

我们先登入到MySQL上面:

现在我们MySQL里面有没有数据库我们是不知道的,我们应该先看看,所以show databases:

这里和我们平常使用Linux的命令行有所不同是,我们提供的字段是需要加;的,所以是show databases;

那么我们发现我们目前有的数据库是那4个,我们先不管,先自己添加一个数据库试试:

此时提示创建成功,我们重新看看:

不出意外的话,数据库是多了一个,我们最开始也提到了,

我们使用root权限(注意,这里使用普通用户是进不去的),切换到了root之后,我们进入到/var/lib/mysql,可以发现里面的内容,目录好像有几个是我们才看到的?

那么我们是否可以认为,建数据库的过程就是建立目录的过程呢

答案:是!数据库本质上就是一个一个的目录。

这是一个新认识,那么我们不妨看看我们的数据库里面都有什么:

ubuntu环境下是什么也没有的,但是在Centos的环境下,存在文件dp.opt,里面存储的就是对应的编码格式。

现在,返回到MySQL:

现在我们已经成功切换到了test_mysql里面,那么前文提及,数据库里面都是有表的,所以我们不妨创建一张表:

这里的语法和之前学习Linux或是C++的差别还有点大,所以得多练习。

那么表有了,我们总得插入几个数据吧?

使用指令insert into ...,注意,这里使用的引号用了单引号和双引号,那么使用是否有差别呢?我们后面提及。

此时数据插入完毕,我们使用指令:

select * from student;

成功查询到了我们刚才插入的所有数据。

那么在数据库里面的列和行和平常意义的都是一样的。

这是最最基本的使用。

现在我们来看看MySQL的架构部分,对于最上层的肯定是客户端,我们主要是关系存储引擎部分。

这个存储引擎的特点是热插拔,就像我们平常写了一个类,需要用的时候实例化一个对象就可以了,用完删除即可,这个也是,用的时候激活即可。

MySQL中的存储引擎是数据库管理系统的核心组成部分,它负责数据的存储、检索以及处理。每个存储引擎都有其特定的设计理念和性能特点,常见的就是上面的。

但是实际上平常用的多的也就是InnoDB, MyISAM,具体我们放在后面介绍,这里作为了解即可。 

那么我们查看存储引擎就是show engines:

而我们看Support那一行,InnoDB是default,也就是默认打开的,也可以看出它十分的常用。

以上是对MySQL的粗略介绍,如有不足,请多多指正! 


感谢阅读!

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

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

相关文章

工厂生成中关于WiFi的一些问题

一 背景: 主要做高通和MTK,工厂生成中通过使用adb wifi,因为这样生产效率高并且避免了新机器有划痕,但是也经常碰到adb wifi无法连接的问题,那么是什么原因导致呢? 二 案例 测试步骤: 使用adb wifi连接手机测试工厂case adb usb adb tcpip 5555 adb connect DU…

高效监控系统:Nightingale本地化部署与远程访问指南

文章目录 前言1. Linux 部署Nightingale2. 本地访问测试3. Linux 安装cpolar4. 配置Nightingale公网访问地址5. 公网远程访问Nightingale管理界面6. 固定Nightingale公网地址 前言 本文主要介绍如何在本地Linux系统部署 Nightingale 夜莺监控并结合cpolar内网穿透工具实现远程…

Android组件化、模块化、Catalogs

前言 下载代码-----》码云下载 下载代码-----》github下载 本篇是Android最新的依赖架构设计,gradle版本要8.0以上,代码实现基于8.5.1。好多年开发过程中,我们碰到config.gradle,buildSrc,composing builds等依赖编译…

新款任天堂switch游戏机方案,支持4K60HZ投屏方案,显示器,手柄方案

据传任天堂将推出新的一代的switch掌机,而新款掌机将支持4K60HZ投屏 都2402年了再做1080P确实有点不太象话了 4K60HZ相较于1080P能够提升很多游戏体验,这时不管是HDMI显示器或者是VR眼睛清晰度都会让人舒服很多。 不过新一代的任天堂似乎也在PD协议上…

用作曲的手法写旋律 什么是动机 ​动机扩大 单音重复 移八度

【你怎么还不会写旋律!!!猴子都听的懂的旋律教程来了!两分钟让你快速上手!】 你怎么还不会写旋律!!!猴子都听的懂的旋律教程来了!两分钟让你快速上手!_哔哩哔…

同济子豪兄--图的基本表示【斯坦福CS224W图机器学习】

无向图(Undirected Graph): 在无向图中,边没有方向,即如果顶点A和顶点B之间有一条边,那么这条边既表示A到B的关系,也表示B到A的关系。换句话说,边是双向的。无向图的边通常用一条线段…

WPF基础权限系统

一.开发环境 VisualStudio 2022NET SDK 8.0Prism 版本 8.1.97Sqlite 二. 功能介绍 WPF 基础权限系统,是一个支持前后端分离设计的 客户端(C/S)项目,该示例项目前端xaml使用UI库 ,Material Design Themes UI 来构建用户界面,确保…

Ubuntu如何显示pcl版本

终端输入: apt-cache show libpcl-dev可以看到,Ubuntu20.04,下载的pcl,应该都是1.10版本的

一次性入门三款分布式定时任务调度框架:Quartz、ElasticJob3.0、xxl-job

分布式定时任务调度框架(文末有源码) 前言1、Quartz1.1 数据库1.2 maven依赖1.3 代码实现1.3.1 创建一个job1.3.1 为job设置trigger 1.4 配置文件1.5 启动、测试1.1 单机1.2 集群 2、ElasticJob2.1 下载zk2.2 新建三个类型的作业2.3 配置文件2.4 启动项目…

Windows下配置Nginx和PHP

之前在Windows开发php项目用的是phpstudy,好用的很。但是phpstudy好久没有更新了,感觉PHP像没有人再用了一样。但是PHP拿来开发小系统,还是很高效的,今天记录如何在Windows环境下配置Nginx和PHP。 1. 配置nginx Nginx软件下载解压…

基于Springboot+Vue的宠物管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

实现双向链表的增删改查

头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int LTDataType; typedef struct ListNode {LTDataType data;struct ListNode* prev;struct ListNode* next; } LTNode; //v…

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知&#xff0c;QGraphicsView&#xff0c;QGraphicsScene, QGraphicsItem&#xff0c;分别称为&#xff1a;视图&#xff0c;场景&#xff0c;图元&#xff0c;图表就是各种各样的元素&#xff0c;图片元素&#xff0c;线条元…

react18中在列表项中如何使用useRef来获取每项的dom对象

在react中获取dom节点都知道用ref&#xff0c;但是在一个列表循环中&#xff0c;这样做是行不通的&#xff0c;需要做进一步的数据处理。 实现效果 需求&#xff1a;点击每张图片&#xff0c;当前图片出现在可视区域。 代码实现 .box{border: 1px solid #000;list-style: …

ParallelsDesktop20最新版本虚拟机 一键切换系统 游戏娱乐两不误

让工作生活更高效&#xff1a;Parallels Desktop 20最新版本虚拟机的神奇之处 大家好&#xff01;&#x1f44b; 今天我要跟大家安利一款让我工作效率飞升的神器——Parallels Desktop 20最新版本虚拟机。作为一个日常需要在不同操作系统间来回穿梭的人&#xff0c;这款软件简直…

react18中的计算属性及useMemo的性能优化技巧

react18里面的计算属性和使用useMemo来提升组件性能的方法 计算属性 实现效果 代码实现 函数式组件极简洁的实现&#xff0c;就这样 import { useState } from "react"; function FullName() {const [firstName, setFirstName] useState("");const [la…

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口&#xff0c;并允许用户使用鼠标来选择多个 ROI。控制方式&#xff1a;使用空格键或…

明日周刊-第23期

十月已过半&#xff0c;气温也转凉了&#xff0c;大家注意保温哦。冬吃萝卜&#xff0c;夏吃姜&#xff0c;在快要到来的冬季大家可以选择多吃点萝卜。 配图是本周末去商场抓娃娃的时候拍的照片&#xff0c;现在抓娃娃单次普遍都控制在1块钱以下了&#xff0c;还记得多年前的抓…

智能手表PPG技术原理:【图文讲解】

光体积变化描记图法&#xff08;Photoplethysmography&#xff0c;简称PPG&#xff09;是借光电手段在活体组织中监测血液容积变化的一种无创监测方法 目前智能手表比较标配的功能&#xff1a;血糖、血压、心电、心率、血氧 1&#xff1a;人体血管 先温习一下&#xff0c;人…

Java项目-基于Springboot的智慧养老平台项目(源码+文档).zip

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、SpringClud、Vue、Mybaits Plus、ELementUI工具&…