【数据库初阶】Linux中库的基础操作

图片名称
🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

在这里插入图片描述

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 Linux中库的基础操作 帮助您轻松入门,快速掌握核心概念。


如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

文章目录

    • @[toc]
  • 1. 创建数据库
    • ==<font color = blue>🎧1.1 创建语法🎧==
    • ==<font color = blue>🎧1.2 字符集和校验集🎧==
      • <font color = red>查看字符集和校验集的对应关系
      • <font color = red> 查看不同校验集对数据库的影响
  • 2. 数据库的删改查
    • ==<font color = blue>🎧2.1 删除数据库🎧==
    • ==<font color = blue>🎧2.2 查询数据库🎧==
    • ==<font color = blue>🎧2.3 修改数据库🎧==
  • 3. 数据库的备份和恢复
    • ==<font color = blue>🎧3.1 数据库的备份🎧==
    • ==<font color = blue>🎧3.2 还原数据库🎧==
      • <font color = red> 注意事项
      • <font color = red> 查看链接情况

上一篇文章中,博主介绍了 :

  • 数据库基础知识;
  • Linux系统中如何理解数据库;

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【数据库初阶】数据库基础知识

那么接下来正文开始:



1. 创建数据库

🎧1.1 创建语法🎧

  • 数据库的创建方法很简单,首先输入 mysql -uroot -p, 然后输入密码进入到数据库;
  • 然后输入:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] 就可以创建数据库;
    • 其中中括号的内容是可以省略的, IF NOT EXISTS 表示的是如果不存在就创建;
    • db_name 表示的是你要创建的数据库的名称;
    • create_specification 表示的是字符集和校验集,什么是字符集和校验集呢,待会再说。
  • 上篇文章讲到,在Linux中创建数据库本质上就是在/var/lib/mysql这个路径中创建一个目录,因此在create的时候我们可以查看一下。

在这里插入图片描述

🎧1.2 字符集和校验集🎧

  • 我们使用数据库大体分为两个操作,一个是向数据库中写入,另一个是读取数据库中的内容
  • 其中写入操作所用到的叫字符集读取操作所用到的就是校验集
  • 这里要注意的是,在 /etc/my.cnf 这个配置文件中有一个默认字符集,如果我们在创建数据库的时候不做特殊说明,字符集就是继承配置文件中的字符集

在这里插入图片描述

查看字符集和校验集的对应关系

  • 在MySQL中字符集和校验集是有对应关系的;
  • 可以先输入 show variables like 'character_set_database';查看系统默认字符集:

在这里插入图片描述

  • 在输入 show variables like 'collation_database'; 查看系统默认校验集:

在这里插入图片描述

  • 输入 show charset; 查看系统所有字符集:

在这里插入图片描述

  • 类似的,输入 show collation; 查看所有校验集:

在这里插入图片描述

查看不同校验集对数据库的影响

  • 先创建两个数据库,其中一个叫test1,另一个叫test2
  • 他们的字符集都是utf8mb4,让test1的校验集是默认的(不区分大小写),让test2的校验集是utf8mb4_bin(区分大小写)。
  • 下面关于表的操作我们先暂时看一下,下篇文章会细讲。
  1. 创建 test1 数据库:
CREATE DATABASE IF NOT EXISTS test1; 
  1. 创建 test2 数据库:
CREATE DATABASE IF NOT EXISTS test2 COLLATE utf8mb4_bin;

在这里插入图片描述

  1. test1数据库中创建一个person表,向表中插入元素a A b B
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

  1. 类似地,在test2数据库中创建一个person表,向表中插入元素a A b B
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

  1. test1test2分别进行排序
select * from perosn order by name;
use test2;
select * from person order by name;

在这里插入图片描述


2. 数据库的删改查

🎧2.1 删除数据库🎧

  • 删除数据库的语法 : DROP DATABASE [IF EXISTS] db_ name;

执行删除后的结果:

  • 数据库内部看不到对应的数据库;
  • 对应的数据库文件夹被删除,里面的数据表全部被删;
  • 因此不要轻易删除数据库!!!

🎧2.2 查询数据库🎧

  • 查看数据库的语法:show databases;

  • 查看当前我在哪个数据库中:select database();,这个database()相当于是函数,功能类似于pwd

  • 查看创建数据库细节的语法:show create database 数据库名,例如:
    在这里插入图片描述

    • MySQL 建议我们关键字使用大写,但是不是必须的;
    • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字;
    • /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

🎧2.3 修改数据库🎧

  • 语法:ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
  • 一般改的就是字符集和校验集,例如:
    • alter database test3 charset=gbk;
    • 再输入show create database test3; 查看一下创建细节:

