【MySQL 数据库】数据库的基础知识「建议收藏」

【MySQL 数据库】数据库的基础知识「建议收藏」文章目录1.认识数据库1.1数据库和数据结构的关系1.2为什么需要数据库1.3数据库的存储2.SQL2.1介绍2.2分类3.数据库的类别3.1关系型数据库3.2非关系型数据库3.3区别4.MySQL的程序结构4.1客户端和服务器4.2MySQL的客户端-服务器结构4.3MySQL服务器1.认识数据库1.1数据库和数据结构的关系数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科我们熟知的数据结构有:顺序表、链表、栈、队列、二

大家好,又见面了,我是你们的朋友全栈君。

1. 认识数据

1.1 数据库和数据结构的关系

数据结构:

是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科

我们熟知的数据结构有:

顺序表、链表、栈、队列、二叉树、哈希表…

数据库:

和数据结构不同,它是一类更具体的可以管理数据的软件。但是实现数据库的这个软件,需要用到很多的数据结构

而使用数据库管理数据具体的功能就包括:

  • 描述:描述一条数据如何表示
  • 组织:如何将很多数据进行汇总

至于管理的目的就是:

为了增删改查

1.2 为什么需要数据库

数据库要将数据进行管理的前提就是将数据进行存储。但是存储数据使用文件就可以了,为什么还要弄个数据库呢?

因为使用文件保存数据有以下几个缺点:

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

1.3 数据库的存储

当下绝大部分计算机都遵守着冯诺依曼体系结构在这里插入图片描述

数据的存储一般放在内存储器外存储器(外存储器包括:硬盘、光盘、U盘、软盘等,但这里指硬盘

数据库是有多种的,并没有统一规定所有数据库存放的位置,但主要的数据库的数据存储位置如下:

  • 大部分数据库是把数据组织在外存储上,如:MySQL、Oracle、SQL Server
  • 少数数据库是把数据组织到内存上,如:Redis

补充: MySQL 为什么要把数据存储在外存储器(硬盘)中呢?这里我们就要先了解下内存和硬盘的区别

区别 内存 外存(硬盘)
1 内存的访问速度快 硬盘的访问速度慢
2 内存的空间小 硬盘的空间大
3 内存贵 硬盘便宜
4 如果掉电,内存上的数据会丢失 如果掉电,硬盘的数据不会丢失

综合以上2、3、4的区别,认为 MySQL 使用硬盘来存储数据更好

2. SQL

2.1 介绍

结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

注意: SQL 和 MySQL 的区别

  • SQL 是一种编程语言
  • MySQL 是一种软件,它属于关系型数据库的一种,而关系型数据库都是支持 SQL 的,而非关系型数据库有的支持,有的不支持 SQL

2.2 分类

SQL 可以分为6部分:

  • 数据查询语言(DQL): 其语句也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。
  • 数据操作语言(DML): 其语句包括动词 INSERT、UPDATE 和 DELETE。它们分别用于添加、修改和删除。
  • 事务控制语言(TCL): 它的语句能确保被 DML 语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  • 数据控制语言(DCL): 它的语句通过 GRANT 或 REVOKE 实现权限控制,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
  • 数据定义语言(DDL): 其语句包括动词 CREATE、ALTER 和 DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE)、为表加入索引等。
  • 指针控制语言(CCL): 它的语句,像 DECLARE CURSOR、FETCH INTO 和 UPDATE WHERE CURRENT 用于对一个或多个表单独行的操作。

3. 数据库的类别

数据库大体可以分为:

  • 关系型数据库
  • 非关系型数据库

3.1 关系型数据库

介绍:

  • 是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组织
  • 关系型数据库都基于标准的 SQL,只是内部的一些实现有区别

常见关系型数据库:

  • Oracle:甲骨文产品,是数据库中的王者。由于收费,且随着数据量的增大对机器要求比较高,所以使用成本很高。适用于银行这类对数据的安全和服务要求很高且本身很有钱的公司
  • MySQL:被甲骨文收购,开源免费。现在很多公司普遍使用它
  • SQL Server:微软产品,由于曾经这个数据库和 windows server 系统进行了捆绑,而大多数服务器系统都是在 Linux 上,所以逐渐失去市场。如今可以支持 Linux

3.2 非关系型数据库

介绍:

  • 非关系型数据库一般指 NoSQL,区别于关系数据库,它们不保证关系数据的 ACID 特性,都是去掉关系数据库的关系型特性
  • 不规定基于 SQL 实现

常见非关系型数据库:

  • redis:基于键值对(key-value)
  • mongodb:基于列族
  • hbase:基于文档型

3.3 区别

区别 关系型数据库 非关系型数据库
使用 SQL 不强制要求,一般不基于 SQL 实现
事务支持 支持 不支持
复杂操作 支持 不支持
海量读写操作 效率低 效率高
基本结构 基于表和列,结构固定 灵活性比较高
使用场景 业务方面的 OLTP 系统 用于数据的缓存或基于统计分析的 OLAP 系统

