MySQL数据库的基础操作

MySQL系列


文章目录

  • MySQL系列
  • 前言
    • [1.1 创建库](#1.1 创建库)
    • [1.2 查看库及其属性](#1.2 查看库及其属性)
    • [1.3 字符集和校验集](#1.3 字符集和校验集)
    • [1.4 修改数据库](#1.4 修改数据库)
    • [1.5 数据库的备份和恢复](#1.5 数据库的备份和恢复)
      • [1.5.1 数据库的备份](#1.5.1 数据库的备份)
      • [1.5.2 数据库的恢复](#1.5.2 数据库的恢复)
    • [1.6 查看连接状态](#1.6 查看连接状态)
    • [1.7 删除库](#1.7 删除库)

前言

本系列文章是在学习过Linux的基础上展开介绍的,对MySQL的介绍将会以操作为主。本篇我将介绍MySQL对库的基本操作,内容涉及增、删、查、改等相关操作。


1.1 创建库

语法:

sql 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name
[CHARACTER SET [=] charset_name]
[COLLATE [=] collation_name];
  • CREATE DATABASE db_name: 创建一个库名为db_name(库名自定义)的库
  • [ ]: 控好内的为可选项,可带,可不带
  • IF NOT EXISTS: 如果创建的库不存在创建,存在就报错
  • CHARACTER SET: 指定数据库的字符集
  • COLLATE: 指定数据库的排序规则

下面我们接着来学习查看库的属性,有了查看库的基础后再对上面操作演示

1.2 查看库及其属性

查看当前库:

sql 复制代码
SHOW DATABASES;

可以看当前服务下,存在的库。

查看默认字符集:

sql 复制代码
show variables like 'character_set_database';//查看当前服务默认字符集

查看默认校验集:

sql 复制代码
show variables like 'collation_database';

在创建库时,如果不显示给出,就会使用默认的字符集和校验集。

查看当前服务所支持的字符集:

sql 复制代码
show charset;//查看字符集
show collation;//查看校验集


查看指定库的校验集、字符集:

sql 复制代码
show create database db_name;

有了这些认识我们就可以对上面操作进行验证了

示例1:直接建库

sql 复制代码
create database d1;//库名自定义


创建库时带上if not exists选项,若库存在就会报错,这里就不仔细演示了,可以自己尝试。

示例2:指定字符集

sql 复制代码
create database d2 charset=big5;


显示问题有点乱序

同样的你也可以尝试指定校验集创建库,这里就不演示了。

1.3 字符集和校验集

字符集: 决定了特定字符在存储时,该映射为什么样的二进制数据,定义了数据在存储和传输时所采用的编码方式。
校验集: 校验集是在特定字符集基础上,定义了字符的比较和排序规则,也就是规定了如何对字符进行大小比较、排序等操作。同一字符集可以有多个不同的校验集。

下面我们来看不同校验规则对数据的影响:

不同的校验规则对数据库是不同的,不同的校验规则,也就表明了不同的比较方法,下面我们以utf8_general_ci(不区分大小写的)和utf8_bin(区分大小写)为例进行验证。

首先我们以两种校验集分别创建了test1test2,下面我会向两库中分别创建表,并插入数据(表操作后面介绍)。

通过图中结果对比可以得出:utf8_general_ci校验集不区分大小写,utf8_bin校验集区分大小写。

1.4 修改数据库

sql 复制代码
ALTER DATABASE [IF EXISTS] database_name
[DEFAULT] CHARACTER SET [=] charset_name//修改字符集
[DEFAULT] COLLATE [=] collation_name;//修改校验集


补充:

sql 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';

当不使用任何库时,sql语句显示的是当前服务默认的字符集、校验集,当使用库时,查找的时当前库的校验集、字符集。

1.5 数据库的备份和恢复

1.5.1 数据库的备份

语法:

sql 复制代码
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:

sql 复制代码
mysqldump -P3306 -u root -p -B test1 > /root/MySQL/backup.sql 

现在我们将test1库的数据备份到了 /root/MySQL/backup.sql路径下的文件中。
需要注意的是:mysqldump 是 系统命令行工具(在 Linux终端执行),不是 MySQL 交互终端(mysql>)里的 SQL 语句。

查看备份文件可以发现,我们保存的不仅是test1的数据,还有我们对这个库进行的历史操作。

1.5.2 数据库的恢复

sql 复制代码
mysql> source /root/MySQL/backup.sql;


使用 source 命令恢复数据库时,会对备份文件中保存的 SQL 指令重新执行一遍。

备份数据库中的某张表:

bash 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 >路径

同样会备份表的历史sql语句,恢复时执行

bash 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 路径

1.6 查看连接状态

sql 复制代码
show processlist;

查看的是当前主机,MySQL服务器的连接状态。

1.7 删除库

sql 复制代码
drop db_name;

本篇就介绍到这里,正篇下来并没有难点,都是基础操作。

相关推荐
珹洺43 分钟前
Linux操作系统从入门到实战(七)详细讲解编辑器Vim
linux·编辑器·vim
Gold Steps.1 小时前
基于 Gitlab、Jenkins与Jenkins分布式、SonarQube 、Nexus 的 CiCd 全流程打造
运维·ci/cd·gitlab·jenkins
C182981825751 小时前
幻想读 通过多版本并发控制(MVCC)和间隙锁(Gap Lock)的组合也能防止幻读具体说下
mysql
赵健zj1 小时前
鸿蒙Next开发,配置Navigation的Route
android·linux·ubuntu
Ruimin05191 小时前
LSV负载均衡
linux·运维·服务器·负载均衡·lvs
好奇的菜鸟2 小时前
Linux 系统下的 Sangfor VDI 客户端安装与登录完全攻略 (CentOS、Ubuntu、麒麟全线通用)
linux·ubuntu·centos
AuroraDPY2 小时前
Linux 环境变量
linux·运维·服务器
Ronin3052 小时前
【Linux系统】进程切换 | 进程调度——O(1)调度队列
linux·运维·服务器·ubuntu
万象.2 小时前
Linux多进程
linux