MySQL基础与库的基本操作

1 MySQL基础

一种存储解决方案

mysql本质是一种网络服务

mysql – 数据库服务的客户端

mysqld – 数据库服务的服务器端

mysql本质:基于C(mysql)S(mysqld)模式的一种网络服务

  1. mysql是一套给我们提供数据存取的服务的网络程序
  2. 数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据 – 将来在磁盘上存储的一套数据库方案
  3. 数据库服务 – mysqld

为什么不直接用文件?

一般的文件确实提供了数据的存储能力,但并没有提供很好的数据管理能力(用户(程序员)角度)

因此:数据库本质->对数据内容存储的一套解决方案,用户给数据库字段或者要求,数据库直接给结果就行

image-20230908213844662

  1. 建立数据库,本质就是Linux下的一个目录

image-20230908212623644

  1. 在数据库内建立表,本质就是在Linux下创建对应的文件即可!

image-20230908213240097

  1. 在表中插入数据并查询

image-20230908213643492

以上工作,本质是mysqld做的。

数据本质也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。

在这里插入图片描述

MySQL Server由以下三层构成:

  1. 连接池(Connection Pool):负责处理客户端与服务器之间的连接。它接收来自客户端的请求,并将其传递给下一层进行处理。
  2. 查询层(Query Layer):负责解析和执行SQL查询。它将查询发送到存储引擎,并将结果返回给连接层。
  3. 存储引擎层(Storage Engine Layer):负责数据的存储和检索。它处理存储和读取数据的底层操作,可以根据需要选择不同的存储引擎,如InnoDB、MyISAM等。存储引擎层将数据存储在磁盘上,并提供对数据的访问和修改功能。

image-20230908220212318

SQL分类

  • DDL 数据定义语言,用来维护存储数据的结构,代表指令:create,drop,alter
  • DML 数据操纵语言,用来对数据进行操作,代表指令:insert,delete,update
    • DML中又单独分了一个DQL,数据查询语言,代表指令:select
  • DCL 数据控制语言,主要负责权限管理和事务,代表指令:grant,revoke,commit

查看MySQL存储引擎

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

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

通过show engines查看存储引擎:

image-20230908221602199

mysql最常用的两个存储引擎:

  • InnoDB
  • MyISAM

2 MySQL 库的操作

数据库基本增删

  1. 创建数据库:create database [if not exists] db_name;

    image-20230908222610553

  2. 删除数据库:drop database db_name;

    image-20230908222542729

创建数据库时的编码问题

创建数据库时,有两个编码集:

  1. 数据库编码集 – 数据库未来存储数据采用的编码
  2. 数据库校验集 – 对数据库内数据进行查找匹配是的校验规则,支持数据库进程字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式

存数据和取数据时,编码集必须是统一的。

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

认识系统编码

查看系统编码集和校验集

  • 查看系统默认支持的字符集(编码集)

image-20230908223816315

  • 查看系统默认的校验集

    image-20230908224202658

  • 查看数据库支持的所有字符集,字符集主要是控制用什么语言,比如utf8就可以使用英文

    image-20230908224325082

  • 查看数据库支持的字符集校验规则
    image-20230909151154615

  • 创建一个使用utf-8字符集,校对规则为utf8_general_ci的db2数据库
    image-20230909154239021

校验规则对数据库的影响

  • 创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

image-20230909163610575

image-20230909164324205

  • 创建一个数据库,校验规则使用utf8_ bin[区分大小写]

image-20230909170913309

数据库的查看与删除

image-20230909171442371

修改数据库

修改数据库字符集以及校验集: alter

显示创建语句:show create database 数据库名

对数据库的修改主要是修改数据库的字符集,校验规则

image-20230909174430456

数据库的备份与恢复

  • 备份
    image-20230909205332331

  • 查看备份文件(本质是把从创建该数据到备份时的命令进行备份)
    image-20230909205445037

  • 删除后恢复
    image-20230909205821104

另外:

  • 如果备份的不是整个数据库,而是其中一张表

    # mysqldump -u root -p 数据库名 表名1 表名2 > db.sql

  • 同时备份多个数据库

    # mysqldump -u root -p -B 数据库名1 数据库名2 > db.sql

  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

查看连接情况

show processlist
在这里插入图片描述

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值