MySQL库的操作

news2024/9/21 14:33:35

文章目录

  • MySQL库的操作
    • 创建数据库
    • 创建数据库案例
    • 字符集和校验规则
      • 查看系统默认字符集以及校验规则
      • 查看数据库支持的字符集
      • 查看数据库支持的字符集校验规则
      • 校验规则对数据库的影响
    • 操纵数据库
      • 查看数据库
      • 显示创建语句
      • 修改数据库
      • 删除数据库
      • 备份和恢复
        • 数据库的备份和恢复
        • 表的备份和恢复
      • 查看连接情况

MySQL库的操作

创建数据库

创建数据库

创建数据库的SQL如下:

CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];

说明一下:

  • SQL中大写的表示关键字,[ ]中代表的是可选项。
  • CHARSET用于指定数据库所采用的编码格式。
  • COLLATE用于指定数据库所采用的校验规则。

注意: 如果创建数据库时未指明数据库的编码格式或校验规则,则默认使用MySQL配置文件中对应的编码格式或校验规则。

创建数据库案例

采用默认的编码格式和校验规则创建数据库

创建数据库时不指明数据库的编码格式和校验规则即可。如下:

在这里插入图片描述

注意: 如果没有对MySQL的配置文件进行过修改,则默认的编码格式是utf8,默认的校验规则是utf8_general_ci。

指定utf8编码格式创建数据库

创建数据库时通过charset指明数据库的编码格式即可。如下:

在这里插入图片描述

注意: SQL中的charset=utf8,也可以写成character set=utf8或character set utf8。

指定utf8编码格式和utf8_general_ci校验规则创建数据库

创建数据库时通过charset和collate分别指明数据库的编码格式和校验规则即可。如下:

在这里插入图片描述

注意: SQL中的collate=utf8_general_ci,也可以写成collate utf8_general_ci。

字符集和校验规则

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

查看系统默认的字符集

通过查看MySQL系统变量variables中的character_set_database,可以得知系统默认的字符集。如下:

在这里插入图片描述

注意: 如果是在指定数据库下使用该SQL,则查看的是该数据库对应的字符集。

查看系统默认的字符集校验规则

通过查看MySQL系统变量variables中的collation_database,可以得知系统默认的字符集校验规则。如下:

在这里插入图片描述

注意: 如果是在指定数据库下使用该SQL,则查看的是该数据库对应的字符集校验规则。

查看数据库支持的字符集

查看数据库支持的字符集

使用show charsetSQL可以查看数据库支持的字符集。如下:

在这里插入图片描述

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

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

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

使用show collationSQL可以查看数据库支持的字符集校验规则。如下:

在这里插入图片描述

校验规则对数据库的影响

字符集编码格式和字符集校验规则的区别

  • 字符集编码格式指的是在存储数据时各个字符的底层编码,用于指定数据的存储格式。
  • 字符集校验规则是在字符集内用于比较字符的一套规则,用于对数据进行比对。

比如我们存储数据的时候是按照utf8的格式进行存储的,那么将来在对数据做比对时也必须按照utf8的格式进行比对,因为“存数据”和“取数据”的方式必须保持一致。

注意: 在对数据库当中的数据进行增删查改时,不可避免的需要进行数据的比对,因为在对数据做增删查改之前,都需要先通过比对的方式找到目标数据。

校验规则对数据库的影响

现在我们知道了,为了保证读取的数据和存储的数据是一致的,因此字符集编码格式和校验规则必须是对应的。但实际同一中字符集编码格式一般会有多种可选择的校验规则,比如utf8编码格式的校验规则有utf8_general_ci、utf8_bin、utf8_unicode_ci等校验规则。

使用不同的校验规则操作数据库中的数据可能会得到不同的结果,比如utf8_general_ci校验规则在比对数据时是不区分大小写的,而utf8_bin校验规则在对比数据时则是区分大小写的。

操作数据库时采用utf8_general_ci校验规则

创建数据库时指定数据库的校验规则为utf8_general_ci,数据库的编码格式默认为utf8。如下:

在这里插入图片描述

在该数据库中创建一个简单的person表,由于创建未指定表的编码格式和校验规则,因此person表将继承当前数据库的编码格式和校验规则。如下:

在这里插入图片描述

这时向表中插入一些数据。如下:

在这里插入图片描述

通过select语句可以查看插入表中的数据。如下:

在这里插入图片描述

这时指定查看表中name='alice'的记录时会将Alice和alice一并筛选出来,根本原因就是utf8_general_ci校验规则在进行数据比对时是不区分大小写的。如下:

在这里插入图片描述

操作数据库时采用utf8_bin校验规则

创建数据库时指定数据库的校验规则为utf8_bin,数据库的编码格式默认为utf8。如下:

在这里插入图片描述

在该数据库中同样创建和刚才一样的person表,该person表会将继承当前数据库的编码格式和校验规则。如下:

在这里插入图片描述

这时向表中插入刚才相同的数据。如下:

在这里插入图片描述

通过select语句可以看到表中的数据与之前相同。如下:

在这里插入图片描述

