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

【MySQL基础篇】二、数据库的操作

作者头像
利刃大大
发布于 2025-05-21 03:29:14
发布于 2025-05-21 03:29:14
9300
代码可运行
举报
文章被收录于专栏:csdn文章搬运csdn文章搬运
运行总次数:0
代码可运行

前言

​ 接下来学的数据库的操作以及表的结构操作,都是属于我们之前讲的 DDL 也就是数据定义语言,它负责的是对结构的管理,而不是对数据内容的管理!

Ⅰ. 创建数据库

1、语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database [if not exists] db_name [create_specification, create_specification, ...]

其中create_specification为:
[default] character set charset_name
[default] collate collation_name
  • 选项说明:
    • 大写的表示关键字(用小写也是可以的,但是建议用大写区分开,因为个人习惯,这里的关键字包括后面统一使用小写
    • 方括号内的是可选项:
      • CHARACTER SET:指定数据库采用的字符集,相当于 数据写入数据库时的格式
      • COLLATE:指定数据库字符集的校验规则,相当于 读取数据库数据时的格式
  • 当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci

2、举例

创建名为 d1 的数据库:

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db2 character set utf8;
或者
create database db2 charset=utf8;

创建一个使用 utf8 字符集,并带对应校验规则的 db3 数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db3 character set utf8 collate utf8_general_ci;
或者
create database db3 character=utf8 collate utf8_general_ci;

​ 因为上面的例子中我们设的字符集和校验规则都是和默认配置中的是一样的,所以看不出来什么效果,下面我们在讲字符集和校验规则的时候会举一点不同的例子!

Ⅱ. 字符集和校验规则

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

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

​ 其实我们是可以使用 匹配符 % 来看看其它部件设定的字符集以及校验规则:

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

​ 字符集主要是控制用什么语言,比如 utf8 就可以使用中文。

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

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

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

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

​ 我们还是要看看校验规则的不同,会有什么样子的效果,下面我们用两个不同校验规则的数据库来做测试!

​ 首先我们创建两个字符集相同,但是校验规则不同的数据库:

不区分大小写

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db1 charset=utf8 collate utf8_general_ci;
use db1;

创建一个表:

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

插入几组对应的大小写字母:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

区分大小写

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db2 charset=utf8 collate utf8_bin;
use db1;

创建一个表:

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

插入几组对应的大小写字母:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

​ 然后下面我们分别对两个数据库特定的字符进行查询和排序:

查询

不区分大小写的查询以及结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> use db1;
Database changed
mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
| A    |
+------+
2 rows in set (0.00 sec)

区分大小写的查询以及结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> use db2;
Database changed
mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
+------+
1 row in set (0.00 sec)

可以看到,不区分大小写的校验规则,查询结果是 aA,因为它们是一样的!而对于区分大小写的校验规则,查询结果就是唯一的 a

排序

不区分大小写排序以及结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> use db1;
Database changed
mysql> select * from person order by name;
+------+
| name |
+------+
| a    |
| A    |
| b    |
| B    |
+------+
4 rows in set (0.00 sec)

区分大小写排序以及结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> use db2;
Database changed
mysql> select * from person order by name;
+------+
| name |
+------+
| A    |
| B    |
| a    |
| b    |
+------+
4 rows in set (0.00 sec)

可以看到,不区分大小写的话,aA 是排在一起的,并且是不关 ASCII 值大小的,但是总体会比 bB 小;对于区分大小写来说,就是按照 ASCII 值来排序的!

​ 最后总结一句话,一般我们都是在配置文件中写好默认的字符集和校验规则,并且直接创建数据库即可,很少需要手动去设置其它的编码规则!

Ⅲ. 操作数据库

1、查看数据库

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

2、显示创建语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show create database db_name;
  • 说明:
    • MySQL 建议我们关键字使用大写,但是不是必须的。
    • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
    • /*!40100 default.... */ 这个不是注释,表示当前 mysql 版本大于 4.01 版本,就执行这句语句!

3、使用数据库

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

​ 有时候可能我们使用时间长了,不知道当前在使用那个数据库,那么我们可以调用一个 database() 函数,如下所示:

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

4、删除数据库

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

执行删除之后的结果:

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

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

5、修改数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database db_name [alter_spacification, alter_spacification, ...]

其中alter_spacification:
[default] character set charset_name
[DEFAULT] collate collation_name
  • 说明:
    • 对数据库的修改主要指的是修改数据库的字符集,校验规则

​ 举个例子,将 db1 数据库字符集改成 gbk

6、查看连接情况

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

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

7、备份和恢复

1、备份

​ 语法如下所示:

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

​ 举个例子,将之前的 db1 数据库备份到文件(退出连接):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-8-7-centos ~]# pwd
/root
[root@VM-8-7-centos ~]# mysqldump -P3306 -uroot -p -B db1 > db1.sql
[root@VM-8-7-centos ~]# ls
db1.sql