补充:

  • OLTP(On-Line Transaction Processing):是指联机事物处理
  • OLAP(On-Line Analytical Processing):是指联机分析处理

4. MySQL 的程序结构

MySQL 其实是一个“客户端-服务器”结构的程序

那么什么是客户端和服务器呢?下面将简单介绍

4.1 客户端和服务器

介绍:

  • 客户端:是主动发起请求的一方
  • 服务器:是被动接受请求的一方
  • 客户端给服务器发送的数据,称为:请求(Request)
  • 服务器给客户端返回的数据,称为:响应(Response)
  • 一个服务器同时可能给多个客户端提供服务
  • 大部分客户端服务器都是这种“一个请求一个响应”的交互模型
  • 客户端和服务器是通过网络来通信的

示例:

你去饭店吃饭,你跟老板说来一碗农家一碗香,后面老板给你把你点的餐端上来。

此时你就是“客户端”,饭店老板就是”服务器“,你跟老板点餐就是你的”请求“,老板把你点的餐端上来就是”响应“。而一个老板其实可以服务多个客户。

4.2 MySQL 的客户端-服务器结构

当我们使用 MySQL 时,我们其实会遇见以下几种情况

  1. 在同一台主机安装 MySQL 客户端和 MySQL 服务器(我们自己在个人电脑安装时就是这种情况)在这里插入图片描述
  2. MySQL 客户端和 MySQL 服务器分别在两台不同的主机上在这里插入图片描述
  3. 实际工作中往往是下面这种情况,多台主机的客户端连接一台主机的服务器在这里插入图片描述

注意:

  • MySQL 是把数据存储在服务器上,服务器才是数据库的本体,负责管理数据
  • MySQL 客户端其实就是一个非常简单的程序,仅仅是用来和用户交互的。这个程序可能是:命令行程序、可视化界面的程序、自己代码实现的程序

4.3 MySQL 服务器

介绍:

  • MySQL 服务器其实含有若干个数据库(每个数据库视为是一组逻辑上的集合)

  • 一个数据库包含了若干个有关联的表

  • 一个表包含了若干行(每一行都有若干条记录)

  • 一行包含了若干列(每一列都有具体的类型要求)

示例:

假如有一个 MySQL 服务器存储着 CSDN 的数据,它里面可能有3个数据库。数据库1存储着:用户信息、用户排名、文章数量等数据。数据库2存储着:活动内容、投稿文章、奖品信息等数据。数据库2存储着:视频、资源等数据。而其中数据库1中的例如用户信息等数据,它其实就是一个表,类似于 excel 表,而有关联的几个表,就组成了一个数据库。

注意:

数据库的含义其实要依照上下文,它可能是一门学科,也可能是一类软件,有时也指一个服务器,有时还表示一个数据集合等

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153388.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • activexobject对象不能创建_无法创建office组件对象

    activexobject对象不能创建_无法创建office组件对象JavaScript中ActiveXObject对象是启用并返回Automation对象的引用。使用方法:newObj=newActiveXObject(servername.typename[,location])ActiveXObject对象语法有这些部分:其中newObj是必选项。要赋值为ActiveXObject的变量名。1.servername是必选项。提供该对象的…

    2022年10月15日
  • 怎么样解析二级域名

    怎么样解析二级域名

    2021年10月21日
  • JVM调优工具「建议收藏」

    JVM调优工具「建议收藏」JVM调优工具Jconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler:商业软件,需要付费。功能强大。VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能堆信息查…

  • ansi编码转换器安卓版_ansi编码批量转换器

    ansi编码转换器安卓版_ansi编码批量转换器这是ansi编码批量转换器,是一款转换器支持多种文字编码格式的软件。软件简介ansi编码批量转换器是款转换器支持多种文字编码格式的软件。可以将txt编码转换成自己手机所支持的编码方式,方便于你手机看小说,让你轻松转换,小说快速观看!软件功能本工具能把字符串(包括汉字)转换成10进制或16进制的ANSI码,以空格分开,另外能把上述格式的10进制或16进制的ANSI码转换成字符串(包括汉字)。相关知识…

  • oracle杀进程命令_oracle如何查看进程

    oracle杀进程命令_oracle如何查看进程1、查看锁表进程–1.查看锁表进程SQL语句selectsess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefromv$locked_objectlo,dba_objectsao…

  • 【吐血整理】Java项目源码分享

    【吐血整理】Java项目源码分享javaservlet+jsp+bean开发开源宅商城系统,未用任何java开源框架实例(七),电商书店,源码下载:jsp+servlet仿当当网电商图书系统实例(八),源码下载:jsp+javabean+servlet开发的mvc简易鞋城在线商城系统各种管理系统:=======实例(一):学生信息管理系统,源码下载:GitHub-yirenyin/J2EE_practice:J2EE学生信息管理系统初级版实例(二):图书馆管理系统,源码下载:1、图书馆管理系统JSP+Ser

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号