【MySQL]】数据库操作指南之数据库的基础操作

在这里插入图片描述

🌱博客主页:青竹雾色间
🌱系列专栏:MySQL探险日记
😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
在这里插入图片描述
✨人生如寄,多忧何为 ✨


文章目录

  • 1. 创建数据库
  • 2.数据库的编码集与校验集
    • 2.1 编码集 (Character Set)
  • 2.2 校验集 (Check Sum)
  • 3. 字符集和校验规则
  • 4. 操纵数据库
    • 4.1查看数据库
    • 4.2修改数据库
    • 4.3数据库删除
  • 5. 备份和恢复
    • 5.1 备份
    • 5.2 还原
  • 6. 查看连接情况

MySQL是最流行的开源关系型数据库管理系统,被广泛应用于Web开发中。在使用MySQL时,了解如何创建、操纵和维护数据库是至关重要的。本篇博客将带您深入了解MySQL数据库的基础操作,包括创建数据库、字符集和校验规则、操纵数据库以及备份和恢复数据库。


1. 创建数据库

在MySQL中,创建数据库是开始的第一步。下面是创建数据库的基本语法:

CREATE DATABASE [IF NOT EXISTS] db_name ;

其中,create_specification 可以包括字符集和校验规则。下面是创建数据库的示例:

示例:

  • 创建名为 db1 的数据库,系统默认使用字符集 utf8 和校验规则 utf8_general_ci:
CREATE DATABASE db1;
  • 创建一个使用 utf8 字符集的 db2 数据库:
CREATE DATABASE db2 CHARACTER SET utf8;
  • 创建一个使用 utf8 字符集,并带校对规则的 db3 数据库:
CREATE DATABASE db3 CHARACTER SET utf8 COLLATE utf8_general_ci;

2.数据库的编码集与校验集