​ 这时,可以打开看看 db1.sql 文件里的内容,其实它把我们整个创建数据库,建表,导入数据的语句都装载这个文件中,这样子是为了在恢复数据库的时候的操作!

2、恢复

​ 语法如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source 数据库备份存储的文件路径;

注意这是在数据库中的操作!

​ 下面我们将 db 数据库进行恢复:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| README_TO_RECOVER_A |
| mysql               |
| performance_schema  |
| sys                 |
+---------------------+
5 rows in set (0.00 sec)

mysql> source /root/db.sql;				#进行恢复
Query OK, 0 rows affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
……
……

mysql> show databases;		#查看数据库,多了db
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| README_TO_RECOVER_A |
| db                  |
| mysql               |
| performance_schema  |
| sys                 |
+---------------------+
6 rows in set (0.00 sec)

mysql> use db;
Database changed
mysql> select * from person;	#原来的数据都还在
+------+
| name |
+------+
| a    |
| A    |
| b    |
| B    |
+------+
4 rows in set (0.00 sec)
💥注意事项

如果备份的不是整个数据库,而是其中的一张表的话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqldump -u root -p 数据库名 表名1 表名2 > 数据库备份存储的文件路径(一般备份为.sql文件)

同时备份多个数据库:

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
WiFi技术概述:WiFi那些事
WLAN是无线局域网络的简称,全称为Wireless Local Area Networks,是一种利用无线技术进行数据传输的系统,该技术的出现能够弥补有线局域网络之不足,以达到网络延伸之目的。 Wi-Fi是无线保真的缩写,英文全称为Wireless Fidelity,在无线局域网才对范畴是指“无线兼容性认证”,实质上是一种商业认证,同时也是一种无线联网技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。同蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已经广泛应用于笔记本、手机、汽车等广大领域中。 WIFI是无线局域网联盟的一个商标,该商标仅保障使用该商标的商品互相之间可以合作,与标准本身实际上没有关系,但因为WIFI 主要采用802.11b协议,因此人们逐渐习惯用WIFI来称呼802.11b协议。从包含关系上来说,WIFI是WLAN的一个标准,WIFI包含于WLAN中,属于采用WLAN协议中的一项新技术。 在WiFi使用之初,在安全性方面非常脆弱,很容易被别有用心的人截取数据包,所以在安全方面成了政府和商业用户使用WLAN的一大隐患。WAP(无线应用协议)是由我国制定的无线局域网中的安全协议,它采用国家密码管理委员会办公室批准的公开密钥体制的椭圆曲线密码算法和秘密密钥体制的分组密码算法,实现了设备的身份鉴别、链路验证、访问控制和用户信息在无线传输状态下的加密保护。2009年6月15日,在国际标准组织ISO/IECJTC1/SC6会议上,WAPI国际提案首次获得包括美、英、法等10余个与会国家成员体一致同意,将以独立文本形式推进其为国际标准,目前在中国加装WAPI功能的WIFI手机等终端可入网检测并获进网许可证。
全栈程序员站长
2022/09/16
2.6K0
WLAN与WIFI的区别[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157612.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/18
1.1K0
【科普】就知道天天刷手机,知道啥是WIFI吗?
从舒服的懒人沙发到正襟危坐的办公桌,再到三五好友一起嗨的休闲场所,随时随地加入Wi-Fi已成为我们生活节奏的一部分。Wi-Fi,这个看不到也摸不着的小东西,从它问世以来,已经大大影响了我们的生活、学习和工作。桌上的网线不见了,高移动性电子设备取而代之地默默出现。作为使用者,我们真的了解这些产品么?
夏末浅笑
2019/07/01
1.1K0
【科普】就知道天天刷手机,知道啥是WIFI吗?
Wlan与WiFi[通俗易懂]
首先我们简单介绍下WLAN无线上网,其全称是:Wireless Local Area Networks,中文解释为:无线局域网络,是一种利用射频(Radio Frequency RF)技术进行据传输的系统,该技术的出现绝不是用来取代有线局域网络,而是用来弥补有线局域网络之不足,以达到网络延伸之目的,使得无线局域网络能利用 简单的存取架构让用户透过它,实现无网线、无距离限制的通畅网络。WLAN 使用 ISM (Industrial、Scientific、Medical) 无线电广播频段通信。WLAN 的 802.11a 标准使用 5 GHz 频段,支持的最大速度为 54 Mbps,而 802.11b 和 802.11g 标准使用 2.4 GHz 频段,分别支持最大 11 Mbps 和 54 Mbps 的速度。目前WLAN所包含的协议标准有:IEEE802.11b协议、IEEE802.11a协议、IEEE802.11g协议、IEEE802.11E 协议、IEEE802.11i协议、无线应用协议(WAP)。
全栈程序员站长
2022/09/08
9670
IT知识百科:IEEE 802.11——无线局域网的重要里程碑
无线局域网(Wireless Local Area Network,WLAN)已经成为现代生活中不可或缺的一部分,它为我们提供了便捷的无线网络连接,让我们能够在家中、办公室、公共场所等地轻松上网。在无线局域网技术的发展过程中,IEEE 802.11标准起到了关键作用,它不仅推动了无线通信的进步,还为我们带来了更快速、更稳定的网络连接。
网络技术联盟站
2023/09/05
1.2K0
IT知识百科:IEEE 802.11——无线局域网的重要里程碑
IT知识百科:IEEE 802.11——无线局域网的重要里程碑
无线局域网(Wireless Local Area Network,WLAN)已经成为现代生活中不可或缺的一部分,它为我们提供了便捷的无线网络连接,让我们能够在家中、办公室、公共场所等地轻松上网。在无线局域网技术的发展过程中,IEEE 802.11标准起到了关键作用,它不仅推动了无线通信的进步,还为我们带来了更快速、更稳定的网络连接。
网络技术联盟站
2023/08/03
1.1K1
IT知识百科:IEEE 802.11——无线局域网的重要里程碑
射频&天线设计-802.11初识
WLAN网络技术被广泛应用,无线网络技术从未停止发展的脚步。802.11a/b/g/n/ax都是无线网络协议的发展的细分标准,由最初的802.11标准演变而来
ElectricDeveloper
2021/08/18
1.4K0
【WiFi开发全攻略】WIFI基础知识大全
现在我们大家对Wi-Fi肯定都不陌生,无论是笔记本,手机,智能电视,都离不开Wi-Fi。目前我们一般用的都是Wi-Fi5,Wi-Fi6也正在快速普及。
董哥聊技术
2024/03/04
4470
【WiFi开发全攻略】WIFI基础知识大全
一文搞懂WiFi 6/7 以及选择路由器改造网络那些事
Wi-Fi 6(原称:IEEE 802.11.ax)即第六代无线网络技术,是Wi-Fi标准的名称。是Wi-Fi联盟创建于IEEE 802.11标准的无线局域网技术。Wi-Fi 6将允许与多达8个设备通信,最高速率可达9.6Gbps。第1版发布时间为:2019年9月16日,第2版发布于2022年1月,Wi-Fi 6第2版标准(Wi-Fi 6 Release 2)改进了上行链路以及所有支持频段(2.4GHz、5GHz和6GHz)的电源管理,适用于家庭和工作场所的路由器和设备以及智能家居IoT设备。
Lcry
2022/11/29
6.7K0
一文搞懂WiFi 6/7 以及选择路由器改造网络那些事
Wi-Fi 7:超越速度的下一代互联网连接
当今数字时代,互联网已成为人们生活和工作中不可或缺的一部分。而无线网络技术是实现互联网连接的重要手段之一。随着人们对无线网络速度、容量和效率的需求不断增长,WiFi技术也在不断演进。最近,第七代WiFi无线网络技术——WiFi 7 (IEEE 802.11be) 正式发布,引起了广泛关注。WiFi 7是继WiFi 6之后的一次重大升级,它集合了WiFi 6/6E的所有优势,并引入了多项革命性的功能,如多链路操作、多资源单元 (RU) 和打孔。WiFi 7的推出将进一步提高网络速度、容量和效率,为用户带来更加出色的网络体验。本文将深入探讨WiFi 7的特点和优势,为您带来全面的了解。
网络技术联盟站
2023/09/29
1.1K0
Wi-Fi 7:超越速度的下一代互联网连接
科普!WLAN定义、基本架构、射频、信道和标准协议
关于WLAN,相信大家对它早已不陌生了。几乎每天我们都能体验到WLAN给我们的生活带来的高效和便捷。在家里,通过无线路由器,我们不必再端端正正的坐在电脑旁,可以坐在沙发上,躺在床上,甚至可以坐在马桶上收发邮件,在线欣赏欧美大片,尽情享受摆脱有线束缚带来的自由。在候车室,手捧笔记本和Pad的人们正逐渐代替手捧报纸和杂志的人们。走进咖啡厅,越来越多的人第一件事不是点餐,而是询问咖啡厅无线网络的密码……。
网络工程师笔记
2021/05/17
2.5K0
科普!WLAN定义、基本架构、射频、信道和标准协议
【真机实战】企业级无线路由器设置中的无线网络模式是什么?如何设置?
最近公司无线网络有点卡,最后换了个路由器,选择了H3C的GR-1800AX千兆路由器,在设置无线网的时候,看到了无线网络模式:
网络技术联盟站
2023/09/28
4.2K0
【真机实战】企业级无线路由器设置中的无线网络模式是什么?如何设置?
WiFi 的起源、发展、信道划分及网络结构解析
Wi-Fi 的发源地是夏威夷,Wi-Fi 是一种无线局域网协议。而对于网络协议中的多址接入协议的历史可以追述到 1971 年的 ALOHAnet,按照 WiKi 的记录,ALOHAnet 是一个在夏威夷大学开发的一个无线网络,为什么要构建这个无线网络,是因为夏威夷岛屿之间不易布置有线链路,如果布置的话,其成本也会很高。所以当时就采用了一种相对成本比较低廉的无线设备,构造一个以 Oahu 岛为中心和其他夏威夷岛屿通信的无线链路。这也就是 Wi-Fi 最开始的雏形。
wenzid
2020/11/15
3.7K0
WLAN基本知识之802.11标准「建议收藏」
802.11n突破了原有WiFi标准带宽的瓶颈,它在802.11n基础上,增加了空间流数从4到8,信道从40Mhz增加至160Mhz,更定义了MU-MIMO技术,支持下行多用户并行传输。
全栈程序员站长
2022/09/08
3.7K0
WLAN基本知识之802.11标准「建议收藏」
WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
不管是802.11b/g还是802.11a/b/g/n/ac一般都支持13个信道。它们的中心频率虽然不同,但是因为都占据一定的频率范围,所以会有一些相互重叠的情况。了解这13个信道所处的频段,有助于我们理解人们经常说的三个不互相重叠的信道含义。
用户7557625
2020/07/15
80.9K1
WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
【物联网】WiFi基础知识
目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完全取代以太网,但是它正拥有越来越多的用户,无线网络中最有前景的是Wifi。本文介绍无线网络相关内容。
杨源鑫
2020/05/21
1.4K0
关于无线网络 (一)
每张网卡都有自己全球唯一的地址(MAC地址,12字节),正常情况下网卡只接收发送给自己的数据包(数据包前12字节就是数据包的目标MAC地址),及广播地址(MAC地址为12个F)。
KurtNiu
2019/02/25
2.4K0
无线网络基础:802.11协议、信道干扰与加密方式
802.11 是 IEEE 制定的一组无线局域网(WLAN)通信标准,其中包含多个版本,不断演进升级。
神的孩子都在歌唱
2025/04/13
1790
无线网络基础:802.11协议、信道干扰与加密方式
网络工程师-网线、WiFi、路由器的介绍选择
一类线、二类线、三类线、四类线、五类线、超五类线、六类线、超六类线、七类线、八类线。
网络技术联盟站
2021/01/12
1.3K0
WiFi测试规范总结
当移植好一款wifi模块后,需要到检测机构去检测各项指标,取得相关认证,这时有必要了解下WiFi测试的相关测试内容。
全栈程序员站长
2022/09/13
2.8K0
WiFi测试规范总结
推荐阅读
相关推荐
WiFi技术概述:WiFi那些事
更多 >
LV.6
海固科技Java工程师
目录
  • 前言
  • Ⅰ. 创建数据库
    • 1、语法
    • 2、举例
  • Ⅱ. 字符集和校验规则
    • 1、查看系统默认字符集以及校验规则
    • 2、查看数据库支持的字符集
    • 3、查看数据库支持的字符集校验规则
    • 4、校验规则对数据库的影响
  • Ⅲ. 操作数据库
    • 1、查看数据库
    • 2、显示创建语句
    • 3、使用数据库
    • 4、删除数据库
    • 5、修改数据库
    • 6、查看连接情况
    • 7、备份和恢复
      • 1、备份
      • 2、恢复
      • 💥注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档