在这里插入图片描述


3. 数据库的备份和恢复

🎧3.1 数据库的备份🎧

  • 一般情况下,不要轻易删除数据库,如果真要删除,请务必要进行备份!
  • 但是不要把/var/lib/mysql路径下的数据库进行拷贝,这样做不太好;
  • 最好用数据库本身自带的备份语法,且这行命令要在shell中输入,不是在MySQL中输入mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径,例如:mysqldump -P3306 -uroot -p -B test1 > /home/dsj/mysql/backup_test2.sql

在这里插入图片描述

  • 查看一下备份文件:

在这里插入图片描述

  • 可以发现这个备份文件存储了我们对这个数据库的所有操作
  • 而不是单纯的将这个数据库的目录拷贝过来。

🎧3.2 还原数据库🎧

  • 还原的语法:mysql> source PATH;
    • 这个PATH就是刚才备份的路径。
  • 需要注意的是,还原要进入数据库操作而不是在shell中操作
  • 例如:mysql> source /home/dsj/mysql/backup_test2.sql;

在这里插入图片描述

  • 值得注意的是,还原也不是直接把文件给拖过来,而是重新执行一遍对此数据库的所有操作。

注意事项

  • 如果备份的不是整个数据库,而是其中的一张表,怎么做?
    • mysqldump -u root -p 数据库名 表名1 表名2 > PATH,例如:
    • mysqldump -uroot -p -P3306 test1 person > /home/dsj/mysql/backup_table_person.sql

在这里插入图片描述

  • 如何同时备份多个数据库呢?

    • mysqldump -u root -p 数据库名 表名1 表名2 > PATH
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

    • 因为实际上没有带 -B 参数,在备份文件中是不存在create database 的语句的,其他并没有什么不同,可以来看一下:

在这里插入图片描述

查看链接情况

  • 语法:show processlist
  • 例如:
mysql> show processlist;
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
| Id | User            | Host      | db    | Command | Time    | State                  | Info             |
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL  | Daemon  | 6664860 | Waiting on empty queue | NULL             |
| 74 | root            | localhost | test2 | Query   |       0 | init                   | show processlist |
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法Python版 图

文章目录 一、图二、抽象数据类型图三、图的实现-邻接列表法 一、图 表示图的英文单词 painting&#xff1a;用画刷画的油画drawing&#xff1a;用硬笔画的素描/线条画picture&#xff1a;真实形象所反映的画&#xff0c;如照片等&#xff0c;如take pictureimage&#xff1a…

Word表格另起一页解决办法

Word表格另起一页解决办法 表格设置根据内容自动调整&#xff0c;取消指定高度第1步 第2步

Python数据可视化案例——折线图

目录 json介绍&#xff1a; Pyecharts介绍 安装pyecharts包? 构建一个基础的折线图 配置全局配置项 综合案例&#xff1a; 使用工具对数据进行查看?&#xff1a; 数据处理 json介绍&#xff1a; json是一种轻量级的数据交互格式&#xff0c;采用完全独立于编程语言的…

【Seata】seata的部署和集成

一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包&#xff0c;地址在http://seata.io/zh-cn/blog/download.html 当然&#xff0c;课前资料也准备好了&#xff1a; 2.解压 在非中文目录解压缩这个zip包&#xff0c;其目录结构如下&#xff1a; 3.修改配置 修…

链表 之 无头结点【哨兵位】单向非循环链表【单链表】增删改查 等方法

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

GCP Cloud Architect exam - PASS

备考指南 推荐视频课程 https://www.udemy.com/course/google-cloud-architect-certifications/?couponCodeKEEPLEARNING 推荐题库 https://www.udemy.com/course/gcp-professional-cloud-architect-exam-practice-tests-2024​/?couponCodeKEEPLEARNING 错题集 http…

CCF-GESP 等级考试 2023年12月认证C++二级真题解析

2023年12月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 正确答案&#xff1a;C 考察知识点&#xff1a;变量的定义与使用 解析&#xff1a;变量命名规则&#xff1a;1、只能包括数字、字母和下划线&#xff1b;2、不能以数字开头&#xff1b;3、不能和…

5.学习webpack配置 babel基本配置

babel是一个javascript编译工具&#xff0c;其主要功能是将新版本的JavaScript代码&#xff08;如es6&#xff09;转换为旧版本的代码&#xff08;如es5&#xff09;&#xff0c;以便能够在旧版本的浏览器或环境中运行。一般配合webpack使用。 使用npm i -D babel/core babel/p…

配置搜索无人机

