【mysql】—— 数据库的操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【mysql】—— 数据库的操作

序言:

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

 



 

(一)库的操作

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来还原

总结

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

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
16天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4
|
23天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
117 1
|
11天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
105 0
|
24天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
53 0
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
132 6
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
64 3
Mysql(4)—数据库索引
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
71 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
25天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
77 2
|
28天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
104 4
下一篇
无影云桌面