“小白“如何理解数据库

news2024/11/25 11:50:07

目录

前言

1.什么是数据库

2.数据库的用处

2.1数据库与文件的对比

3.使用数据库

3.1建立数据库

3.2建立表

3.3存储数据

4.服务器,数据库,表关系

5.数据库的分类

5.1MySQL架构

5.2SQL分类

5.3存储引擎

5.3.1什么是存储引擎

5.3.2如何查看存储引擎

总结


前言

哈喽,各位小伙伴大家好!本篇文章为大家介绍数据库的相关概念,理解什么是数据库,为什么有数据库和数据库有什么用处。相信看完这篇文章,大家一定会对数据库有一个新的认识。

1.什么是数据库

数据库本质上是一个网络服务器,分为客户端和服务端。一般,经常在口中说的MySQL就是数据库的客户端,服务端是MySQLD 。

既然了解到数据库是一个网络服务器,那就一定会有它的端口号,数据库绑定的端口号默认是3306。

2.数据库的用处

数据库是一套提供数据存取服务的网络程序,一般是指在磁盘或内存上按照特定结构存储的数据。

说了这么多,其实总结就是一句话,数据库就是用来存储数据的,此时好奇的小伙伴就会问了,既然数据库就是用来存储数据的,那为什么不用文件进行存储数据呢。

在生活中新事物的出现往往是为了弥补旧事物的缺陷,在这里也不例外,数据库的出现也是为了弥补文件存储数据的缺陷。有了这个共识之后再来看数据库就不仅仅只是单单看数据库,而是通过文件的对比再来进一步认识数据库。

2.1数据库与文件的对比

数据库和文件都提供了数据存储的功能,但是文件对数据并没有提供良好的管理能力,而数据库对数据提供了一套完整的管理,给数据库服务提相应的要求,数据库服务直接返回结果。

如图所示:数据库管理数据的流程

除了上面这个核心的区别之外,文件相比于数据库存在以下几个缺点:

文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便

到这里,我们已经认识了什么是数据库,为什么有数据库和数据库有什么用处,下面我们接着来一起具体看看数据库在Linux中是如何操作的!

3.使用数据库

3.1建立数据库

create database 数据库名称;

如图所示:建立一个test1的数据库

 相信此时,有小伙伴很懵逼,这里创建数据库是干了个什么???

 别着急,下面我来为你揭晓这个答案:

在Linux上有一个路径:/var/lib/mysql/,进入到这个目录之后会发现存在许多的目录,这些目录是什么呢?答案是:这些目录是创建的数据库

如图所示:

看到这里,是否有一种恍然大悟的感觉,原来创建数据库本质上是创建了一个目录而已。那此时问题又来了,既然数据库是用来存储数据的,但是我们知道一个目录是不可能存储数据的,那么数据又是存储在哪里呢。答案是数据存储在表中。

3.2建立表

表是建立在数据库之中的,所以首先第一步是选择对应的数据库,在选择的数据库之中创建表:

a.选择数据库:

use 数据库名称;

b.创建表:

create table 表名称(相关属性字段);

如图所示:

 现在表也已经有了,下面就正式可以实现数据库的功能存储数据,那如何向表中存入数据呢?

3.3存储数据

insert into 表名 values (插入数据);

如图所示:

看完之后,大家可能会有疑惑,数据库中创建属性字段的时候数据类型都是如何指定的,以及不同的类型有什么区别,大家不要着急,关于不同的数据类型的相关细节在后续的文章中会单独详细介绍,本章只是让大家先有一个宏观的概念,数据库在Linux中是如何表现的以及是如何存储数据的。

再次理解mysql和mysqld:有了上面的基础之后,我们在Linux上执行相关的指令本质上都是作为客户端给mysqld服务端发送请求,而对于数据库中数据的管理工作是由mysqld完成的。

4.服务器,数据库,表关系

上面我们已经介绍了服务器,数据库和表,接下来具体看看它们之间的关系是如何样的:

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

5.数据库的分类

数据库本质上是一种存储数据的管理方案,但是在不同的场景下,由细分许多不同的种类,下面这些是主流的数据库:

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

在这里主要是以MySQL为主,为大家进行介绍

5.1MySQL架构

每一层都完成相应的功能,确保数据库相对于文件的完善性。

5.2SQL分类

上面简单让大家见了一下数据库操作的相关语言,下面是对数据库语言的大体分类,在后续的文章我们将会详细学习每一种操作语言。

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.3存储引擎

5.3.1什么是存储引擎

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

5.3.2如何查看存储引擎

show engines;

总结

以上为大家介绍了什么是数据库,以及数据库的相关概念,相信你看完之后,对数据库有了一个比较清晰的认识了,在接下来的文章会继续为大家更新数据库的具体操作,谢谢大家的支持!

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

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

相关文章

Lucene(9):Lucene优化

1 解决大量磁盘IO config.setMaxBufferedDocs(100000); 控制写入一个新的segment前内存中保存的document的数目,设置较大的数目可以加快建索引速度。 数值越大索引速度越快, 但是会消耗更多的内存 indexWriter.forceMerge(文档数量); 设置N个文档合并为一个段 …

easyexcel多行不同的表头导出

