【MySQL】数据库基础

前言

数据库是一个开发程序员必须要具备的一项技能,本期开始我们学习目前世界上最流行的数据库 ---- MySQL,等学完了MySQL再去学习其他的如 oracle、mongoDB、redis等成本会小很多。

目录

前言

一、什么是数据库

[1.1 数据库的定义与本质](#1.1 数据库的定义与本质)

[1.2 数据的分类](#1.2 数据的分类)

二、MySQL的基本使用

[2.1 MySQL的本质](#2.1 MySQL的本质)

[2.2 连接服务器](#2.2 连接服务器)

[2.3 MySQL的使用案例](#2.3 MySQL的使用案例)

[2.4 服务器、数据库、表的关系](#2.4 服务器、数据库、表的关系)

三、MySQL架构

四、SQL分类

五、存储引擎

[5.1 查看存储引擎](#5.1 查看存储引擎)

[5.2 存储引擎对比](#5.2 存储引擎对比)


一、什么是数据库

1.1 数据库的定义与本质

**数据库是一款对数据进行存储和管理的服务类软件。**它通过磁盘或内存,利用特定的数据结构和数据模型(如关系型、文档型、键值型)对数据进行组织和管理。

数据库的本质 提供了一套高效、可靠的 数据存取解决方案

有了文件为啥还会有数据库?

文件虽然可以存储数据了,但是在数据的管理方面有明显的局限性。主要如下:

1、文件不利于数据的查询和管理

2、文件不利于存储海量的数据

3、文件在操作过程中存在安全问题

1.2 数据的分类

按照数据模型可以将数据库分为:关系型数据库和非关系型数据库

关系型数据库有:MySQL、Oracle、SQL Server

  • MySQL:开源关系型数据库,广泛应用于Web应用和中小型系统。

  • Oracle:商业关系型数据库,功能强大,适用于大型企业和高并发场景。

  • SQL Server:微软的关系型数据库,与Windows平台集成紧密,适合企业级应用

非关系型数据库有:MongoDB、Redis、Neo4j

  • 文档型数据库:以文档(如JSON或BSON格式)存储数据,适合存储复杂、半结构化数据。

    • MongoDB:流行的文档型数据库,支持动态查询和高扩展性,广泛用于Web应用。
  • 键值型数据库:以键值对的形式存储数据,适合存储简单的、结构化程度较低的数据。

    • Redis:高性能的键值存储数据库,常用于缓存、会话管理和实时数据处理。
  • 图数据库:以图结构存储数据,适合处理复杂关系和网络数据。

    • Neo4j:流行的图数据库,广泛用于社交网络分析、推荐系统等。

我们这里主要学习的就是世界上最受欢迎的数据库 ---- MySQL


二、MySQL的基本使用

2.1 MySQL的本质

在安装MySQL时会安装两个东西:mysqlmysqld

这两个又是啥呢?其实要理解他两,我们得先理解MySQL整体是啥。

MySQL 本质是一套基于 CS 模式的 提供可靠的数据存取的 网络服务程序。

mysql 是数据库服务的 客户端。

mysqld 是数据库服务的 服务端。

2.2 连接服务器

在命令行输入如下指令:

bash 复制代码
mysql -h host_ip -P host_port -u username -p

选项解释

  • -h:指定登录部署了 mysql 服务的主机,如果不写 -h 127.0.0.1 则默认是连接本地;
  • -P:指定要访问的端口号,如果不写 -P 3306 则默认是连接 3306 的端口号。
  • -u:指定登录用户,默认为 root。
  • -p:表示需要输入密码。

注意:因为当前这里没有进行用户的管理操作,所以登录时不用输密码,后期专门在用户管理的那一期处理,现在一开始先把MySQL用起来。

2.3 MySQL的使用案例

注意:

1、以下工作实际都是mysql(客户端)让mysqld(服务端)做的。

2、我们这里先是见一见MySQL的基本操作,后面会详细的介绍。

• 创建数据库

bash 复制代码
create database db_name;

• 查看数据库

bash 复制代码
show databases;

• 删除数据库

bash 复制代码
drop database db_name;

• 使用数据库

bash 复制代码
use db_name;

• 创建数据库表

bash 复制代码
create table 表名(字段1 字段1类型, 字段2 字段2类型, 字段n 字段n 类型);

在表中插入数据

bash 复制代码
insert into 表名(字段名1, 字段名2, ..., 字段n) values(值1, 值2..., 值n);

• 查询表中数据

bash 复制代码
select * from 表名;

注意:这里是查询表中的所有数据。

2.4 服务器、数据库、表的关系

• 所谓安装数据库服务,只是在机器上安装一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对一个应用创建一个数据库

• 为了保存应用中的实体数据,一般会在数据库中创建多个表,以保存程序中实体的数据

• 数据库服务器,数据库和表,三者的关系如下:

三、MySQL架构

• MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行。

• 各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。

MySQL的架构整体分为三层:

第一层 (数据库连接池这层):在这一层 MySQL 的主要工作是分别,用户管理、鉴别用户的合法身份、保证安全。

第二层 (SQL 接口组件所在的这层):主要对客户端下达过来的 SQL 语句进行词法分析、语法分析、对 SQL 语句做一定程度优化。

第三层 (InnoDB 这层):有不同的存储引擎,接收从上层转化调优后的 SQL 语句,再对这些语句进行解释,访问指定的数据库或表结构。


四、SQL分类

• DDL(data defintion language)数据定义语言,用来维护存储数据的结构

达标指令:create、drop、alter

• DML(data manpulation language)数据操纵语言,用来对数据进行操作

代表指令:insert、delete、updata

DML中有单独分了一个DQL,数据查询语言,代表指令:select

• DCL(data control language)数据控制语言,主要负责权限管理和事务

代表指令:grant、revoke、commit

五、存储引擎

存储引擎是:数据库管理系统如何存储数据,如何为存储数据建立索引和如何更新、查询数据等技术的实现方法。(类似于OS的驱动层)

MySQL 的核心就是插件式的存储引擎,支持多种存储引擎。

5.1 查看存储引擎

5.2 存储引擎对比

• 在 MySQL 中最常见的存储引擎是 MyISAM 和 InnoDB,其中 InnoDB 占到了 80% 以上。


相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull6 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花6 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸6 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain6 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希7 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神7 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员7 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java7 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb