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

总结

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

 

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

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

相关文章

【深度学习笔记】训练 / 验证 / 测试集

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记&#xff0c;视频由网易云课堂与 deeplearning.ai 联合出品&#xff0c;主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习&#xff0c;视频的链接如下&#xff1a; 神经网络和…

基于物联网技术的养老院管理系统设计与实现_kai

基于物联网技术的养老院管理系统设计与 实现 摘 要 随着我国老年人口数量的逐年增加&#xff0c;人口抚养比也在迅速攀升&#xff0c;越来越多的老年人将走 出家门进入养老院安度自己的晚年。同时国家和地方也相继出台了加快发展老龄事业的政策 方针&#xff0c;作为机构养老…

第三方api对接怎么做?淘宝1688api接口怎么对接?

在今天的互联网上&#xff0c;第三方API对接是必不可少的。这种技术将不同的应用程序/服务连接在一起&#xff0c;创造了无限的可能性。 第三方api对接怎么做&#xff1f; 1、与支付公司签约 首先&#xff0c;通过正规的渠道&#xff0c;如支付公司官网或正规服务商&#xf…

如何让Stable Diffusion正确画手(1)-通过embedding模型优化图片质量

都说AI画手画不好手&#xff0c; 看这些是我用stable diffusion生成的图片&#xff0c;小姐姐都很漂亮&#xff0c;但手都千奇百怪&#xff0c;破坏了图片的美感。 其实只需要一个提示词&#xff0c;就能生成正确的手部&#xff0c;看这是我重新生成的效果&#xff0c;每一个小…

1、网络基础

网络发展背景、IP、端口、网络通信协议&#xff0c;TCP/IP五层模型、字节序 一、网络发展背景 局域网&#xff1a;网络覆盖在1000m以内的网络 城域网&#xff1a;网络覆盖在20km以内的网络 广域网&#xff1a;网络覆盖在20km以上的网络 因特网、互联网&#xff1a;更大的国…

基于单片机汽车防盗报警的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;LCD1602液晶显示当前温度信息和参数等功能&#xff1b;3个LED指示灯表示&#xff1a;震动指示灯、人体感应指示灯、防盗模式开启指示灯&#xff1b;按键用来开启防盗模式&#xff0c;设置温度上下限&#xff1b;开启防盗后检测到…

网络数据安全风险评估实施指引(二)

评估手段是多种多样的。信息安全风险评估可以用各种不同的方式识别资产脆弱性和攻击路径&#xff0c;数据安全风险评估也包含但不限于以下措施&#xff1a; 人员访谈&#xff1a;对相关人员进行访谈&#xff0c;核查制度规章、防护措施、安全责任落实情况&#xff1b; 文档查…

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88050234

Redis字典

1.前言 我们回顾一下之前讲到的Redis的字典结构&#xff0c;示意图如下&#xff1a; Redis的字典本质上来说也是数组链表的数据结构&#xff0c;这与Java中HashMap的数据结构很类似。 由上述结构示意图也能看出&#xff0c;字典dict中维护了一个ht数组&#xff0c;而且只有两…

LeetCode: 18. 四数之和 | 双指针专题

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

设计模式(六)-----适配器模式(Adapter Pattern)

目录 什么是适配器模式适用场景适配器模式的三种实现方式1. 类的适配器模式2. 对象的适配器模式3. 接口的适配器模式 总结 什么是适配器模式 适配器模式主要用于将一个类的接口转化成客户端希望的目标类格式&#xff0c;使得原本不兼容的类可以在一起工作&#xff0c;将目标类…

【智能时代的颠覆】AI让物联网不再是物联网

自我介绍⛵ &#x1f4e3;我是秋说&#xff0c;研究人工智能、大数据等前沿技术&#xff0c;传递Java、Python等语言知识。 &#x1f649;主页链接&#xff1a;秋说的博客 &#x1f4c6; 学习专栏推荐&#xff1a;MySQL进阶之路、C刷题集、网络安全攻防姿势总结 欢迎点赞 &…