【MySQL系列】MySQL库的学习及基本操作(增删查改)

「前言」文章内容大致是数据库的基本操作

「归属专栏」MySQL

「主页链接」个人主页

「笔者」枫叶先生(fy)

「枫叶先生有点文青病」「句子分享」
哪里会有人喜欢孤独,不过是不喜欢失望罢了。
——村上春树《挪威的森林》

MySQL

目录

  • 一、创建/查看数据库
  • 二、删除数据库
  • 三、数据库字符集和数据库校验规则
  • 四、校验规则对数据库的影响
  • 五、修改数据库
  • 六、数据库的备份和恢复
  • 七、查看数据库连接情况

一、创建/查看数据库

创建数据库语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]

create_specification的选项:

[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明

  • db_name是创建数据库的名字
  • 大写的表示关键字
  • [] 是可选项,可以选择不写
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

查看所有的数据库:

show databases;

在这里插入图片描述
[IF NOT EXISTS]的意思是,如果数据库存在就不创建,数据库不存在就创建。例如创建已经存在的 test数据库

create database if not exists test;
或者 create database test; // 直接创建

在这里插入图片描述
如果不存在则创建

create database if not exists test1;

在这里插入图片描述
数据库被创建本质上就是在/var/lib/mysql/下创建一个目录
在这里插入图片描述

二、删除数据库

语法:

DROP DATABASE [IF EXISTS] db_ name;
  • db_name是创建数据库的名字
  • [] 是可选项,可以选择不写

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
  • 数据库被删除本质上就是在/var/lib/mysql/下删除一个目录

注意:不要随意删除数据库,尽量是对不需要的数据库进行重命名备份即可
在这里插入图片描述

三、数据库字符集和数据库校验规则

创建名为 db1 的数据库

create database db1;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则
是:utf8_ general_ ci,即MySQL配置文件/etc/my.cnf里面设置的,如果我们自己指定字符集或校验规则,则不会使用系统默认的字符集和校验规则时。
我们自已也可以指定创建创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;
或者 create database db2 CHARACTER SET utf8

也可以带创建一个使用utf字符集,并带校对规则utf8_general_ci的 db3 数据库

create database db3 charset=utf8 collate utf8_general_ci;

什么是字符集和校验规则??

  • 字符集就是编码集,数据库用于表示和存储数据
  • 校验规则是一种用于检测和验证数据完整性的方法,数据库在比较字段的时候需要用到的编码(读取数据、比较数据)

数据库库无论对数据做任何操作,都必须保证编码格式是一致的
查看系统默认字符集(当前数据库)(MySQL配置文件/etc/my.cnf里面设置的)

show variables like 'character_set_database';

在这里插入图片描述
查看系统默认校验规则(当前数据库)

show variables like 'collation_database';

在这里插入图片描述
查看数据库支持的字符集,字符集主要是控制用什么语言。比如utf8就可以使用中文

show charset;

在这里插入图片描述
查看数据库支持的字符集校验规则
在这里插入图片描述
每一种校验规则都匹配一种字符集,比如utf8_general_ci检验规则匹配的字符集是utf8

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

不区分大小写

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

create database test1 charset=utf8 collate utf8_general_ci;

创建表插入数据

use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述
在该数据库的目录下,db.opt文件就是存放该库的编码规则

cat /var/lib/mysql/test1/db.opt

在这里插入图片描述
查看表的信息
在这里插入图片描述
查找字符 a

select * from person where name='a';

aA都被查出来了,说明检验规则utf8_general_ci不区分大小写在这里插入图片描述

区分大小写

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

create database test2 collate utf8_bin;

创建表插入数据

use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述
在该数据库的目录下,db.opt文件就是存放该库的编码规则
在这里插入图片描述
查找字符 a,只有符合条件的被查出来的,说明检验规则utf8_bin区分大小写
在这里插入图片描述

五、修改数据库

显示创建数据库时的语句

show create database 数据库名;

在这里插入图片描述
说明

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

修改数据库

语法:

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]

alter_spacification选项:

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
  • 大写的表示关键字
  • [] 是可选项,可以选择不写

说明:对数据库的修改主要指的是修改数据库的字符集,校验规则
例如,将test2的字符集gbk

alter database test1 charset=gbk collate gbk_chinese_ci;

在这里插入图片描述
在这里插入图片描述
注意:现在的数据库不支持修改数据库名字,以前支持

六、数据库的备份和恢复

备份

语法

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

注:> 是输出重定向
例如,将test1库备份到文件,需要退出mysql连接

mysqldump -P3306 -uroot -p -B test1 > /home/fy/mysql/test1.sql

在这里插入图片描述
vim 打开看一下,该数据的有效操作+数据全部备份了
在这里插入图片描述

还原

语法:

source 备份的文件(路径)

注:> 是输出重定向
test1删除,进行测试
在这里插入图片描述
进行还原test1,在连接mysql下操作

source /home/fy/mysql/test1.sql;

