【数据库初阶】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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用envoyfilter添加请求头

该envoyfilter实现了这样一个功能&#xff0c;如果请求头中含有Sw8&#xff0c;则添加请求头HasSw8: true。 1. 内嵌lua脚本 apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata:name: add-header-filternamespace: demo-bookinfo # 可根据实际情况调整命…

服务器被攻击怎么办

当服务器遭受恶意流量攻击&#xff0c;如DDoS&#xff08;分布式拒绝服务&#xff09;或CC&#xff08;Challenge Collapsar&#xff09;攻击时&#xff0c;传统的防护措施可能不足以应对。此时&#xff0c;采用高防IP服务可以有效缓解攻击压力&#xff0c;确保业务连续性和数据…

03.04、化栈为队

03.04、化栈为队 1、题目描述 实现一个 MyQueue 类&#xff0c;该类用两个栈来实现一个队列。 2、解题思路 本题要求使用两个栈来实现一个队列。队列遵循先进先出&#xff08;FIFO&#xff09;的原则&#xff0c;而栈遵循后进先出&#xff08;LIFO&#xff09;的原则。因此…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11

文章目录 一、算法概念11二、算法原理&#xff08;一&#xff09;感知机&#xff08;二&#xff09;多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、MLP分类任务实…

【LLM】OpenAI 的DAY12汇总和o3介绍

note o3 体现出的编程和数学能力&#xff0c;不仅达到了 AGI 的门槛&#xff0c;甚至摸到了 ASI&#xff08;超级人工智能&#xff09;的边。 Day 1&#xff1a;o1完全版&#xff0c;开场即巅峰 12天发布会的开场即是“炸场级”更新——o1完全版。相比此前的预览版本&#x…

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之2

前情提要 这一次我们暂时抛开前面对“智能工厂的软件设计”的考虑--其软件智能 产品就是 应用程序。直接将这些思维方式和方法论 运用在其具体应用场景中。本文是其中的一个应用场景。 今天用了 一个新的AI助手工具来交流。下面是就这一应用场景和“天意ChatGPT”&#xff08…

高斯核函数(深入浅出)

目录 定义及数学形式主要特点应用示例小结 高斯核函数&#xff08;Gaussian Kernel&#xff09;&#xff0c;又称径向基核&#xff08;Radial Basis Function Kernel&#xff0c;RBF Kernel&#xff09;&#xff0c;是机器学习与模式识别中最常用的核函数之一。它通过在高维空间…

MaixBit k210学习记录

开发背景&#xff1a;Window系统主机&#xff0c;在主机上安装了虚拟机&#xff08;VirtualBoxUbuntu23.04&#xff09; 目标实现&#xff1a;在虚拟机&#xff08;Ubuntu&#xff09;中&#xff0c;实现对Maix bit&#xff08;k210&#xff09;开发板的开发 虚拟机的安装参考…

WordPress TutorLMS插件 SQL注入漏洞复现(CVE-2024-10400)(附脚本)

0x01 产品描述: ‌Tutor LMS‌是一个功能强大的

ExpDemo-JavaFX打造属于你自己的图形化漏洞利用工具

声明&#xff01;本文章所有的工具分享仅仅只是供大家学习交流为主&#xff0c;切勿用于非法用途&#xff0c;如有任何触犯法律的行为&#xff0c;均与本人及团队无关&#xff01;&#xff01;&#xff01; 目录标题 前言编写属于你的图像化漏洞利用工具项目结构编写EXP部署 部…

串口通信标准RS232、RS422、RS485有什么区别和不同

目录 第一个区别&#xff1a;硬件管脚接口定义不同&#xff1a; 第二个区别、工作方式不同 第三个区别、通信方式不同 第四个区别&#xff0c;逻辑特性不同 第五个区别、抗干扰性、传输距离和传输速率也不同 RS-232与RS-485对比 RS-422与RS-485对比 今天给大家分享的是&…

python中的列表及操作

1、列表类型的定义 列表是序列类型的一种扩展&#xff0c;创建后可以随意被修改 使用方括号[]或list()创建&#xff0c;元素间用逗号&#xff0c;分隔 列表中各元素类型可以不同&#xff0c;无长度限制 定义示例&#xff1a; ls [88, cat, dog]2、列表的操作函数和方法 函…

银河麒麟操作系统安装达梦数据库(超详细)

目录 引言1. 前期准备1.1 安装麒麟系统1.2 下载达梦数据库安装包&#xff08;DM8&#xff09;1.3 上传安装包到麒麟系统1.4 挂载安装包&#xff08;iso&#xff09;文件1.5 配置安装用户和组1.6 创建安装路径及修改权限1.7 设置临时安装目录 2. 安装达梦数据库&#xff08;DM8&…

Linux-frp_0.61.1内网穿透的配置和使用

下载frp frp官网 https://gofrp.org/zh-cn/docs/setup/ frp安装包下载地址 https://github.com/fatedier/frp/releases?page1 下载之后在服务器上 解压 tar -zxvf frp_0.61.1_linux_amd64.tar.gztar&#xff1a;一个用于压缩和解压缩的工具。-z&#xff1a;表示使用 gzi…

【操作系统】如何创建一个守护进程

守护进程&#xff08;Daemon&#xff09;是一类在后台运行的特殊进程&#xff0c;它们通常不与任何终端或用户直接交互&#xff0c;而是执行特定的系统任务或等待系统或网络事件的发生。守护进程是操作系统中不可或缺的一部分&#xff0c;它们负责执行各种后台任务&#xff0c;…

Unity开发AR之Vuforia-MultiTarget笔记

前言 在增强现实(AR)技术蓬勃发展的今天,越来越多的开发者开始探索如何将AR应用于各种场景中。Vuforia作为一个领先的AR开发平台,为开发者提供了强大的工具和功能,使得创建AR体验变得更加简单和直观。本文将为您介绍Vuforia的基本概念、特点,以及如何配置和使用MultiTar…

python|利用ffmpeg按顺序合并指定目录内的ts文件

前言&#xff1a; 有的时候我们利用爬虫爬取到的ts文件很多&#xff0c;但ts文件只是视频片段&#xff0c;并且这些视频片段是需要按照一定的顺序合并的&#xff0c;通常ts文件合并输出格式为mp4格式 因此&#xff0c;本文介绍利用python&#xff0c;调用ffmpeg来批量的按自己…

【Python】 基于Python实现日志聚合与分析工具:利用Logstash与Fluentd构建高效分布式日志系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在分布式系统中,日志数据的生成速度和数量呈指数级增长,传统的日志管理方式已无法满足现代企业对实时性、可扩展性和高效性的需求。本文深…

04.HTTPS的实现原理-HTTPS的混合加密流程

04.HTTPS的实现原理-HTTPS的混合加密流程 简介1. 非对称加密与对称加密2. 非对称加密的工作流程3. 对称加密的工作流程4. HTTPS的加密流程总结 简介 主要讲述了HTTPS的加密流程&#xff0c;包括非对称加密和对称加密两个阶段。首先&#xff0c;客户端向服务器发送请求&#xf…

【从零开始入门unity游戏开发之——C#篇34】C#匿名函数(delegate )和Lambda表达式

文章目录 一、匿名函数&#xff08;delegate &#xff09;1、什么是匿名函数&#xff1f;2、匿名函数的基本语法2.1 语法2.2 **没有参数的匿名函数&#xff1a;**2.3 **有参数的匿名函数&#xff1a;**2.4 **有返回值的匿名函数&#xff1a;** 3、匿名函数的使用示例3.1 作为参…