【mysql】—— 数据库的操作

序言:

在上篇文章我已经对数据库进行了详细的介绍,接下来我们就将上手学习操作的细节了。本篇文章便带领大家去学习有关库操作的基本知识!!!

MySQL标志矢量图 - 设计之家

 

目录

(一)库的操作

1、 创建数据库

2、字符集和校验规则

1️⃣ 查看系统默认字符集以及校验规则

 2️⃣ 查看数据库支持的字符集

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

4️⃣ 创建数据库案例

5️⃣ 校验规则对数据库的影响

(二)操纵数据库

1、查看数据库

2 、显示创建语句

 3、修改数据库

4、数据库删除 

5、查看连接情况

6、备份和恢复

1️⃣备份

2️⃣注意事项

总结


 

(一)库的操作

1、 创建数据库
 

在上篇文章中我带大家简单的看了一下数据库的创建过程,本期我们便具体展开来谈谈其中的细节。

在MySQL中,可以使用  CREATE DATABASE 语句来创建数据库。下面是创建数据库的基本语法:

  •  其中,db_name 及 database_name 是要创建的数据库的名称;
  • IF NOT EXISTS :可选参数,表示如果数据库已经存在则不执行创建操作;
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE:  指定数据库字符集的校验规则
     

例如,要创建一个名为 "mydatabase" 的数据库,可以使用以下命令:

create database mydatabase;

 

当我们重新另起一个页面进入【/var/lib/mysql】目录下时,我们可以发现此时目录下多出了一个【mydatabase】的目录:

 此时,假设由于创建的数据库太多了,导致自己创建的数据库名字忘掉了。此时,我们可以添加一些设置操作:

【分析】 

  •  这条语句将检查数据库是否已经存在。如果数据库尚未存在,则会创建名为 "mydatabase" 的数据库;
  • 如果数据库已经存在,则不执行任何操作。很明显,上述我们床架了一个名为【mydatabase】的数据库,因此不会被重新创建

 

紧接着,当我们想删除掉这个数据库时,应该怎么做呢?此时,我们像下述这样:

  • 要删除名为 "mydatabase" 的数据库,可以使用以下命令:
drop database mydatabase;

 

 

因此,我们不难发现,在mysql 环境下创建数据库相当于在【/var/lib/mysql】增加一个文件而已。那么,我们也可以直接在【/var/lib/mysql】下创建一个文件是不是就相当于在 mysql 环境下创建一个数据库呢? 具体如下:

 结果显而易见,我们可以进行这样的操作,但是此时会有一个问题,那就是当我们我们在【/var/lib/mysql】想删除时,我们却无法进行 相关操作:

  •  而当我们在 mysql 环境下使用指令删除时,我们是可以正确的删除的:

 


2、字符集和校验规则

  • 创建名为 db1 的数据库
     
create database db1;

说明

        当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

在MySQL中创建数据库时,常用的两个字符集编码:

  • 数据库编码集:数据库未来存储数据;
  • 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式;

1️⃣ 查看系统默认字符集以及校验规则
 

要查看MySQL数据库系统的默认字符集和校对规则,可以使用以下查询语句:

  • 查询结果将会返回类似下面的信息:

  •  第一条查询语句将显示与字符集相关的系统变量

  •  第二条查询语句将显示与校对规则(排序规则)相关的系统变量。

 2️⃣ 查看数据库支持的字符集

show charset;

当使用 SHOW CHARSET;命令时,MySQL会显示当前数据库中可用的字符集,并提供相关信息,例如字符集名称、默认排序规则和描述。

  • 以下是执行 SHOW CHARSET;查询的示例输出:

 

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

show collation;

 当使用 SHOW COLLATION;命令时,MySQL将显示当前数据库中可用的校对规则(排序规则),并提供相关信息,例如校对规则名称、字符集、ID和描述。

  • 以下是执行 SHOW COLLATION; 查询的示例输出的一部分:

查询结果将列出可用的校对规则及其相关信息,如校对规则名称、字符集、ID、是否为默认校对规则(Default)、是否已编译(Compiled)以及排序长度(Sortlen)。

4️⃣ 创建数据库案例
 

💨 创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;
  •  显示如下:

💨 创建一个使用utf字符集,并带校对规则的 db3 数据库

create database db3 charset=utf8 collate utf8_general_ci;
  •  显示如下:

 

5️⃣ 校验规则对数据库的影响

  • 不区分大小写
     

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

create database test1 collate utf8_general_ci;

显示如下:

 

紧接着进入表中,在进行建表操作:

  进行查询:

 结果排序:

 

 

 

  • 区分大小写
     

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

create database test2 collate utf8_bin;

显示如下:

 紧接着进入表中,在进行建表操作:

 

  进行查询:

  结果排序:

 


(二)操纵数据库

1、查看数据库

show databases;

这个就不过多介绍了,在之前我们一直再用。

此外,我在给大家介绍一个新的东西:

  • SELECT DATABASE(); 是一个MySQL查询,用于获取当前正在使用的数据库的名称。

