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

create database d1;

当我们创建数据库没有指定字符集和校验规则时,系统会使用默认字符集utf8mb4,校验规则是utf8mb4_0900_ai_ci。

如下。

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

create database d2 charset=utf8;

创建一个使用utf8字符集并带校对规则的d3数据库

create database d3 charset=utf8 collate utf8_general_ci;

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

如果字符集与校验规则不匹配时轻则索引失效,查数据异常;重则数据损坏,性能雪崩。

1.2字符集和校验规则

查看当前数据库支持的字符集。

show charset;

大多数校验规则不区分大小写。

但是校验规则是会直接影响字符串的比较,排序以及查询结果的,如果你选择的校验规则是utf8_bin,是会区分大小写的。

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

show collation;

 1.3操作数据库

查看数据库

show databases;

可以查看你所创建的所有数据库以及MySQL自带的系统库。

show create database 数据库名;

用于查看数据库的完整创建语句,包括字符集和校验规则等完整配置。

show create database 数据库名\G

将;换成\G就可以将输出信息格式化,如下所示

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

/*!40100...*/表示当前MySQL版本大于4.01版本就执行这句话,也就是创建数据库d1。

1.4修改数据库

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

使用alter关键字,对数据库的修改主要指的是修改数据库的字符集和校验规则。

例如。

将d1数据库的字符集改成gdb

alter database d1 charset=gbk;

1.5数据库的删除

drop database [if exists] 数据库名;

使用drop关键字删除数据库,执行删除指令后,数据库内部看不到对应的数据库并且对应数据库文件夹被删除,级联删除,里面的数据表全部被删。

因此需要注意,不要随意删除数据库。

1.6备份和恢复

在进行数据库要删除的情况下,不妨考虑下对数据库进行备份,避免误操作导致数据丢失。

数据库备份就像Git版本控制器一样,把当前数据状态提交存档,出问题时可以随时回滚恢复。

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

例如

mysqldump -P3306 -u root -p密码 -B d1 > E:/my.sql

它能够将我们整个创建数据库,建表,导入数据的语句都装载在这个文件中。

注意是语句,因为它实际保存的就是我们创建数据库建表等操作的SQL命令,当我们进行恢复时其实就是将这些SQL语句重新执行了一遍。

source E:/my.sql

如果备份的是数据库中的一张表

mysqldump -u root -p数据库名 表名1 表名2 > E:/my.sql

如果备份多个数据库

mysqldump -u root -p -B 数据库1 数据库2... > E:/my.sql

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

-B参数是--database的缩写,若未带上,mysqldump默认不会把创建数据库和使用数据库命令导入进文件中。

2.查看数据库的连接状态

show processlist;

这条命令可以查看当前所有连接到 MySQL 的客户端会话。数据库变慢时第一时间用它排查,也可以用来检查是否有异常或未知的连接。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