升级ubuntu内核 https://www.bilibili.com/video/BV11X4y1h7qN/?spm_id_from333.337.search-card.all.click 进入四个内核文件并安装 sudo dpkg -i *.deb安装ROS&#xff0c;PX4&#xff0c;XTDrone&#xff0c;QGC https://blog.csdn.net/qq_45493236/article/details/13…

Linux内核蓝牙子系统有什么(9)

接前一篇文章&#xff1a;Linux内核蓝牙子系统有什么&#xff08;8&#xff09; 本文内容参考&#xff1a; Linux之蓝牙相关代码浅析 | DDNotes 蓝牙驱动相关代码_蓝牙驱动代码-CSDN博客 linux蓝牙驱动代码阅读笔记_bt-sco.c-CSDN博客 Linux内核的蓝牙子系统架构-CSDN博客 …

22. 仿LISP运算

题目描述 LISP语言唯一的语法就是括号要配对 形如(OP P1 P2 ...)&#xff0c;括号内元素由单个空格分割。其中第一个元素OP为操作符&#xff0c;后续元素均为其参数&#xff0c;参数个数取决于操作符类型。注意:参数P1,P2也有可能是另外一个嵌套的(OP P1 P2...)&#xff0c;当前…

Axure10

如果还是不行就将字体图标安装在控制面板–字体下 打开原型了之后&#xff0c;icon没有 一定要将字体库放到–》控制面板\外观和个性化\字体 里面

王佩丰24节Excel学习笔记——第十九讲:Indirect函数

【以 Excel2010 系列学习&#xff0c;用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 如果indirect引用出错&#xff0c;首先检查一下引用位置的双引号有没有出错&#xff0c;再检查引用值的位置是否出错&#xff0c;如果是双引号出错&#xff0c;可以使用英文状态下输入…

基于 Ragflow 搭建知识库-初步实践

基于 Ragflow 搭建知识库-初步实践 一、简介 Ragflow 是一个强大的工具&#xff0c;可用于构建知识库&#xff0c;实现高效的知识检索和查询功能。本文介绍如何利用 Ragflow 搭建知识库&#xff0c;包括环境准备、安装步骤、配置过程以及基本使用方法。 二、环境准备 硬件要…

Structured-Streaming初识

一、概览 Structured Streaming是一个基于SparkSQL引擎构建的可扩展且容错的流处理引擎。可以像在静态数据上表达批量计算一样表达流计算。SparkSQL引擎将负责以增量方式连续运行它&#xff0c;并在流数据继续到达时更新最终结果。可以使用Scala、Java、Python或R中的Dataset/…

Gradio全解系列——Additional Features:附加功能(上)

Gradio全解系列——Additional Features&#xff1a;附加功能&#xff08;上&#xff09; 前言本篇摘要10. Additional Features&#xff1a;附加功能10.1 队列10.1.1 使用方法10.1.2 配置队列 10.2 流输入输出10.2.1 流输出1. 生成器yield2. 流媒体 10.2.2 流输入1. 流事件2. …

TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化

相关阅读 TestMAX/DFT Compilerhttps://blog.csdn.net/weixin_45791458/category_12865937.html?spm1001.2014.3001.5482 时序单元的状态 未映射的时序单元(Unmapped Sequential Cell) 在Design Compiler读取了一个RTL设计后&#xff0c;Design Compiler内置的HDL Compiler工…

Cocos Creator 3.8.5 正式发布,更小更快更多平台!

在 Cocos Creator 3.8.5 版本中&#xff0c;我们做了新一轮的优化。 在加载速度、代码裁剪、平台增强等多方面做了优化&#xff0c;提升了开发者体验和游戏性能。 希望能够助 Cocos 开发者们的产品更上一层楼。 一、加载速度优化 1、WASM 模块延迟加载 在早期版本中&#xff0c…

跨语言数据格式标准化在 HarmonyOS 开发中的实践

文章目录 前言数据格式标准化的意义数据传递中的痛点标准化的优势 JSON 与 Protocol Buffers 的比较JSONProtocol Buffers HarmonyOS 跨语言数据传递示例示例代码&#xff1a;定义 Protocol Buffers 消息格式生成 Java 和 C 代码示例代码&#xff1a;Java 端序列化与传递数据C …

【有作图代码】多尺度动力学模型:像“显微镜与望远镜的结合”,揭示微观分子运动与宏观流体流动的奥秘

【有作图代码】多尺度动力学模型&#xff1a;像“显微镜与望远镜的结合”&#xff0c;揭示微观分子运动与宏观流体流动的奥秘 具体实例与推演 假设我们有一个流体系统&#xff0c;其中微观尺度上分子间的相互作用可以通过分子动力学方程描述&#xff0c;而宏观尺度上流体的流…