但这时指定查看表中name='alice'的记录时只会将alice筛选出来,根本原因就是utf8_bin校验规则在进行数据比对时是区分大小写的。如下:

在这里插入图片描述

操纵数据库

查看数据库

查看数据库

使用show databaseSQL可以查看系统中所有的数据库。如下:

在这里插入图片描述

显示创建语句

显示创建语句

使用show create database 数据库名SQL可以查看对应数据库的创建语句。如下:

在这里插入图片描述

说明一下:

  • MySQL建议SQL中的关键字使用大写,但不是必须的。
  • 数据库的名字加上反引号,是为了防止使用的数据库名与关键字冲突。
  • /*!40100 DEFAULT CHARACTER SET utf8 */不是注释,它表示当前MySQL版本如果大于4.10,则执行后面的SQL语句。

修改数据库

修改数据库

修改数据库的SQL如下:

ALTER DATABASE db_name [[DEFAULT] CHARSET=character_name] [[DEFAULT] COLLATE=collation_name];

说明一下:

  • 对数据库的修改主要指的是修改数据库的字符集或校验规则。

比如将数据库的字符集改为gbk,并将数据库的校验规则改为gbk_bin。如下:

在这里插入图片描述

删除数据库

删除数据库

删除数据库的SQL如下:

DROP DATABASE [IF EXISTS] db_name;

删除数据库后该数据库对应的文件夹就被删除了。比如:

在这里插入图片描述

并且删除数据库后,该数据库下的所有表也都会被级联删除,因此不要随意删除数据库。

备份和恢复

数据库的备份和恢复

数据库备份

使用如下命令即可对指定数据库进行备份:

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

为了演示数据库备份,下面我们创建一个数据库,并在该数据库中创建两个表。如下:

在这里插入图片描述

在student表中插入两条记录。如下:

在这里插入图片描述

在teacher表中也插入两条记录。如下:

在这里插入图片描述

这时在命令行中执行如下命令即可将该数据库进行备份,并指定将备份后产生的文件存放在当前目录下。如下:

在这里插入图片描述

打开back.sql文件即可看到,文件中的内容实际就是我们在该数据库中执行的各种SQL命令,包括创建数据库、创建表、插入数据等SQL语句。如下:

在这里插入图片描述

数据库恢复

使用如下命令即可对指定数据库进行恢复:

source 数据库备份存储的文件路径

为了演示数据库恢复,我们先将刚才创建的数据库删除。如下:

在这里插入图片描述

这时让MySQL服务器执行如下命令即可对数据库进行恢复。如下:

在这里插入图片描述

实际恢复数据库的时候就是按顺序执行数据库备份文件中的SQL语句,执行完毕后数据库也就恢复出来了。如下:

在这里插入图片描述

同时该数据库下的两张表,以及表当中的数据也都恢复出来了。如下:

在这里插入图片描述

表的备份和恢复

表备份

使用如下命令即可对指定表进行备份:

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

比如在上述数据库中除了student和teacher表之外,还有其他的表。如下:

在这里插入图片描述

如果只想备份数据库中的student表和teacher表,这时就可以在命令行中执行如下命令,并指定将备份后产生的文件存放在当前目录下。如下:

在这里插入图片描述

这时历史上与student和teacher表相关的SQL语句,就会被保存到备份文件当中。如下:

在这里插入图片描述

表恢复

表恢复之前需要先选中一个数据库,表明需要将表恢复到哪一个数据库中,为了防止恢复出来的表与该数据库中已有的表的表名重复,一般在恢复表时会选择创建一个空的数据库,然后在该数据库中进行表的恢复。

在数据库中使用如下命令即可对指定表进行恢复:

source 表备份存储的文件路径

为了演示表恢复,我们先将刚才的数据库删除。如下:

在这里插入图片描述

这时创建一个空的数据库并在该数据库中执行如下命令即可对表进行恢复。如下:

在这里插入图片描述

当备份文件中的SQL语句执行完毕后,该数据库下就恢复出了student和teacher表,并且表当中的数据也都恢复出来了。如下:

在这里插入图片描述

查看连接情况

查看连接情况

使用show processlistSQL即可查看当前连接MySQL的用户。比如:

在这里插入图片描述

说明一下:

  • Id列:一个标识,可以在MySQL中通过kill id杀死指定id的线程。
  • User列:显示当前用户,如果不是root,这个命令就只显示你权限范围内的SQL语句。
  • Host列:显示这个语句是从哪个IP的哪个端口上发出的,可用来追踪出问题语句的用户。
  • db列:当前执行的命令是在哪一个数据库上,如果没有指定数据库,则该值为NULL。
  • Command列:显示当前连接执行的命令,一般就是休眠(Sleep)、查询(Query)和连接(Connect)。
  • Time列:表示该线程处于当前状态的时间,单位是秒。
  • State列:显示使用当前连接的SQL语句的状态。
  • Info列:一般记录的是线程执行的语句,默认只显示前100个字符,如果要看全部信息,需要使用show full processlist

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cracking the Safes之Linux系统下gdb调试

