【MySQL】数据库的操作

【MySQL】数据库的操作

目录

  • 【MySQL】数据库的操作
    • 创建数据库
    • 数据库的编码集和校验集
      • 查看系统默认字符集以及校验规则
      • 查看数据库支持的字符集
      • 查看数据库支持的字符集校验规则
      • 校验规则对数据库的影响
      • 数据库的删除
    • 数据库的备份和恢复
      • 备份
      • 还原
      • 不备份整个数据库,而是备份其中的表
      • 查看连接情况

作者:爱写代码的刚子

时间:2024.3.2

前言:本篇博客主要记录数据库的操作

创建数据库

  • **create database +数据库名字;**本质就是在/var/lib/mysql里创建一个目录

  • **drop database +数据库名字;**本质就是删除目录

  • create database if not exists +数据库名字带上if not exist选项表示没有该数据库就进行创建

在这里插入图片描述

数据库的编码集和校验集

  1. 数据库编码集:数据库未来存储数据
  2. 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式
  • 数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

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

  • show variables like ‘character_set_database’; 查看数据库默认(配置文件决定了)的字符集
  • **show variables like ‘collation_database’;**查看数据库默认的校验规则

在这里插入图片描述

查看数据库支持的字符集

  • show charset;

在这里插入图片描述

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

  • show collation;

在这里插入图片描述

  • 数据库里面的db.opt文件中存放数据库的编码集和校验规则

在这里插入图片描述

创建数据库,并设置其编码集:

  • create database 数据库名字 charset=utf8;
  • create database d3 character set utf8;

在这里插入图片描述

我们可以在/var/lib/mysql对应数据库目录里的db.opt查看数据库的编码集和校验规则。

  • **create database d4 charset=utf8 collate utf8_general_ci;**创建数据库并设置其编码集和校验规则

在这里插入图片描述

在这里插入图片描述

校验规则对数据库的影响

  • 创建两个数据库,编码规则相同,但是校验规则不同:
  • utf8_ general_ ci不区分大小写
  • utf8_bin区分大小写

在这里插入图片描述

  • 建表并查看表:

在这里插入图片描述

  • 向表中插入数据:

在这里插入图片描述

  • **select * from person;**查看表中的所有数据

在这里插入图片描述

  • **select * from person where name=‘a’;**查看表中名为a的数据

在这里插入图片描述

这里我们发现数据库test1中的校验规则为utf8_ general_ ci,并不区分大小写

  • 使用数据库test2做验证:

在这里插入图片描述

这里我们发现数据库test2中的校验规则为utf8_bin区分大小写

  • **select * from person order by name;**使用order by进行排序

使用不同的校验规则排序产生的结果并不相同:

test1:

在这里插入图片描述

test2:

在这里插入图片描述

数据库的删除

  • drop database if exists +数据库的名字删除数据库,if exists表示如果存在就进行删除

在这里插入图片描述

执行删除之后的结果:

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

不要随便删除数据库!!!

  • **use +数据库名;**使用数据库

  • **select database();**查看当前在哪个数据库中

在这里插入图片描述

  • **alter database 数据库名字 charset=gbk collate gbk_chinese_ci;**修改数据库的编码集和校验规则

在这里插入图片描述

  • show create database 数据库名字显示创建数据库的命令

在这里插入图片描述

说明:

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

在这里插入图片描述

数据库的备份和恢复

备份

  • mysqldump -P3306 -uroot -p -B test1 > test1.sql将数据库进行备份

在这里插入图片描述

  • test.sql里面存放的并不是数据,而是我们历史上使用的数据库的命令

在这里插入图片描述

还原

  • **source /root/MySQL/test1.sql;**恢复备份了的数据库

在这里插入图片描述

在这里插入图片描述

不备份整个数据库,而是备份其中的表

  • mysqldump -u root -p 数据库名 表名1 表名2 > mysql.sql备份数据库其中的表
  • mysqldump -u root -p -B 数据库名1 数据库名2 … > 数据库存放的路径同时备份多个数据库

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

带了-B选项,.sql文件中会添加create database …的选项,所以不用自己创建一个空的数据库

查看连接情况

  • **show processlist;**查看数据库有哪些人在使用

在这里插入图片描述

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

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

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

相关文章

YOLOv9改进|增加SPD-Conv无卷积步长或池化:用于低分辨率图像和小物体的新 CNN 模块

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、文章摘要 卷积神经网络(CNNs)在计算即使觉任务中如图像分类和目标检测等取得了显著的成功。然而,当图像分辨率较低或物体较小时&…

【LeetCode刷题】146. LRU 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -…

全量知识系统问题及SmartChat给出的答复 之9 三套工具之4语法解析器 之2