easyexcel多行不同的表头导出(多表格不同表头) 一、效果展示 二、代码 /*** 导出月度报表数据信息*/ApiOperation(value "导出月度报表数据信息")Log(title "导出月度报表", businessType BusinessType.EXPORT)RequestMapping(…

linux 下 sqlserver 连接 与开发准备

最近需要再linux下开发一个服务链接SQLserver。但是没有相关经验,然后参考了网上的一些博客。有点心得记录如下。 主要参考了这个:linux连接到sqlserver命令行,Linux 下连接sqlserver (上)_廖俊涛的博客-CSDN博客linux连接到sqlserver命令行,Linux 下连…

【网络安全】这份近 200 页应急响应文档,不会还有人没看过吧?

前言 成为伟大黑客的关键在于做自己喜爱的事,要把一件事情做好,你必须热爱它。所以只要你能坚持对安全技术的热爱,到了这种程度,你就会做得更好。 本文档注重理论与实战结合,不仅提供关键源代码供读者快速实践&#…

UnityVR--UIManager--UI管理1

目录 前言 UI节点的结构 需要用到的组件 1. CanvasGroup 2. Button等控件的OnClick()监听 3. EventTrigger 建立UI工具集 1. 管理UI节点 2. UIBase包含了以下的工具 建立分面板的管理工具——以主面板MainUi为例 前言 UI在项目中的重要性不言而喻,并且UI控件的…

将conda环境导入pycharm教程(史上最详细版)

一个不知名大学生,江湖人称菜狗 original author: Jacky LiEmail : 3435673055qq.com Time of completion:2023.6.15 Last edited: 2023.6.15 目录 将conda环境导入pycharm教程(史上最详细版) 步骤一:打开你的pychar…

Esxi直通A40显卡给ubuntu20.4系统驱动安装过程记录

Esxi直通A40显卡给ubuntu20.4系统驱动安装过程记录 背景描述 PowerEdge R750(esxi虚拟化) 服务器已有一张T4显卡,后期新增一张A40显卡,开一台ubuntu20.4系统直通A40显卡无法开机! 开机问题解决后安装显卡驱动也各种报…

可防撞抗震的海格里斯HEGERLS四向穿梭车立体库货架系统

随着经济的高速发展以及科学技术的不断进步,现代仓储和物流行业的发展都有了质的飞跃,技术融入到仓储的研发与生产中,促进了自动化仓储设备的出现。提到自动化仓储设备,那就无法忽视智能搬运机器人四向穿梭车,四向穿梭…

【Spring学习之生命周期】什么是生命周期?什么是作用域?了解六种作用域

前言: 💞💞从前⾯的课程我们可以看出 Spring 是⽤来读取和存储 Bean,因此在 Spring 中 Bean 是最核⼼的操作资源,所以接下来我们深⼊学习⼀下 Bean 对象。 前路漫漫,希望大家坚持下去,不忘初心&…

让你不再疑惑如何转换音频格式

你是否曾经遇到过这样的问题?你有一些wav格式的音频文件,但是它们不能在你的设备上播放,或者你需要将它们转换为其他格式以便更好地编辑和分享。别担心,转换wav格式并不是一件麻烦的事情。如果你还不知道wav格式怎么转换的话&…

今天面了个阿里拿27K出来的测试,真是砂纸擦屁股,给我露了一手啊

2023年春招已经结束,很多小伙伴收获不错,拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好,他山之石…

如何判断测量所得的CSI是视距还是非视距

1、视距(LOS)传播 无线电波沿直线传播的方式称为视距传播。 2、非视距(NLOS)传播 当CSI接收机与基站(BS)之间的直射路径被障碍物挡住后,无线电波只能在经过反射和衍射后到达接收端,此时测量到的数据&…

由于找不到msvcp120.dll怎么办,msvcp120.dll一键修复方法

运行软件程序或游戏,提示由于找不到msvcp120.dll,遇到这种问题要怎么办呢?一般都是计算机系统的dll动态链接库损坏或者文件丢失,不用慌,这个只要修复一下就可以,下面小编就一一道来,还可以实现一…

PMP证书没过期的同学吃香了,直接对标CSPM国标证书二级

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…

使用dmhs veri手动比对ORACLE同步到DM数据

使用dmhs veri手动比对ORACLE同步到DM数据 veri介绍 在进行数据库数据的实时同步的时候,需要了解同步的结果是否正确,因此需要有数据对比工具进行数据的对比,并生成详细的对比报告,提供用户参考。对比工具仅仅生成报告&#xff…

【OpenMMLab】AI实战营第二期Day10:底层视觉与MMEditing

Summary 本课程包含底层视觉和MMEditing两个部分。第一部分介绍图像超分、深度学习和网络训练的相关算法,第二部分介绍超像素卷积、无监督学习、卷积网络和空间注意机制,以及这些算法在视觉框架中的实践应用。 Highlights 📷介绍计算机视觉…

ChatGPT 3.5/4 双双升级:更长,更便宜,更开放,更可控

OpenAI 今年早些时候发布了 gpt-3.5-turbo 和 gpt-4,并且在短短几个月内,开发者在这些模型上开发了很多令人印象深刻的应用。 6月13日, OpenAI 官宣了版本更新的内容: Chat Completions API 中新增了函数调用功能。更可控的 gpt-4…

【有奖体验】叮!你有一张 3D 卡通头像请查收

立即体验基于函数计算部署【图生图】一键部署 3D 卡通风格模型:https://developer.aliyun.com/topic/aigc_fc 人工智能生成内容(Artificial Intelligence Generated Content,简称 AIGC)是当下最火的概念之一。AIGC 被认为是继专业…

MFC .rc文件解析(EXE属性详细信息添加)

文章目录 Windows 资源文件(.rc文件)资源(Resources)类型从文件导入的(BITMAP,ICON,HTML,FONT,CURSOR 等)对话框资源类型:(DIALOG,DIALOGEX 等)菜单资源类型字…

【Java项目】使用Nacos实现动态线程池技术以及Nacos配置文件更新监听事件

文章目录 项目源码线程池概念ThreadPoolExecutor介绍Nacos实现对Nacos配置文件更新的事件监听机制定时通知功能邮件发送通知功能开始测试 项目源码 真诚的希望能给我项目一个stars!!! 项目源码 线程池概念 线程池(Thread Pool&…