Cracking Safe是什么 挑战是找出四个保险箱中每个保险箱预期的正确的5个输入集。在运行二进制安全程序时,您需要一次输入一个猜测,如下所示: 其实,就是输入5次,程序会对输入内容进行判断,只有符合程序要求才能成功,任务就是逆向找到正确的字符串!!! 解题思路 反汇…

mac pro M1(ARM)安装:centos8.0虚拟机

0.引言 mac发布了m1芯片,其强悍的性能收到很多开发者的追捧,但是也因为其架构的更换,导致很多软件或环境的安装成了问题,之前我们讲解了如何安装centos7。这次我们接着来看如何在mac m1环境下安装centos8 1.下载 1.1 安装VMwar…

Java基于springboot+vue的五金用品销售购物商城系统 前后端分离

五金用品是当前很多家庭和维修人员必备的工具,他们可以让维修变的更加简单,甚至有很多维修必须有配套的专业工具才能够完成,但是很多时候人们在五金店购买这些五金用品的时候不是价格昂贵就是缺少一些想要的工具,这个是通过开发一…

Guava 对 Map的操作

Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更…

C语言刷题(2)

🐒博客名:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 文件拷贝 问题描述: 小蓝正在拷贝一份文件,他现在已经拷贝了 t 秒时间,已经拷贝了 c 字节&#…

解决eclipse导入svn项目报 403Forbidden

解决eclipse导入svn项目报 403Forbidden问题; 首先,产生这个问题的原因:①导入的svn项目没有权限;②上次导入的svn项目在身份验证的时候保存了用户名以及密码;(我遇到这个情况的原因是因为②) …

个人网页制作 个人网页设计作业 HTML CSS个人网页模板 大学生个人介绍网站毕业设计 DW个人主题网页模板下载 个人网页成品代码 个人网页作品下载

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

编码器的电路介绍

编码器的结构特点以及以及使用 对于8线到三线的编码器,一定是八线输入,三线输出,有十一条线 但是74HC148是一个16引脚的芯片 有十一线上述的信号,还有电源线以及地线,此时我们就有了13条线 另外的线则是归于控制信…

kubernetes深入理解之Service

版权声明:本文为CSDN博主「开着拖拉机回家」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 主页地址:开着拖拉机回家的博客_CSDN博客-Linux,Java基础学习,MySql数据库领域博主 目录 一、概述 1.1 Serv…

【salesforce平台基础】-想到啥写点啥

【salesforce基础】-想到啥写点啥1.salesforce架构2.学习过程中常见的几个“公司”🤭3.术语4.平台的用途(举例说明)5.AppExchange(软件应用商店)6.sandbox7.平台入门1.salesforce架构 salesforce是一家云公司&#xf…

7.关于线性回归模型的QA

为什么使用平方损失而不是绝对差值呢? 答: 二者区别不大,但是绝对差值是一个不可导的函数,在零点的时候,绝对差值的导数会有点难求。 损失为什么要求平均? 答:求平均的话,梯度是在…

原语科技宣布完成千万级天使+轮融资,致力于打造隐私计算标准化产品

原语科技 开放隐私计算 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。 180篇…

【基础算法】多项式三大运算 C++实现

●多项式计算 一维多项式就是包含一个变量的多项式,一个一维多项式示例如下: 一维多项式求值就是对于上述多项式,计算在指定的x处的函数值。一个通用的计算多项式值的算法可以采用递推的方式,可以将上述多项式变为如下的等价形式…

位运算 离散化 区间和算法

目录一、位运算1.1 思路1.1 例题:二进制中1的个数二、离散化2.1 概念2.2 例题:区间和三、合并区间3.1 概念3.2 例题:合并区间一、位运算 1.1 思路 首先知道一个概念:一个正整数的负数等于其按位取反后1 -x ~x 1 举个例子&…

干货——生产型企业的供应商管理系统模板

供应商管理主要是是通过提高供货产品和服务质量及交付能力,缩短企业采购周期和生产成本,从而提升产品核心竞争力。随着如今信息技术的发展,采用先进的信息化手段更能够提升供应商管控能力,实现资源的有效整合,从而加强…

[附源码]计算机毕业设计疫苗药品批量扫码识别追溯系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

测试服务器的udping值

测试服务器的udping值参考下载工具步骤一:在服务器上启动UDP Echo服务(必须)启动**UDP Echo服务**步骤二:在客户端下载UDPing工具步骤三:在客户端测试UDPing值参考 https://help.aliyun.com/document_detail/158771.html UDPing项目地址: h…

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档

前言 有人调侃我们说: 程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……想跳槽,但是更高的平台…

PyTorch 2.0 重磅发布:一行代码提速 30%

在今天的 PyTorch 2022 开发者大会上,PyTorch 团队发布了一个新特性torch.compile,这个新特性将 PyTorch 的性能推向了新高度,并开始将 PyTorch 的部分实现从 C 中迁移到 Python 中。他们相信这是 PyTorch 一个实质性的新方向--因此称之为 **…

(最优化理论与方法)第六章无约束优化算法-第一节:线搜索方法

文章目录一:无约束优化问题概述二:线搜索方法(1)概述(2)线搜索准则A:Armijo准则①:概述②:Armjio准则缺陷③:回退法④:代码B:Goldstei…