MySQL 数据库的基础知识

目录
  • 1. 认识数据库
    • 1.1 数据库和数据结构的关系
    • 1.2 为什么需要数据库
    • 1.3 数据库的存储
  • 2. SQL
    • 2.1 介绍
    • 2.2 分类
  • 3. 数据库的类别
    • 3.1 关系型数据库
    • 3.2 非关系型数据库
    • 3.3 区别
  • 4. MySQL 的程序结构
    • 4.1 客户端和服务器
    • 4.2 MySQL 的客户端-服务器结构
    • 4.3 MySQL 服务器

1. 认识数据库

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

数据结构:

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

我们熟知的数据结构有:

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

数据库:

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

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

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

至于管理的目的就是:

为了增删改查

1.2 为什么需要数据库

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

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

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

1.3 数据库的存储

当下绝大部分计算机都遵守着冯诺依曼体系结构

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

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

  • 大部分数据库是把数据组织在外存储上,如:MySQLOracleSQL 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): 其语句包括动词 INSERTUPDATE DELETE。它们分别用于添加、修改和删除。
  • 事务控制语言(TCL): 它的语句能确保被 DML 语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  • 数据控制语言(DCL): 它的语句通过 GRANT 或 REVOKE 实现权限控制,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
  • 数据定义语言(DDL): 其语句包括动词 CREATE、ALTER 和 DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE)、为表加入索引等。
  • 指针控制语言(CCL): 它的语句,像 DECLARE CURSORFETCH 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 时,我们其实会遇见以下几种情况:

  • 在同一台主机安装 MySQL 客户端和 MySQL 服务器(我们自己在个人电脑安装时就是这种情况)

  • MySQL 客户端和 MySQL 服务器分别在两台不同的主机上

  • 实际工作中往往是下面这种情况,多台主机的客户端连接一台主机的服务器

注意:

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

4.3 MySQL 服务器

介绍:

  • MySQL 服务器其实含有若干个数据库(每个数据库视为是一组逻辑上的集合)
  • 一个数据库包含了若干个有关联的表
  • 一个表包含了若干行(每一行都有若干条记录)
  • 一行包含了若干列(每一列都有具体的类型要求)

示例:

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

注意:

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