在数据库中,编码集` 通常指的是数据的字符编码方式,
而 “校验集” 则是指校验和或校验码,用于验证数据的完整性。


2.1 编码集 (Character Set)

数据库中的编码集是指用于存储和处理数据的字符编码方式。常见的数据库编码集包括:

  1. UTF-8:一种针对Unicode的可变长度字符编码,它可以使用一个字节对常用的英文字母进行编码,而对于其他字符则需要使用更多的字节。

  2. UTF-16:一种针对Unicode的字符编码方案,它使用两个字节编码大部分常用字符,但是在处理不常用字符时可能需要使用四个字节。

  3. UTF-32:一种固定长度的Unicode字符编码,每个字符使用4个字节。

  4. ISO-8859-1:也称为Latin-1,是ISO制定的单字节字符编码,涵盖了大部分西欧语言的字符。

  5. GBK:GBK是汉字内码扩展规范的简称,是在GB2312编码的基础上对汉字进行了扩展,包含了繁体汉字及一些生僻字。

  6. GB2312:GB2312是中国国家标准简体中文字符集,包含了6,763个汉字和682个非汉字字符。

  7. Big5:Big5是台湾和香港地区的常用字符编码集,用于繁体中文。

2.2 校验集 (Check Sum)

数据库中的校验集是指用于验证数据完整性的校验和或校验码。常见的校验集包括:

  1. MD5 (Message Digest Algorithm 5):MD5是一种广泛使用的哈希函数,常用于确保数据完整性。

  2. SHA-1 (Secure Hash Algorithm 1):SHA-1是一种安全的哈希算法,通常用于数字签名和数据完整性验证。

  3. SHA-256:SHA-256是SHA-2家族中的一员,具有更高的安全性,适合用于数字签名、证书认证、TLS和IPsec等安全协议中。

  4. CRC32 (Cyclic Redundancy Check):CRC32是一种循环冗余校验,通常用于验证数据传输的完整性。

这些校验方法都可以用于在存储和传输数据时验证数据的完整性。对于大多数数据库管理系统,可以通过内置函数或外部库来计算这些校验和或校验码。

3. 字符集和校验规则

  • 查看系统默认字符集以及校验规则
-- 查看数据库的字符编码
SHOW VARIABLES LIKE 'character_set_database';

-- 查看数据库的校对集
SHOW VARIABLES LIKE 'collation_database';
  • 查看数据库支持的字符集
SHOW CHARSET;
  • 查看数据库支持的字符集校验规则
SHOW COLLATION;
  • 校验规则对数据库的影响

不区分大小写:

  • 创建一个数据库,校验规则使用 utf8_general_ci[不区分大小写]
CREATE DATABASE test1 COLLATE utf8_general_ci;
USE test1;
CREATE TABLE person (name VARCHAR(20));
INSERT INTO person VALUES ('a'), ('A'), ('b'), ('B');

区分大小写:

  • 创建一个数据库,校验规则使用 utf8_bin[区分大小写]
CREATE DATABASE test2 COLLATE utf8_bin;
USE test2;
CREATE TABLE person (name VARCHAR(20));
INSERT INTO person VALUES ('a'), ('A'), ('b'), ('B');
  • 查询不区分大小写的查询以及结果:
USE test1;
SELECT * FROM person WHERE name='a';
  • 查询区分大小写的查询以及结果:
USE test2;
SELECT * FROM person WHERE name='a';

4. 操纵数据库

4.1查看数据库

SHOW DATABASES;
SHOW CREATE DATABASE 数据库名;

示例:

USE test2;
SELECT * FROM person WHERE name='a';

USE test1;
SELECT * FROM person ORDER BY name;

USE test2;
SELECT * FROM person ORDER BY name;

4.2修改数据库

ALTER DATABASE db_name CHARACTER SET charset_name COLLATE collation_name

示例: 将 mytest 数据库字符集改成 gbk

ALTER DATABASE mytest CHARSET=gbk;

4.3数据库删除

DROP DATABASE [IF EXISTS] db_name;

示例: 删除 mytest 数据库

SHOW CREATE DATABASE mytest;
DROP DATABASE mytest;

5. 备份和恢复

5.1 备份

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

示例: 将 mytest 库备份到文件(退出连接)

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

5.2 还原

mysql> source 备份路径下的sql文件;
  • 注意事项

如果备份的不是整个数据库,而是其中的一张表,可以使用如下命令进行备份:

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库:

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

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

6. 查看连接情况

SHOW PROCESSLIST;

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


在这里插入图片描述

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

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

相关文章

嵌入式Python基础1-2

嵌入式Python基础1-2 条件语句 if elif else 随机数random eval while循环 for循环 水仙花数 循环else list 列表常用方法 增删改查 加排序 append remove pop index() 升序sort()降序 sort(reverseTrue) 反转 reverse()…

ESP32开发

1、简介 1.1 种类 WIFI模块在PC上做为客户端、服务器,在STM32上做服务器的通讯。在物联网应用开发有重要作用,种类居多,如下图 红色方框的esp8266-01s型号的无限wifi模块就是本章学习的主要对象。 1.2 特点 小巧的尺寸:ESP-01…

SpanBert学习

SpanBERT: Improving Pre-training by Representing and Predicting Spans 核心点 提出了更好的 Span Mask 方案,也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好;通过加入 Span Boundary Objective (SBO) 训练目标,增强了 BERT 的性…

python自动生成SQL语句自动化

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python自动生成SQL语句自动化 在数据处理和管理中,SQL(Structured …

WAF防范原理

目录 一、什么是WAF 二、纵深安全防御 WAF的组网模式 WAF配置全景 WAF端 服务器 攻击端 拦截SQL注入,XSS攻击,木马文件上传 要求: 使用WAF,通过配置策略要求能防御常见的web漏洞攻击(要求至少能够防御SQL、XSS、文…

毕业设计注意事项

1.开题 根据学院发的开题报告模板完成,其中大纲部分可参考资料 2.毕设 根据资料中的毕设评价标准,对照工作量 3.论文 3.1 格式问题 非常重要,认真对比资料中我发的模板,格式有问题,答辩输一半! 以word…

wireshark RTP分析参数

主要看丢弃和Delta, 丢弃就是丢掉的udp包,所占的比率 Delta是当前udp包接收到的时间减去上一个udp包接收到的时间 根据载荷可以知道正确的delta应该是多少,比如G711A,ptime20,那么delta理论上应该趋近于20. 这里的de…

C++面向对象程序设计 - 运算符重载

函数重载就是对一个已有的函数赋予新的含义,使之实现新的功能。因此一个函数名就可以用来代表不同功能的函数,也就是一名多用。运算符也可以重载,即运算符重载(operator overloading)。 一、运算符重载的方法 运算符重…

# IDEA2019 如何打开 Run Dashboard 运行仪表面板

IDEA2019 如何打开 Run Dashboard 运行仪表面板 段子手168 1、依次点击 IDEA 上面工具栏 —> 【View】 视图。 —> 【Tool Windows】 工具。 —> 【Run Dashboard】 运行仪表面板。 2、如果 【Tool Windows 】工具包 没有 【Run Dashboard】 运行仪表面板 项 依次…

【好书推荐7】《机器学习平台架构实战》

【好书推荐7】《机器学习平台架构实战》 写在最前面《机器学习平台架构实战》编辑推荐内容简介作者简介目  录前  言本书读者内容介绍充分利用本书下载示例代码文件下载彩色图像本书约定 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光&…

STM32系统参数和结构

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 基本参数 2. 片上资源(外设) 3. STM32系列命名规则 4. 系统结构 5. 引脚定义 6. 启动配置 7. 最小系统电路 8. 型号分类和缩写 1. 基本参数 STM32F103C8T6 系列&#…

达梦(DM)数据库表索引

达梦DM数据库表索引 表索引索引准则其他准则 创建索引显式地创建索引其他创建索引语句 使用索引重建索引删除索引 表索引 达梦数据库表索引相关内容比较多,常用的可能也就固定的一些,这里主要说一下常用的索引,从物理存储角度进行分类&#…

B008-方法参数传递可变参数工具类

目录 方法参数传递可变参数冒泡排序Arrays工具类Arrays工具类常用方法 方法参数传递 /*** java中只有值传递* 基本数据类型 传递的是具体的值* 引用数据类型 传递的是地址值*/ public class _01_ParamPass {public static void main(String[] args) {// 调用方法 getSumge…

网络变压器在网络分析仪上能通过测试,装上设备后网速达不到呢?

Hqst华轩盛(石门盈盛)电子导读:今天和大家一起探讨网络变压器在网络分析仪上能通过测试,装上设备后网通设备网速达不到的可能原因及其处理方式 一、出现这种情况可能有以下原因: 1.1. 设备兼容性问题:设备其它元器件与 网络…

Docker容器化技术:概述与安装

目录 一、云基础知识 1、常见的云服务厂商 2、云计算服务模式三种层次 3、什么是虚拟化 4、什么是虚拟机 5、虚拟化产品 5.1 仿真虚拟化产品 5.2 半虚拟化产品 5.3 全虚拟化产品 6、虚拟机架构 6.1 寄居架构 6.2 源生架构 二、认识容器 1、容器的概述 2、容器的…

【Netty】ByteBuf与拆包粘包

ByteBuf 在介绍ByteBuf之前先来一套基础的代码来演示ByteBuf的使用。 package blossom.project.netty;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled;import java.nio.charset.StandardCharsets;/*** author: ZhangBlossom* date: 2023/12/14 13:37* con…

web学习

day02-01 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>js快速引入</title> <!-- 内部脚本--> <!-- <script>--> <!-- alert(Hello JS)--> <!-- <…

【linux】匿名管道|进程池

1.进程为什么要通信&#xff1f; 进程也是需要某种协同的&#xff0c;所以如何协同的前提条件(通信) 通信数据的类别&#xff1a; 1.通知就绪的 2.单纯的数据 3.控制相关的信息 2.进程如何通信&#xff1f; 进程间通信&#xff0c;成本会高一点 进程间通信的前提&#xff0c;先…

制氢机远程监控运维方案

制氢机远程监控运维方案 在当今能源转型的大背景下&#xff0c;氢能作为清洁、高效且可再生的能源载体&#xff0c;其重要性日益凸显。而制氢机作为氢能产业链中的关键设备&#xff0c;其稳定运行与高效运维对于保障氢气供应、推动氢能产业健康发展至关重要。在此背景下&#…

动态规划——切割钢条问题

一、动态规划 动态规划算法通常用于解决最优化问题&#xff08;寻求最优解&#xff09;。其思想与分治法类似&#xff0c;将待求解的问题分成若干个子问题&#xff0c;先求出子问题&#xff0c;再根据子问题的解求出原来问题中的解&#xff0c;与分支法不同的是&#xff0c;在动…