[MySQL]MySQL库的操作

[MySQL]MySQL库的操作

文章目录

  • [MySQL]MySQL库的操作
    • 1. 创建数据库
    • 2. 字符集和校验规则
      • 2.1. 基本概念
      • 2.2. 查看系统默认字符集以及校验规则
      • 2.3. 查看数据库支持的字符集
      • 2.4 查看数据库支持的校验规则
      • 2.5 指明字符集和校验规则创建数据库
      • 2.6 校验规则对数据库的影响
    • 3. 删除数据库
    • 4. 查看数据库
      • 4.1 查看数据库
      • 4.2 显示创建语句
      • 4.3 查看当前所处数据库
    • 5. 使用数据库
    • 6. 修改数据库
    • 7. 备份和恢复
      • 7.1 备份
      • 7.2 还原
    • 8. 查看连接情况
    • 9. 关于数据库操作

1. 创建数据库

语法:

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: 指定数据库字符集的校验规则

创建数据库示例:

image-20230702152839567

创建名为database1的数据库:

image-20230702153332360

使用if not exits和不使用的区别:

image-20230702153837161

2. 字符集和校验规则

2.1. 基本概念

创建数据库时,有两个编码集:

  1. 数据库编码集 – 数据库存储数据采用的编码
  2. 数据库校验集 – 读取数据库中数据采用的编码 (支持数据库进行字段比较使用的编码)

数据库的存储本质是以二进制形式存储,只有使用相匹配的编码方式解析数据才能正确地读取数据,而不是读取乱码。数据库无论对数据作何操作,都必须保证编码一致。

2.2. 查看系统默认字符集以及校验规则

语法:

show variables like 'character_set_database';   #查看系统默认字符集
show variables like 'collation_database';		#查看系统默认校验规则

说明:如果在使用SQL语句创建数据库指定了编码格式,数据库采用指定的编码格式,

如果没在创建数据库指定编码格式,数据库采用系统默认的编码格式。

笔者在配置文件中设置了编码格式为utf-8,因此默认采用都是utf-8格式。

查看系统默认字符集以及校验规则示例:

image-20230702161110734

2.3. 查看数据库支持的字符集

查看指令:

show charset;

查看数据库支持的字符集示例:

数据库支持的字符集都是可以使用的,需要时可以采用。

2.4 查看数据库支持的校验规则

查看指令:

show collation;

查看数据库支持的校验规则示例:

image-20230702162110399

2.5 指明字符集和校验规则创建数据库

在创建数据库时,会默认创建一个文件记录字符集以及校验规则。

image-20230702164909002

方式1:

create database d2 charset=utf8;

image-20230702170216429

方式2:

create database d3 character set utf8;

image-20230702170402835

方式3:

create database d4 charset=utf8 collate utf8_general_ci;

image-20230702170515717

说明:在使用指定字符集和校验规则的创建方式时可以借助数据库的字符集表和校验规则表。

image-20230702170926671

image-20230702171046908

2.6 校验规则对数据库的影响

为了说明校验规则对数据库的影响,采用如下示例,创建两个数据库test1,test2,字符集相同为utf8,test1的校验规则为utf8_general_ci[不区分大小写],test2的校验规则为utf8_bin[区分大小写],插入相同的数据,对其进行数据读取。

image-20230702185932219

采用相同的对比条件读取数据:

image-20230702190441264

对数据库进行排序:

image-20230702190712765

3. 删除数据库

语法:

DROP DATABASE [IF EXISTS] db_ name;

删除数据库示例:

image-20230702193011261

执行删除之后的结果:

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

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

4. 查看数据库

4.1 查看数据库

语法:

show databases;

image-20230702193115915

4.2 显示创建语句

语法:

show create database db_name;

显示创建语句示例:

image-20230702194827755

说明:

  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

4.3 查看当前所处数据库

语法:

select database();

查看当前所处数据库示例:

image-20230702193623006

5. 使用数据库

语法:

use db_name;

使用数据库后,便可以对该数据库内的数据(表)进行各种操作。

使用数据库示例:

image-20230702193632334

6. 修改数据库

语法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

修改数据库示例:

image-20230702194603525

7. 备份和恢复

7.1 备份

语法:

# mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名 > 数据库备份存储的文件路径