在这里插入图片描述
查看数据库,数据已经恢复
在这里插入图片描述
注意事项
如果备份的不是整个数据库,而是其中的一张表

 mysqldump -uroot -p 数据库名 表名1 表名2... > 备份的文件(路径),如:/mytest.sql

同时备份多个数据库

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

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

七、查看数据库连接情况

语法:

show processlist;

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

「 作者 」 枫叶先生
「 更新 」 2023.7.7
「 声明 」 余之才疏学浅,故所撰文疏漏难免,或有谬误或不准确之处,敬请读者批评指正。

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

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

相关文章

飞控学习笔记-IMU姿态算法

扩展卡尔曼滤波算法 传感器融合算法 卡尔曼滤波算法 最小二乘法 毕卡逼近法 对上式进行泰勒展开 得到四元数各阶近似算法: 梯度下降算法 梯度下降 互补滤波算法 chatgpt解释: 互补滤波(Complementary Filter)算法是一种常用…

OpenCV的remap实现图像垂直翻转

以下是完整的代码: #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>int main() {

OpenCV 入门教程:全局阈值处理

OpenCV 入门教程&#xff1a;全局阈值处理 导语一、全局阈值处理二、示例应用2.1 图像二值化2.2 图像去噪 总结 导语 全局阈值处理是图像处理中常用的技术之一&#xff0c;用于将图像转换为二值图像&#xff0c;从而提取感兴趣的目标区域。在 OpenCV 中&#xff0c;全局阈值处…

jenkins_svn_maven持续集成

详解Jenkins &#xff0c;svn &#xff0c;maven 项目持续集成 第一步&#xff1a; 由于刚刚接触jenkins 并不知道他是个什么东西&#xff0c;首先百度一下&#xff0c;然后进入官网&#xff0c;下载安装包。 第二步 windows 安装&#xff1a; 下载完了&#xff0c;打开里面…

Linux——进程信号(上)

目录 前文 一&#xff0c;什么是进程信号 二&#xff0c;信号的产生 2.1 通过按键终端产生信号 2.2 调用系统函数向进程发信号 2.3 由软条件产生信号 2.4 硬件异常产生信号 总结 前文 上文主要讲了一下进程间用管道通信的相关知识&#xff0c;本文主要带领大家深度认识一…

【GeoDa实用技巧100例】002:初始GeoDa软件

文章目录 一、GeoDa简介二、软件界面三、新建保存打开数据源1. 新建数据源2. 保存数据源3. 关闭数据源4. 打开数据源 四、保存打开项目1. 保存项目2.打开项目 一、GeoDa简介 GeoDa是一款免费的开源软件工具&#xff0c;用于空间数据分析。GeoDa旨在通过探索和建模空间模式来促…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平研修

【科研团队必选】老师赋予目的不仅仅是技术的掌握&#xff0c;更能从技术融合与科研经验的视角下&#xff0c;培养科研团队科研素质&#xff0c;挖掘-融合-创新 目的&#xff1a;以科研及项目角度解决您的数据分析问题及热点问题&#xff0c;为您的论文写作及项目推进挖掘更好…

iOS通用链接(UniversalLink)配置详细流程

一、Universal Links 配置过程 登录苹果账号后&#xff0c;点击创建的APP 的Bundle ID&#xff0c;跳转到APP 信息页面。记录下Team ID 和Bundle ID 备用。勾选上 功能列表上的 ”Associated Domains“选项。 配置苹果后台 创建一个text空文本文件&#xff0c;去掉文件后缀&a…

37.RocketMQ之Broker消息存储源码分析

highlight: arduino-light 消息存储文件 rocketMQ的消息持久化在我们在搭建集群时都特意指定的文件存储路径,进入指定的store目录下就可以看到。 下面介绍各文件含义 CommitLog 存储消息的元数据。produce发出的所有消息都会顺序存入到CommitLog文件当中。 CommitLog由多个文件…

第一百天学习记录:线性代数:行列式(宋浩板书)

n阶行列式 注&#xff1a;二阶行列式和三阶行列式以及排列和逆序数见高等数学自学向量篇中间穿插的线性代数知识点补充。 行列式的性质 性质7&#xff08;☆☆☆&#xff09; 行列式按行展开 拉普拉斯 行列式相乘 行列式的计算 Cramer法则 题外话&#…

SpringMVC 程序开发:为什么要学SpringMVC?如何学SpringMVC?

文章目录 &#x1f387;前言1.MVC1.1 MVC 的定义1.2 MVC 与 Spring MVC的关系 2.为嘛要学Spring MVC&#xff1f;3.如何学习 Spring MVC&#xff1f;3.1 Spring MVC 创建和连接3.1.1 RequestMapping 注解介绍3.1.2 使用RequestMapping的参数修改请求方法3.1.3 GetMapping 和 Po…

二叉树题目:翻转二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;翻转二叉树 出处&#xff1a;226. 翻转二叉树 难度 3 级 题目描述 要求 给定二叉树的根结点 root \texttt{ro…