MySQL数据库基础

一、基本理解

存储数据用文件就可以了,为什么还要弄个数据库呢?

文件保存数据有以下几个缺点:
 ① 文件的安全性问题。
 ② 文件不利于数据查询和管理。
 ③ 文件不利于存储海量数据。
 ④ 文件在程序中控制不方便。

为了解决上述问题,专家们设计出了一种更加利于管理数据的东西——数据库,它能更有效地管理数据。

数据库的本质,就是一个在用户和文件之间的软件层

数据库属于应用层的软件,需要用户自己安装,其底层一定是直接或间接地访问 OS 的文件接口。

以前需要用户自己直接维护文件,但是有了数据库之后,就不需要了。
用户只要把请求告诉给数据库,数据库会帮用户来维护。用户和数据库交互,用的就是 SQL 语句。
数据库和文件交互,是需要存储引擎的。


MySQL 基于 CS 模式。

  • mysqld:服务器。
  • mysql:客户端。

在这里插入图片描述
 ① 安装 MySQL,其实就是在安装服务器和客户端。
 ② 安装完后启动服务器,就是在启动 mysqld 。
 ③ 连接服务器,就是用 mysql 来连接 mysqld 。

数据库,本质上就是一个网络服务器

在这里插入图片描述
在这里插入图片描述

我们在使用 MySQL 数据库前,需要使用 MySQL 客户端来连接 MySQL 服务器。

用户通过数据库的客户端向服务端发出 SQL 请求,服务端收到请求后,根据请求对数据进行增删查改。

二、基本使用

1.连接服务器

访问数据库,本质就是用 MySQL 客户端来连接 MySQL 服务器。

使用命令mysql -h IP地址 -P 端口号 -u 用户名 -p,即可使用 mysql 来连接 mysqld 。

在这里插入图片描述

注:
 ① -h:要连接服务器的 IP 地址(若没有写-h 127.0.0.1,则默认是连接本地)。
 ② -P:要连接服务器的端口号(若没有写-P 3306,则默认是连接 3306 端口号)。
 ③ -u:表示用户名。
 ④ -p:表示用户名对应的密码。


如果要连接的是本地的 MySQL 服务器,那么在连接时可以省略掉 -h 和 -P 选项,只需要指明用户名及其密码即可:
在这里插入图片描述

2.服务器、数据库和表的关系

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

数据库服务器、数据库和表的关系如下:
在这里插入图片描述

DB(database)表示的是数据库,而每一个 DB 下会包含多张表(table)。

查看 MySQL 相关的配置,可以查看/etc/my.cnf配置文件。

在这里插入图片描述

Linux:在这里插入图片描述
MySQL:在这里插入图片描述

创建数据库,本质就是在 Linux 下创建一个目录。

MySQL:在这里插入图片描述
Linux:在这里插入图片描述
目前该目录下只有一个 .opt 文件,该文件指明了当前数据库的默认字符编码和字符校验规则。在这里插入图片描述

连接上 MySQL 后,必须使用use 数据库名称;选择要访问的数据库。可以认为就是 Linux 上的cd 数据库名称进入目录。

创建数据库表,本质就是在特定目录下创建特定的文件(文件的个数与存储引擎有关)。

MySQL:在这里插入图片描述
Linux:
在这里插入图片描述由于该表采用的存储引擎是 InnoDB,所以在当前数据库目录下就会创建两个文件,分别是 .frm 文件和 .ibd 文件( .frm 是表结构文件,.ibd 是表数据和索引的文件)。

总结:

  • 创建数据库就是创建目录。
  • 使用数据库就是进入这个目录。
  • 创建一个表结构就是在这个目录里面创建几个文件(文件的个数与存储引擎有关)。

3.使用案例

// 创建数据库
create database test_db;

// 使用数据库
use test_db;

// 创建数据库表
create table if not exists student(
	id int not null,
	name varchar(32) not null,
	gender varchar(2) not null
);

// 表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');

// 查询表中的数据
select * from student;

4.数据逻辑存储

在这里插入图片描述

一个数据库,本质就是一堆的表结构。每一个表结构就是行列式的数据。

三、MySQL 架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris 。虽然各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
在这里插入图片描述

四、SQL 分类

  • DDL(Data Definition Language):数据定义语言,用来维护存储数据的结构。
    代表指令:createdropalter
  • DML(Data Manipulation Language):数据操纵语言,用来对数据进行操作。
    代表指令:insertdeleteupdate
    DML 中又单独分了一个 DQL(Data Query Language,数据查询语言),代表指令:select
  • DCL(Data Control Language):数据控制语言,主要负责权限管理和事务。
    代表指令:grantrevokecommit

五、存储引擎

1.基本理解

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

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

2.查看存储引擎

使用show engines;可查看存储引擎。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值