前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL操作库

MySQL操作库

作者头像
每天都要进步呀
发布于 2023-10-16 03:15:19
发布于 2023-10-16 03:15:19
20500
代码可运行
举报
文章被收录于专栏:C++/LinuxC++/Linux
运行总次数:0
代码可运行

一.创建数据库

1. 创建数据库的方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database database1;

带选项的创建

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database if not exists database1;
  • 如果不存在(if not exists)才创建数据库database1。

2. 创建数据库时的编码问题

与数据打交道的数据库的创建一定与编码有关系。创建数据库的时候,有两个编码集:

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

因此,数据库无论对数据做任何操作,都需要保证数据库的操作和编码必须是编码一致的。

查看系统默认支持的字符集和校验集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'character_set_database';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'collation_database';

查看connection、database、server的校验集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'collation_%';

大部分情况下,数据库的连接,数据库本身、数据库的服务器都是utf8的。在最开始的my.cnf配置中,我们把默认字符集全部配成了utf8进行统一,如果不配置,可能就会因为编码的不同导致无法正确解析数据。

查看数据库全部的字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show charset;

查看对照表,数据库选择的就是其中的utf8的字符集。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show collation;

3. 指定编码创建数据库

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

两种方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database d2 charset=utf8; #指定编码格式utf8
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database d3 set utf8; #指定编码格式utf8

编码集字符集同时设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database d4 charset=utf8 collate utf8_general_ci; #既指明编码,又指明校验规则

根据字符集表以及校验表创建不同编码和校验规则的数据库

4. 验证校验规则对数据库的影响

不区分大小写

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database test1 collate utf8_general_ci;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use test1;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table person(name varchar(20));

由于是不区分大小写的,所以在指定查’a’的时候,utf8_ general_ ci校验规则会将’A’和’a’一并查出:

区分大小写

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database test2 collate utf8_bin;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use test2;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table if not exists person(name varchar(20));

因此,校验规则的不同,我们查出的结果也有可能不同。

校验规则的不同,排序的顺序也会不同:(从小到大)

故忽略大小写时,大小写的排序不做区分。

二.数据库与文件系统的关系

创建数据库:create database db_name; 本质就是在/var/lib/mysql创建一个目录。

删除数据库:drop database db_name; 本质就是在/var/lib/mysql删除目录。

因此,我们可以在/var/lib/mysql上创建目录,那么数据库层面也一定会产生相应的数据库。

同理,在mysql目录中删掉一个目录,数据库层面的对应数据库也会被删掉。

当然,绝对不应该在文件系统层面创建目录从而生成对应数据库,这样是不合理的。因此mysql8.0就禁掉了这个功能,而mysql5.6支持。

三.操纵数据库

1. 查看数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show databases;

如果想要确定是在哪个数据库里,可以执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select database();

2. 删除数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop database db_name;

执行删除之后的结果:

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

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

3. 修改数据库

  • 对数据库的修改主要指的是修改数据库的字符集,校验规则
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database test2 charset=gbk collate gbk_Chinese_ci;

四.数据库的备份和恢复

1.数据库的备份

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

-B:代表选择数据库的选项。

test1.sql中存储的不仅仅是test1数据库中的数据,还有历史上创建过的命令:

至此就完成了对数据库test1的备份操作。

2.数据库的恢复

现在,将test1数据库删掉:

这样,在/var/lib/mysql的路径下,一定也不存在test1目录。

通过pwd命令,我们知道test1.sql所在的路径:

然后,通过以下恢复命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> source /root/MySQL/test1.sql;

此时,就可以查看到对应test1的数据库及其内容:

注意事项

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqldump -u root -p 数据库名 表名1 表名2 > 路径/mytest.sql

同时备份多个数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

五.查看连接情况

如果在使用数据库时,出现卡顿,那么有可能访问数据库的不止你一个,所以,通过如下命令,我们可以看到User的数量及名称Id。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show processlist;