到此这篇关于MySQL 数据库的基础知识的文章就介绍到这了,更多相关MySQL 数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基础MAC系统下IDEA连接MYSQL数据库JDBC过程

    JDBC数据库连接 MySQL中建表 在终端使用命令mysql -u root -p打开数据库,在数据库操作环境下进行创建数据库,建表等等操作 建立数据库语句 create dababase 数据库名 建表语句 create table bookinfo( -> book_id int primary key auto_increment, -> book_name varchar(20) not null, -> price float(6,2) not null, -> pub

  • MySQL数据库基础篇SQL窗口函数示例解析教程

    目录 本文简介 正文介绍 聚合函数 + over() 排序函数 + over() ntile()函数 + over() 偏移函数 + over() 本文简介 前段时间,黄同学写了一篇<MySQL窗口实战>文章(文章如下),但是里面大多数是以实战练习为主,没有做详细的解释. 传送门:MySQL实战窗口函数SQL分析班级学生考试成绩及生活消费 于是,私信了月牙美女,看看她能否写一篇<窗口函数基础篇>,正好和之前那篇文章配套.这不,很快她就写好了,今天就给大家做一个分享,旨在和大家交流学

  • 一篇文章带你了解MySQL数据库基础

    目录 1. 数据库概念 1.1 数据库是干嘛的? 1.2 数据库和数据结构是啥关系? 1. 数据库是一个软件/程序 2. 数据结构是一个学科~ 1.3 两种类型的数据库 2. MySQL数据库 2.1 MySQL数据库概念 2.2 MySQL基本操作 2.2.1 建立数据库 2.2.2 查看数据库 2.2.3 选中数据库 2.2.4 删除数据库 2.3 MySQL数据类型 总结 1. 数据库概念 1.1 数据库是干嘛的? 数据库的功能就是用来组织数据,组织很多很多的数据.这些数据通常都是存储在外

  • MySQL 数据库的基础知识

    目录 1. 认识数据库 1.1 数据库和数据结构的关系 1.2 为什么需要数据库 1.3 数据库的存储 2. SQL 2.1 介绍 2.2 分类 3. 数据库的类别 3.1 关系型数据库 3.2 非关系型数据库 3.3 区别 4. MySQL 的程序结构 4.1 客户端和服务器 4.2 MySQL 的客户端-服务器结构 4.3 MySQL 服务器 1. 认识数据库 1.1 数据库和数据结构的关系 数据结构: 是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科 我们熟知的数据结构

  • MySQL系列教程小白数据库基础

    目录 1.基础概念与基础命令 1)基础概念 2)基础命令 2.SQL语句的书写顺序和执行顺序 1)一个完整SQL查询语句的书写顺序 2)一个完整的SQL语句执行顺序 3)关于select和having执行顺序谁前谁后的说明 这里介绍的MySQL相关知识,并不是针对那些想学习DBA的同学,而是针对那些想转行.从事数据分析行业的同学. 下面这些知识点,是我学习MySQL数据库时,觉得有必要掌握的一些知识点. 1.基础概念与基础命令 1)基础概念 ① 数据库 按照一定数据结构,存储和管理数据的仓库.

  • python 专题九 Mysql数据库编程基础知识

    在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

  • mysql数据库查询基础命令详解

    目录 1.启动数据库命令行客户端 2.查询数据库 3.进入数据库 3.查询所在数据库中所有表信息 4.查询数据库某张表结构 5.简单select查询语句(单张表) 5.1查询单张表所有数据 5.2 LIMIT限制查询结果返回数据项 5.3查询指定列数 5.4 WHERE带条件精准查询 5.5 LIKE使用通配符模糊查询 5.6 ORDER BY查询结果排序 1.启动数据库命令行客户端 #linux命令,注意区分大小写 mysql 2.查询数据库 #执行结果:返回所有数据库列表 SHOW DATA

  • MySQL的日志基础知识及基本操作学习教程

    MySQL日志主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据库的客户端连接状况.SQL语句的执行情况和错误信息等.当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复. 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mysql数据库的数据文件中.错误日志文件

  • MySQL存储引擎基础知识

    在之前的文章中我们说过MySQL事务,现在大家都应该知道了MySQL事务了吧,还记得事务的ACID原则吗?不记得的童鞋可以回顾一下<MySQL之事务初识>,其实呀,更严谨一点的话,应该是MySQL InnoDB存储引擎,因为在MySQL中,只有InnoDB存储引擎才支持事务.看到此处,有些朋友可能有以下疑问: 存储引擎是什么? MySQL中有哪些存储引擎? 每个存储引擎有哪些特点以及区别? 下面,我们带着这些疑问,依次往下看: 存储引擎是什么? 通俗一点来说,MySQL是用来保存数据的对不对?

  • python Selenium爬取内容并存储至MySQL数据库的实现代码

    前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息.通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的.这篇文章主要讲述通过Selenium爬取我的个人博客信息,然后存储在数据库MySQL中,以便对数据进行分析,比如分析哪个时间段发表的博客多.结合WordCloud分析文章的主题.文章阅读量排名等. 这是一篇基础性的文章,希望对您有所帮助,如果文章中出现错误或不足之处,还请海涵.下一篇文章会简单讲解数据分析的过程. 一. 爬取的结果 爬

  • MySQL数据库基础篇之入门基础命令小结

    本文实例讲述了MySQL数据库入门基础命令.分享给大家供大家参考,具体如下: 在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出炉的 2019 年3月份数据库流行度排行榜上,第一梯队的前三个数据库产品都获得了显著的加分增长. 其中 Oracle 上升了15.12分,MySQL上升了30.96分,SQL Server则上升了 7.79分.以下是前20

  • MySQL数据库 JDBC 编程(Java 连接 MySQL)

    目录 1. 数据库编程的基础条件 2. Java 的数据库编程:JDBC 3. JDBC 访问数据库的层次结构 4. MySQL 数据库操作介绍 5. MySQL 驱动包的下载及添加到项目 6. JDBC 使用步骤 6.1 创建数据库源,连接 Connection 6.2 构造 SQL 语句,为执行的操作做准备 6.3 执行 SQL,并处理结果集 6.4 释放资源 6.5 JDBC 编程模板 7. JDBC 常用接口和类 7.1 DataSource 和 MysqlDataSource 7.2

  • MySQL数据库输入密码后闪退问题的解决方法

    MySQL数据库输入密码后闪退的问题及解决方案分享 1 案例说明 最近一直在用 MySQL 数据库演示基础功能,但是这两天忽然出现了一个问题,那就是:在启动 MySQL 服务端并输入密码后,出现闪退现象. 之后,在网上搜了搜,发现出现这种问题很常见,大多数原因可能是在咱们使用安全软件的时候,无意中关闭了 MySQL 服务.此外,如果 MySQL 服务已经启动了,但还是出现了闪退的现象,那就可能是 MySQL 的配置出现了问题. 2 解决方案 在出现上述问题的时候,咱们首先要查看 MySQL 服务

  • MyEclipse连接Mysql数据库的方法(一)

    准备工作:MyEclipse使用的是2013版,mysql Ver 14.14 Distrib 5.6.28 1.jar包的下载(jdbc驱动) 我下载的是:mysql-connector-java-5.1.7-bin.jar 2.打开MyEclipse---->选择window---->选择open perspecctive---->myeclipse Database Explorer将进入如下界面. 在DB Browser工作区间右侧有一个向下的三角形,如下图的红色箭头所指向的方向

随机推荐