Q23. 一个语言的语法简约规则 这些规则显示show 在一个给定单词(a given word)的右边或左边可能出现的单词的类别。句型的多样性variety不是复杂文法(a complex grammar)的结果,而是简单语法(a simple gra…

【InternLM 实战营笔记】浦语·灵笔的图文理解及创作部署、 Lagent 工具调用 Demo

浦语灵笔的图文理解及创作部署 浦语灵笔是基于书生浦语大语言模型研发的视觉-语言大模型,提供出色的图文理解和创作能力,结合了视觉和语言的先进技术,能够实现图像到文本、文本到图像的双向转换。使用浦语灵笔大模型可以轻松的创作一篇图文推…

进程间的通信 -- 共享内存

一 共享内存的概念 1. 1 共享内存的原理 之前我们学过管道通信,分为匿名管道和命名管道,匿名管道通过父子进程的属性继承原理来完成父子进程看到同一份资源的目的,而命名管道则是通过路径与文件名来唯一标识管道文件,来让不同的进…

学习Android的第二十一天

目录 Android ProgressDialog (进度条对话框) 例子 Android DatePickerDialog 日期选择对话框 例子 Android TimePickerDialog 时间选择对话框 Android PopupWindow 悬浮框 构造函数 方法 例子 官方文档 Android OptionMenu 选项菜单 例子 官方文档 Android Progr…

Java实战:Spring Boot中各类参数校验机制

引言 在开发Web应用程序时,对客户端传入的参数进行有效校验是保证系统安全性和稳定性的重要环节。Spring Boot作为一个现代化的Java开发框架,提供了多种参数校验的方法和工具,以满足不同场景下的需求。本文将深入探讨Spring Boot中实现各种参…

typescript 的常用方式

文章目录 前言一、绑定props 默认值的方式:withDefaults1.vue2 的props设置默认值2.vue3 的props设置默认值(1) 不设置默认值的写法(2) 设置默认值的写法(分离模式)(3) 设置默认值的写法(组合模式) 二、定义一个二维数…

Matlab在同一张图中如何加入多个图例

根据代码最终画出的图片如下: 其实原理很简单,就是在一张figure中画多个坐标轴,每个坐标轴都有对应的图例,之后再将多余坐标轴隐藏,只保留一个即可。 代码如下: clear all; close all;dd_linewidth 1;a …

maven archetype 项目原型

拓展阅读 maven 包管理平台-01-maven 入门介绍 Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格 maven 包管理平台-02-windows 安装配置 mac 安装配置 maven 包管理平台-03-maven project maven 项目的创建入门 maven 包管理平台-04-maven archetype 项目原型 ma…

Spring学习笔记(六)利用Spring的jdbc实现学生管理系统的用户登录功能

一、案例分析 本案例要求学生在控制台输入用户名密码,如果用户账号密码正确则显示用户所属班级,如果登录失败则显示登录失败。 (1)为了存储学生信息,需要创建一个数据库。 (2)为了程序连接数…

洛谷P1927防护伞

题目描述 据说 20122012 的灾难和太阳黑子的爆发有关。于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的影响。由于太阳相对于地球来说实在是太大了,我们可以把太阳表面看作一个平面,中心定为(0,0…

C 基本语法

我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。 C 的令牌(Token) C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句…

30天自制操作系统(第23天)

23.1 编写malloc 参考第22天的内容,在绘制窗口前先分配了150*50个字节大小的内存,所以导致该文件经编译后有7.6k左右,能否在其中使用指针呢?当需要开辟空间时,移动指针即可。在之前的章节中也有函数memman_alloc函数可…

php源码 单色bmp图片取模工具 按任意方式取模 生成字节数组 自由编辑点阵

http://2.wjsou.com/BMP/index.html 想试试chatGPT4生成,还是要手工改 php 写一个网页界面上可以选择一张bmp图片,界面上就显示这张bmp图片, 点生成取模按钮,在图片下方会显示这张bmp图片的取模数据。 取模规则是按界面设置的&a…

Linux 的交换空间(swap)是什么?有什么用?

目录 swap是什么?swap有什么用?swap使用典型场景如何查看你的系统是否用到交换空间呢?查看系统中swap in/out的情况 swap是什么? swap就是磁盘上的一块区域。它和Windows系统中的交换文件作用类似,但是它是一段连续的…

03、MongoDB -- MongoDB 权限的设计

目录 MongoDB 权限的设计演示前准备:启动 mongodb 服务器 和 客户端 :1、启动单机模式的 mongodb 服务器2、启动 mongodb 的客户端 MongoDB 权限的设计1、MongoDB 的每个数据库都可以保存用户,不止admin数据库可以保存用户。2、保存用户的数据…

Linux 学习笔记(8)

八、 启动引导 1 、 Linux 的启动流程 1) BIOS 自检 2) 启动 GRUB/LILO 3) 运行 Linux kernel 并检测硬件 4) 挂载根文件系统 5) 运行 Linux 系统的第一个进程 init( 其 PID 永远为 1 ,是所有其它进程的父进程 ) 6) init 读取系统引导配置文件…

GD25Q32驱动

GD25Q32是一款基于SPI的Flash芯片,容量为32/84M bytes。它的引脚如下: 该芯片支持多种SPI操作方式,包括:Standard SPI(标准SPI)、Dual SPI(双线 SPI)和Quad SPI(四线 SPI) 。有关SPI的介绍可以参考: SPI通信原理-CSDN…

flutter 文字一行显示,超出换行

因为app有多语言,中文和其他语言长度不一致,可能导致英文会很长。 中文样式 英文样式 代码 Row(mainAxisAlignment: MainAxisAlignment.end,crossAxisAlignment: CrossAxisAlignment.end,children: [Visibility(visible: controller.info.fee ! null,ch…