MySQL - 库的操作

目录

  • 1.库的操作
    • 1.1创建数据库
    • 1.2创建数据库案例
  • 2.字符集和校验规则
  • 3.操纵数据库
  • 4.备份和恢复
  • 5.查看连接情况

1.库的操作

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

1.2创建数据库案例

创建名为 db1 的数据库

create database db1;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;

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

create database db3 charset=utf8 collate utf8_general_ci;

2.字符集和校验规则

数据读取和存储都有对应的编码格式。存和取时必须统一用什么编码!

举个例子🌰
存的时候就好比一个中国人用汉语写了一本日记,取的时候(读),一个不懂汉语的美国人去读取,他肯定读不懂

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

  1. 数据库编码集 —— 数据库存储数据的标准
  2. 数据库校验集 —— 支持数据库进行字段比较、查找、匹配…使用的编码

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

show variables like 'character_set_database';
show variables like 'collation_database';

2.2 查看数据库支持的字符集

show charset;

字符集主要是控制用什么语言。比如utf8就可以使用中文。

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

show collation;

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

  • 不区分大小写

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

create database test1 collate utf8_general_ci;
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');
  • 区分大小写

创建一个数据库,校验规则使用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');
  • 进行查询

不区分大小写的查询以及结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

区分大小写的查询以及结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

不区分大小写排序以及结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

区分大小写排序以及结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们对数据库数据进行查找匹配分析时,使用的就是校验集;上图中显示的例子中就展现了不同校验集所带来不同的结果。
我们平时在创建数据库时一般不会自己设置字符集和校验集,此时就是缺省使用配置文件中的设置。

3.操纵数据库

3.1 查看数据库

show databases;

3.2 显示创建语句

show create database 数据库名;

示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说明:

  • MySQL 建议我们关键字使用大写,但是不是必须的。

  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

  • /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

3.3 修改数据库

语法:

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

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.4 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

数据库内部看不到对应的数据库

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

4.备份和恢复

4.1 备份

语法:

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

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们在其他目录文件夹中,执行备份语句后,在此文件夹中就会生成一个备份了数据库的文件
注意:执行备份语句要退出mysql

这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中,不只是单独的数据库数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.2 还原

mysql> source D:/mysql-5.7.22/mytest.sql;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为备份文件中存储的是我们对于这个数据库所有的操作语句和数据,因此我们使用还原语句时,相当于系统自动帮我们把历史的操作语句再执行了一次,以达到还原数据库的效果。

4.3 注意事项

  • 如果备份的不是整个数据库,而是其中的一张表,怎么做?
\# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
  • 同时备份多个数据库
\# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

5.查看连接情况

语法:

show processlist

示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

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

相关文章

递归与快速算法

借鉴: 4分钟彻底掌握递归算法、斐波那契数列、快速排序,不再怕面试!_哔哩哔哩_bilibili 可直接观看借鉴里的视频 快速算法

QT学习之QT概述

1.1 什么是QT? Qt是一个跨平台的C图形用户界面应用程序框架。 QT特点: 跨平台,几乎支持所有的平台接口简单,容易上手,学习QT框架对学习其他框架有参考意义。一定程度上简化了内存回收机制开发效率高,能够…

Nacos全面知识 ----微服务 SpringCloud

快速入门 分级存储模型 修改集群配置 Nacos设置负载均衡策略 集群优先 权重优先 Nacos热更新配置 Nacos添加配置信息 微服务配置拉取 热更新:推荐使用第二种方法进行热部署 ConfigurationProperties(prefix "pattern") 是 Spring Boot 中用于自动配置属性的注解。它…

MATLAB 绘制 SISO 和 MIMO 线性系统的时间和频率响应图

系列文章目录 文章目录 系列文章目录前言一、时间响应二、频率响应三、极点/零点图和根节点四、响应特性五、分析 MIMO 系统六、系统比较七、修改时间轴或频率轴数值如果觉得内容不错,请点赞、收藏、关注 前言 本例演示如何绘制 SISO 和 MIMO 线性系统的时间和频率…

直播电商大变局:店播时代终于来了!

店播时代终于来了。 直播在2023年双十一的亮点,也是焦点。今年双十一,舆论场的注意力都集中在了几大平台的头部主播身上,却少有人注意店播的表现——根据淘宝直播官方数据,10月31日淘宝直播上有29个直播间开局即破亿,…

【MATLAB源码-第67期】基于麻雀搜索算法(SSA)的无人机三维地图路径规划,输出最短路径和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 ​麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新颖的元启发式优化算法,它受到麻雀社会行为的启发。这种算法通过模拟麻雀的食物搜索行为和逃避天敌的策略来解决优化问题。SSA通过模…

