【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% 以上。


相关推荐
IT成长日记2 小时前
【MySQL基础】聚合函数从基础使用到高级分组过滤
数据库·mysql·聚合函数
Guarding and trust4 小时前
python系统之综合案例:用python打造智能诗词生成助手
服务器·数据库·python
夜间出没的AGUI4 小时前
SQLiteBrowser 的详细说明,内容结构清晰,涵盖核心功能、使用场景及实用技巧
数据库
不再幻想,脚踏实地5 小时前
MySQL(一)
java·数据库·mysql
Tyler先森6 小时前
Oracle数据库数据编程SQL<3.5 PL/SQL 存储过程(Procedure)>
数据库·sql·oracle
KevinRay_7 小时前
从零开始学习SQL
数据库·学习·mysql
Json_181790144807 小时前
python采集淘宝拍立淘按图搜索API接口,json数据示例参考
服务器·前端·数据库
Albert Tan7 小时前
Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作
数据库·oracle
好记忆不如烂笔头abc7 小时前
oracle-blob导出,在ob导入失败
大数据·数据库·python