当你执行这个查询时,它将返回当前正在使用的数据库的名称作为结果。例如,如果当前正在使用的数据库是"test2",那么执行 SELECT DATABASE(); 将返回如下结果:

  •  请注意,这是一个只返回结果的查询,不会对数据库进行任何修改或操作

2 、显示创建语句
 

show create database 数据库名;

示例:

【分析】

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

 3、修改数据库

语法:
 

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]


alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

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

实例: 将 test2 数据库字符集改成 gbk
 

4、数据库删除
 

语法:

DROP DATABASE [IF EXISTS] db_ name;

示例:删除test1

 

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
     

💨 注意:不要随意删除数据库

5、查看连接情况

语法:
 

show processlist

输出显示:

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
 

6、备份和恢复

1️⃣备份

在MySQL中,可以使用多种方法进行数据库的备份和恢复。以下是两种常用的方法:

  • 使用 mysqldump 工具进行备份和恢复:

备份数据库:可以使用以下命令来备份整个数据库:

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

例如,要备份名为"db1"的数据库,使用以下命令:

mysqldump -P3306 -u root -p123456 -B db1> db1.sql

  •  这将把整个数据库保存到名为"db1.sql"的SQL文件中。

恢复数据库:可以使用以下命令来还原数据库:

mysql -u 用户名 -p 数据库名 < 备份文件.sql

例如,要还原名为"db1"的数据库,使用以下命令:

mysql -u root -p db1< db1.sql

  1. 这将从"db1.sql"文件中读取SQL语句,并还原数据库。

  • 使用物理文件拷贝进行备份和恢复:

备份数据库:可以直接拷贝MySQL数据目录来备份数据库。首先停止MySQL服务,然后复制MySQL数据目录到备份位置即可。

恢复数据库:要恢复数据库,只需将备份的数据目录拷贝回MySQL数据目录的原始位置,并确保相应的权限和所有权设置正确。然后重新启动MySQL服务即可。

无论使用哪种方法,都建议定期备份数据库以确保数据的安全性,并根据需要进行恢复。

2️⃣注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?
 

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

同时备份多个数据库
 

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

总结

到此,关于本文的内容便讲解结束了。感谢大家的观看与支持!!!

 

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

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

相关文章

HTML input text 常用事件

前言 用于记录开发中常用到的&#xff0c;快捷开发 简单实例 <input type"text" name"noSecretKeyJson" maxlength"200" />常用事件 oninput &#xff08;在用户输入时触发&#xff09;及案例 案例一&#xff1a;限制只允许输入数字…

C#基础--反射

反射 一、为什么学习反射 因为反射真的是无处不在&#xff0c;ORM、MVC、IOC、AOP、Attribute等等都会使用到反射。反射是程序员的快乐 二、什么是反射 Ilspy&#xff1a;逆向工程&#xff0c;可以吧DLL/Exe文件反编译回来 DLL/EXE 文件下包含Metadata和IL&#xff0c;IL是对…

跨文化合作:如何解决海外网红营销中的文化差异?

随着社交媒体的快速发展&#xff0c;海外网红营销已成为许多品牌和企业获取国际市场的有效方式。然而&#xff0c;由于不同国家和地区存在着独特的文化差异&#xff0c;如语言、价值观、习俗等&#xff0c;这也给品牌进行海外网红营销带来了一系列挑战。本文Nox聚星将和大家探讨…

WPF 自定义控件完成库容表盘显示效果

先看一下显示效果&#xff1a; 需要注意的地方有以下几点&#xff1a; 表盘的刻度分部&#xff0c;长刻度和短刻度显示。在数值80W时&#xff0c;需要更改刻度盘的颜色渐变。在数值80W时&#xff0c;更改库容总数背景的显示&#xff0c;也是颜色渐变。刻度盘控件属性定义&…

JVM中的堆和栈到底存储了什么

JVM数据区 先上一张Java虚拟机运行时数据区中堆、栈以及方法区存储数据的概要图&#xff0c;如下所示&#xff1a; 然后我们来具体解析一下堆和栈 堆 堆是存储时的单位&#xff0c;对于绝大多数应用来说&#xff0c;这块区域是 JVM 所管理的内存中最大的一块。线程共享&#…

JavaScript XHR、Fetch

1 前端数据请求方式 2 Http协议的解析 3 XHR的基本用法 4 XHR的进阶和封装 5 Fetch的使用详解 6 前端文件上传流程 早期的页面都是后端做好&#xff0c;浏览器直接拿到页面展示的&#xff0c;用到的是jsp、asp、php等等的语言。 这个叫做服务器端渲染SSR。 这里后端向前端…

[sqoop]导入数据

一、覆盖导入 例如维度表&#xff0c;每次导入的数据需要覆盖上次导入的数据。 hive-overwrite参数&#xff1a;实现覆盖导入 hive-import参数&#xff1a;表示向hive表导入 hive-table参数&#xff1a;指定目标hive库表 sqoop import \ --connect jdbc:mysql://hadoop1:3…