Anaconda安装与配置

1.打开Anaconda官网,选择对应版本,下载到对应目录即可 或者进入: Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.双击打开.exe文件,然后点击next ; 3.点击agree 4.点击just me,然后next; 5.在Choose Install L…

Linux 安装node并全局可用

前言 基于:操作系统 CentOS 7.6 工具:Xshell7、Xftp7 1.下载 根目录创建一个 node 文件夹并进入 mkdir /node && cd /node下载压缩包 wget https://nodejs.org/download/release/v16.18.0/node-v16.18.0-linux-x64.tar.gz2.解压并重命名 …

oracle 重启步骤及踩坑经验

oracle 重启步骤及踩坑经验 标准重启步骤 切换到oracle用户 su - oracle关闭监听 lsnrctl stop杀掉oracle有关进程 ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {print $2}|xargs kill -9#查询pid ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCALNO|awk {p…

第 5 章 主窗口及对话框

5.1 主窗口区域划分 QMainWindow是Qt框架带来的一个预定义的主窗口类。所谓主窗口,就是一个普通意义上的应用程序最顶层的窗口。例如对于浏览器而言,主窗口就是这个浏览器窗口。回想一下,经典的主窗口通常由一个标题栏、一个菜单栏、若干工具…

【Linux】常见的Linux命令

目录 一、与目录有关的操作 二、与文件有关的操作 三、针对目录的操作 三、在linux上搭建环境 一、与目录有关的操作 1.ls 显示目录内容列表 ls / 这里的 / 表示根目录,相当于windows中的此电脑,linux中没有盘符。 ls -l / 显示详细信息 可以…

基于Taro + React 实现微信小程序半圆滑块组件、半圆进度条、弧形进度条、半圆滑行轨道(附源码)

效果: 功能点: 1、四个档位 2、可点击加减切换档位 3、可以点击区域切换档位 4、可以滑动切换档位 目的: 给大家提供一些实现思路,找了一圈,一些文章基本不能直接用,错漏百出,代码还藏着掖…

postgresql 触发器如何生成递增序列号,从1开始,并且每天重置

大家好,我是三叔,许久不见,这期给大家介绍一下笔者在开发中遇到的业务处理:pgsql 创建触发器生成每日递增序列,并且第二天重置,根据不同的用户进行不同的控制。 1.创建生成递增序列的 table 表 -- 创建us…

线程池与工厂模式

目录 ♫什么是线程池 ♫线程池的优点 ♫工厂模式 ♫工厂模式的意义 ♫线程池的使用 ♫线程池常见的创建方法 ♫ThreadPoolExecutor ♫实现一个线程池 ♫什么是线程池 线程池是一种管理和复用线程的技术,它在应用程序启动时预先创建一组线程,并将它…

uniapp写一个计算器用于记账(微信小程序,APP)

提要:自己用uniapp写了一个记账小程序(目前是小程序),写到计算器部分,在网上找了别人写的计算器,大多数逻辑都是最简单的,都不能满足一个记账计算器的基本逻辑。与其在网上找来找去,…

由CAB/PAB展开的一些思考

又到了一月保底一篇订阅号文章的时候,上周受到Oracle邀请,参加了在上海Oracle办公室举行的CAB(The 13th Oracle China Customer Advisory Board Metting)/ PAB(The 3th Oracle China Partner Advisory Board Metting&…

信息论基础知识1

1.1 自信息定义:把某个消息出现的不确定性大小,用这个消息出现的概率的对数表示: I(X)-logp(x) 1.2 在任何一个信息流通的系统中,都有一个发出信息的发送端(信源),有一个接收信息的接收端…

cmake find_package、引用GDAL 初步学习

上次的源码的CMakeLists.txt文件里有 find_package(GDAL REQUIRED) 这句; 从字面意思看此源码需要GDAL库; 查了一下,find_package 指令的基本功能是查找第三方库,并返回其细节; 我当前GDAL安装在D:\GDAL; 先把它的CMakeLists.txt重命名为别的,不使用; 新建一个C…

多线程基础

1. 线程创建的几种方式 2. 锁的类型 在学习JUC之前,加锁、等待、唤醒 分别使用的是 (synchronized、lock)、wait、notify在学习JUC开始,学会使用lock接口的其他实现类来进行上述操作,比如 ReentrantLock 3. 线程池 …

哪里能找到可以学习的前端实战项目?

前言 下面是我整理的一些关于GitHub上的前端相关的项目,希望对你有所帮助,整理不易,可以的话不要吝啬你的点赞喜欢收藏哈~ 废话少说,我们直接进入正题——> 实用工具向 1.Echarts Star:55.6k Echarts提供了大量…