备份示例:

image-20230702202507415

打开备份文件可以发现,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

备份多个数据库中的表:

# mysqldump -u 用户名 -p 密码 数据库名 表名1 表名2 > 数据库备份存储的文件路径

备份多个数据库:

# mysqldump -u 用户名 -p 密码 -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。(实际上就是备份文件中没有备份创建数据库操作)

7.2 还原

mysql> source 备份文件路径;

还原示例:

image-20230702203634377

image-20230702203705564

8. 查看连接情况

语法:

show processlist;

查看连接情况示例:

image-20230702203943423

9. 关于数据库操作

数据库操作中最常见用的就是创建数据库的操作,因为对数据库修改和删除是会对后续操作产生影响的,数据库寻找数据依赖于数据名,数据库校验数据于校验规则,修改数据库的名字和校验规则会导致程序错误,删除数据库会将数据库的内容一并删除,可能造成数据缺失。

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

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

相关文章

我爱学QT-制作一个最简单的QT界面

1.qt基础 qt的移植性非常强,一套代码不用我们改太多,直接通用所有平台。不久的将来,qt会被用到MCU上,学习QT还是非常有意义的。 2.做一个简单的QT界面 首先新建工程 注意这个不一样 工程文件分析: #--------------…

【优选算法】—— 双指针问题

从今天开始,整个暑假期间。我将不定期给大家带来有关各种算法的题目,帮助大家攻克面试过程中可能会遇到的算法这一道难关。 目录 (一) 基本概念 (二)题目讲解 1、难度:easy 1️⃣移动零 2️…

nginx的优化

目录 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 二 nginx的优化之日志分割 三 nginx的优化之页面压缩 四 连接超时 五 nginx的并发设置 七总结:nginx的优化 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 如图所示 第一种方法是关…

数据结构与算法——数据结构有哪些,常用数据结构详解

数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?下面将对数据结构的学习内容做一个简要的总结。 数据结构大致包含以下几种存储结构: 线性表,还可细分为顺序表、链表、栈和队列;树结…

C# 依赖倒置原则(DIP)

目录 一,引子 1.1 传统的程序架构 1.2 依赖倒置 1.3 依赖倒置的作用 二,依赖注入 一,引子 1.1 传统的程序架构 在程序执行过程中,传统的程序架构如图: 可以看到,在传统的三层架构中,层与…

CRC Principle and Implementation Method(Java C)

CRC原理和程序实现方法1_哔哩哔哩_bilibili 其实原理很简单 但是我想了两个小时。。 收获的是原来一些复杂的运算都可以通过位运算来实现。 实现思路 public class CRC16Calculator {public static String CRC16(byte[] bytes) {int CRC 0x0000ffff;int POLYNOMIAL 0x0000a…

sklearn.preprocessing模块介绍

数据预处理 Binarizer: 二值化 用于将数值特征二值化。它将特征值与给定的阈值进行比较,并将特征值转换为布尔值(0 或 1),取决于特征值是否超过阈值 Binarizer(*, threshold0.0, copyTrue)参数: threshold&#xf…

day1-二分查找

二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解…

Redis实战案例14-分布式锁的基本原理、不同实现方法对比以及基于Redis进行实现思路

1. 分布式锁基本原理 基于数据库的分布式锁:这种方式使用数据库的特性来实现分布式锁。具体流程如下: 获取锁:当一个节点需要获得锁时,它尝试在数据库中插入一个特定的唯一键值(如唯一约束的主键)&#xff…

优化chatGPT提示词的Prompts

你扮演一个专业的chatGPT提示词工程师,我将为您提供我的提示词,它用三个反引号分隔,请根据openai发布的提示词标准和优化技巧,改进和优化我的提示词,让chatGPT能够更好的理解。 我的第一个提示词是:“”“……

【Java基础】CAS (Compare And Swap) 操作

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、使用场景四、原理五、优劣5.1 缺点&#xff1…

git merge 与 git rebase 的区别

文章目录 前言1、使用 merge2、使用 rebase总结 前言 首先我们要清楚,git merge 与 git rebase 处理的问题是一样的,这两个命令都用于把一个分支的变更整合进另一个分支,只不过他们达成同样目的的方式不同。 刚开始,已经存在一…