介绍性能压力测试的重要性

在当今数字化时代&#xff0c;软件和应用程序的性能对于用户体验和业务成功至关重要。为了确保系统在面临高负载和压力时能够正常运行&#xff0c;性能压力测试成为一项不可或缺的活动。本文将介绍性能压力测试的重要性。 性能压力测试是一种通过模拟实际场景中的负荷和用户访问…

前端两种实现轮播图方式

今天研究两种简单实现轮播图功能的方式。 目录 Layui实现轮播图 码云下载 提取静态文件 示例 注意 参数说明 改为轮播图 增加图片资源文件 轮播栏目修改 改为上下切换 切换事件 脚本中绑定改变事件 控制器查看 Swiper实现轮播图 下载swiper 下载到本地 加载sw…

EMC学习笔记(十七)PCB设计中的安规考虑

PCB设计中的安规考虑 1 概述2.安全标识2.1 对安全标示通用准则2.2 电击和能量的危险2.3 PCB上的熔断器2.4 可更换电池 3.爬电距离和电气间隙4.涂覆印制板4.1 PCB板的机械强度4.2 印制电路板的阻燃等级4.3 热循环试验与热老化试验4.4 抗电强度试验4.5 耐划痕试验 5.布线和供电 1…

网络安全(黑客)万字自学笔记

目录 特别声明&#xff1a; 一、前言 二、定义 三、分类 1.白帽黑客&#xff08;White Hat Hacker&#xff09; 2.黑帽黑客&#xff08;Black Hat Hacker&#xff09; 3.灰帽黑客&#xff08;Gray Hat Hacker&#xff09; 四、黑客文化 五、伦理问题 六、黑客的作用 …

shell脚本备份数据库

首先是在本地windows环境下尝试备份数据库 打开mysql的bin目录&#xff0c;然后在地址栏cmd&#xff0c;进入cmd界面&#xff0c;输入mysqldump命令&#xff0c;-u输入用户名&#xff0c;-p输入密码 还有数据库名称&#xff0c;以及后面要保存到的位置 mysqldump -uroot -p tes…

编写测试用例的方法,这个是真的很好用

大家测试过程中经常用的等价类划分、边界值分析、场景法等&#xff0c;并不能覆盖所有的需求&#xff0c;我们之前讲过很少用到的因果图法&#xff0c;下面就来讲另一种不经常用到但又非常重要的测试用例编写方法——测试大纲法。 测试大纲法适用于有多个窗口&#xff0c;每个…

Vue-Router相关理解4

两个新的生命周期钩子 activated和deactivated是路由组件所独有的两个钩子&#xff0c;用于捕获路由组件的激活状态具体使用 activated路由组件被激活时触发 deactivated路由组件失活时触发 src/pages/News.vue <template><ul><li :style"{opacity}&qu…

linux之Ubuntu系列(五)用户管理、查看用户信息 终端命令

创建用户 、删除用户、修改其他用户密码的终端命令都需要通过 sudo 执行 创建用户 设置密码 删除用户 sudo useradd -m -g 组名 新建用户名 添加新用户 -m&#xff1a;自动建立用户 家目录 -g&#xff1a;指定用户所在的组。否则会建立一个和用户同名的组 设置新增用户的密码&…

尝试-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 活动地址 三、图片生成提示词与反向提示词&#xff1a; 提示词&#xff1a;realistic portrait painting of a japanese…

vscode remote-ssh配置

使用vscode的插件remote-ssh进行linux的远程控制。 在vscode上安装完remote-ssh插件后&#xff0c;还需要安装openssh-client。 openssh-client安装 先win R打开cmd&#xff0c;输入ssh&#xff0c;查看是否已经安装了。 如果没有安装&#xff0c;用管理员权限打开powershe…

商城-学习整理-基础-环境搭建(二)

目录 一、环境搭建1、安装linux虚拟机1&#xff09;下载&安装 VirtualBox https://www.virtualbox.org/&#xff0c;要开启 CPU 虚拟化2&#xff09;虚拟机的网络设置3&#xff09;虚拟机允许使用账号密码登录4&#xff09;VirtualBox冲突5&#xff09;修改 linux 的 yum 源…

DirectX12(D3D12)基础教程(二十二) ——HDR IBL 等距柱面环境光源加载和解算及 GS 一次性渲染到 CubeMap

前序文章目录 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;一&#xff09;——基础教程 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;二&#xff09;——理解根签名、初识显存管理和加载纹理、理解资源屏障 DirectX12&#xff08;D3D12&…

传统软件测试过程中的测试分工

最近看了点敏捷测试的东西&#xff0c;看得比较模糊。一方面是因为没有见真实的环境与流程&#xff0c;也许它跟本就没有固定的模式与流程&#xff0c;它就像告诉人们要“勇敢”“努力”。有的人在勇敢的面对生活&#xff0c;有些人在勇敢的挑战自我&#xff0c;有些人在勇敢的…