这可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据之舞——在MySQL中奏响数据库操作的乐章
在数字的世界里,MySQL像是一艘承载数据的船,带领我们穿越信息的海洋。每一条SQL语句,都是我们与数据库之间的语言桥梁。我们借助这些命令,去查询隐藏在深处的答案,去更新和重组混乱的片段。在这条旅途中,逻辑与技巧是我们的罗盘,指引我们穿越复杂的表结构与关系。
suye
2025/05/29
860
数据之舞——在MySQL中奏响数据库操作的乐章
Linux——MySQL基础
也就是说,mysql是一套提供数据存储服务的网络程序。 数据库一般指的是在磁盘或者内存中存储的特定结构组织的数据——将来在磁盘中存储数据的一套特定方案。 数据库服务就是mysqld。 为什么有数据库 虽然一般文件确实提供了数据存储的功能,但是站在用户角度上,文件并没有提供非常好的数据管理能力。 数据库的本质:对数据内容存取的一套解决方案,你给我数据内容,我直接给你结果。
有礼貌的灰绅士
2025/05/10
1010
Linux——MySQL基础
初识MySQL · 库的操作
由前文可得,MySQL是目前主流的数据库,mysql是客户端,mysqld是一种网络服务,mysqld是一种数据库服务,而对于数据库来说,是一种存储数据、组织数据的一种手段,那么我们肯定就是要学数据库是如何操作的?对于数据库我们应该如何增删查改?删除了如何备份等问题。
_lazy
2024/10/23
1030
初识MySQL · 库的操作
全面解析MySQL数据库与表的操作:从创建到备份恢复,掌握所有技巧
当然我们也可以创建我们想要指定创建的相关的字符集以及校验规则的数据库 创建一个叫db2的数据库,设置的字符集为utf8
用户11286421
2025/03/16
1650
全面解析MySQL数据库与表的操作:从创建到备份恢复,掌握所有技巧
MySQL库操作、表操作
实例操作: 创建一个database1的数据库: 指令:create database database1;
南桥
2024/07/26
2150
MySQL库操作、表操作
【MySQL】库的操作
MySQL是一个数据库管理系统,在其中我们可以创建许多的数据库,数据库中中又可以存储许多的表。 如下图所示:
Yui_
2025/04/18
820
【MySQL】库的操作
【MySql】数据库的增删改查
当我们创建数据没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则:utf_general_ci;
平凡的人1
2023/10/15
5100
【MySql】数据库的增删改查
【MySQL】库和表的操作
数据库校验集  --  支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
青衫哥
2023/10/17
2670
【MySQL】库和表的操作
【MySQL篇】高效管理MySQL:数据库操作与优化的终极指南
本篇博客将带你一步步探索MySQL数据库的操作技巧,涵盖从数据库创建、表结构设计到数据查询、更新及优化的各个方面。无论你是初学者还是有一定经验的开发者,本文都将为你提供实用的技巧和深入的见解,让你能够在日常工作中游刃有余地管理和操作MySQL数据库。准备好一起开启MySQL的探索之旅了吗?让我们从基础开始,逐步深入,掌握真正的MySQL操作技巧!
熬夜学编程的小王
2025/04/05
2040
【MySQL篇】高效管理MySQL:数据库操作与优化的终极指南
【MySQL】数据库操作指南:轻松驾驭数据世界
我们已经查看查看完数据库,接下来创建自己没有的数据库,比如创建一个名为test1和test2的数据库:
喜欢做梦
2025/02/18
1230
【MySQL】数据库操作指南:轻松驾驭数据世界
【MySQL】从零开始:掌握MySQL数据库的核心概念
风中的云彩
2025/03/18
1180
【MySQL】从零开始:掌握MySQL数据库的核心概念
【MySQL】库和表的操作
在创建数据库的时候后面可以跟上选项,采用我们指定的字符集和校验规则,但是如果不加选项就会使用配置文件中默认的字符集和校验规则。
用户11305458
2025/03/12
1330
【MySQL】库和表的操作
库的操作(MySQL)
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci
ljw695
2024/11/21
1090
【MySQL基础篇】二、数据库的操作
​ 接下来学的数据库的操作以及表的结构操作,都是属于我们之前讲的 DDL 也就是数据定义语言,它负责的是对结构的管理,而不是对数据内容的管理!
利刃大大
2025/05/21
920
【MySQL基础篇】二、数据库的操作
MySQL库的操作
创建一个数据库Test1,校验规则使用utf8_ general_ ci[不区分大小写]:
二肥是只大懒蓝猫
2023/10/13
2250
MySQL库的操作
MySQL数据库介绍及基础操作
2.SQL语言的分类: DDL数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter DML数据操纵语言,用来对数据进行操作 代表指令: insert,delete,update DML中又单独分了一个DQL,数据查询语言,代表指令: select DCL数据控制语言,主要负责权限管理和事务
用户11305962
2024/10/09
1320
MySQL数据库介绍及基础操作
【MySQL】数据库基础&&库/表的操作&&数据类型详解
为解决上述问题,专家们设计出更加利于管理数据的东西-数据库,能更加有效的管理数据,数据库的水平是衡量一个程序员水平的重要指标
用户10925563
2025/02/16
1240
【MySQL】数据库基础&&库/表的操作&&数据类型详解
【MySQL】003. MySQL操作库
💦创建数据库的本质就是在/var/lib/mysql/路径下创建一个目录 删除数据库
_孙同学
2025/04/17
710
【MySQL】003. MySQL操作库
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
[ ] 中的关键字可以选择不加,IF NOT EXISTS 的意思是如果不存在才创建 数据库
北 海
2023/11/15
2220
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
从零开始学Mysql - 字符集和编码(上)
从零开始学Mysql - 字符集和编码(上) 前言 上一节我们系统的阐述了关于系统配置的相关细节内容,而这一节我们需要了解关于字符集和编码的内容,字符集和编码的规则其实也算是入门mysql经常遇到的
阿东
2021/12/08
8360
从零开始学Mysql - 字符集和编码(上)
相关推荐
数据之舞——在MySQL中奏响数据库操作的乐章
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验