当前位置: 首页 > news >正文

【MySQL 03】库的操作 (带思维导图)

文章目录

  • 🌈 一、创建数据库
  • 🌈 二、查看数据库
  • 🌈 三、使用数据库
  • 🌈 四、修改数据库
  • 🌈 五、删除数据库
  • 🌈 六、备份数据库
  • 🌈 七、恢复数据库
  • 🌈 八、字符集和校验规则
    • ⭐ 1. 查看系统默认字符集及校验规则
    • ⭐ 2. 查看数据库支持的字符集
    • ⭐ 3. 查看数据库支持的字符集校验规则
  • 🌈 九、思维导图

  • 前置:之后的所有的 SQL 语句中,凡是被中括号 [ ] 括起来的均为可选项

🌈 一、创建数据库

数据库创建语句

  • 创建数据库本质就是在 /var/lib/mysql创建一个目录

  • if not exists:如果指定数据库不存在则创建该数据库,如果存在则无事发生。

create database [if not exists] 数据库名;

image-20240809103108083

🌈 二、查看数据库

1. 查看所有的数据库

  • 查看当前用户下所能查看的数据库。
  • 本质就是查看 /var/lib/mysql 中的所有目录
show databases;

image-20240809103518609

2. 查看当前正在使用的数据库

select database();

image-20240809151716966

🌈 三、使用数据库

  • 一般而言,数据库是有很多的,需要指定自己要使用哪个数据库。
use 数据库名;

image-20240809113005338

🌈 四、修改数据库

  • 对数据库的修改主要指的是修改数据库的字符集、校验规则。
alter database 数据库名 charset=指定字符集 collate 指定校验规则;

🌈 五、删除数据库

  • 删除数据库的本质就是,删除 /var/lib/mysql 中的删除指定目录
  • if exists 选项表示如果指定数据库存在则将其删除,如果不存在则无事发生。
drop database [if exists] 数据库名;

image-20240809103710105

  • 直接删除数据库会将该库内的表也全部删除,特别不推荐直接删除数据库,如果非要删除,也要先对该数据库进行备份

🌈 六、备份数据库

1. 备份数据库语法

  • 在命令行输入以下指令备份指定数据库到指定位置。
  • 备份不止是备份对应数据的数据,还会将对被备份数据库曾经的有效操作也给备份。
sudo mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

2. 备份数据库案例

  • 使用如下指令将 db1 数据库备份到当前目录形成一个 test.sql 目录。
sudo mysqldump -P3306 -u root -p -B db1 > test.sql

image-20240809153607303

🌈 七、恢复数据库

1. 恢复数据库语法

  • 将对指定数据库的历史操作在新的 sql 中重新执行一遍。
mysql> source 备份文件所在路径;

2. 恢复数据库案例

image-20240809154254213

🌈 八、字符集和校验规则

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

  1. 数据库编码集:数据库未来存储数据所要采用的编码集。
    • 只要是数据,都要有对应的编码格式,而像数据库这种专门与数据打交道的就更不用说了。
  2. 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是读取数据库中数据所采用的编码格式。
    • 使用对数据库中的数据进行查找或匹配等需要比较的操作时,想要比较就要读取出来,在读的时候使用的校验规则。
  • 结论:数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

⭐ 1. 查看系统默认字符集及校验规则

  1. 查看系统默认字符集:
show variables like 'character_set_database';

image-20240809110031973

  1. 查看系统默认校验规则:
show variables like 'collation_database';

image-20240809105954180

⭐ 2. 查看数据库支持的字符集

show charset;
  • 可能会因为 MySQL 配置文件的差异而导致字符集有所差异。

⭐ 3. 查看数据库支持的字符集校验规则

show collation;
  • 查看的是字符集所对应的校验规则。

🌈 九、思维导图

image-20240809114339428

http://www.lryc.cn/news/424750.html

相关文章:

  • SpringBoot-读取配置文件内容
  • springboot整合springmvc
  • el-cascader多选的父子关联和父子不关联功能
  • #Datawhale AI夏令营第4期#多模态大模型Task2
  • LeetCode 热题100-1
  • 表现良好的最长时间段(LeetCode)
  • 【性能优化】DNS解析优化
  • 【剑指 offer】合并链表
  • 红酒与节日装饰:打造节日氛围的需备品
  • Element Plus的el-carousel走马灯平铺多张图片
  • 【promise】Promise的几个关键问题 (三)
  • 利用ZXing.Net Bindings for EmguCV识别条形码及绘制条形码边框17(C#)
  • IP代理如何增强网络安全性?
  • NDP(Neighbor Discovery Protocol)简介
  • 为何要隐藏源 IP 地址?
  • 目前最流行的前端构建工具,你知道几个?
  • C++函数模板温习总结
  • 【网络】套接字(socket)编程——TCP版
  • 水凝胶生物打印是什么?如何指导Organoids培养?有啥好处?
  • 从springBoot框架服务器上下载文件 自定义一个启动器
  • 某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏洞复现 [附POC]
  • pythonselenium自动化测试实战项目(完整、全面)
  • 如何选择合适的虚拟机软件?对比Parallels Desktop 和VMware Fusion 使用虚拟机畅玩黑神话悟空
  • ESP32FreeRTOS开发笔记:2.定义、多任务与优先级调度
  • 【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
  • Linux下查看各进程的swap
  • 最后一个单词的长度 简单字符串问题
  • Autodesk Mudbox 2024:重塑创意边界的3D数字绘画与雕刻利器
  • 【python下用sqlite3, 多线程下报错,原因和解决 】
  • 学习记录——day30 网络编程 端口号port 套接字socket TCP实现网络通信