前言时刻,首先问问什么是 MySQL 数据库,你的答案是:软件、文件、不清楚?相信选择最后一个答案的人很多,当然我也是😂。我开始也是很懵逼,觉得 MySQL 很玄幻,不就是"增删改查"那些东西吗,事实上 MySQL 数据库本质上是文件,每创建一个数据库的同时创建一个文件夹,里面存放着创建的各种表(表以文件存在),下面我会证明的。
1、什么是数据库?
我们在电脑上安装的 MySQL 软件,其实就是安装了一个数据库管理系统(DBMS ,database mange system),这套管理系统可以管理多个数据库,同时每个数据库中可以创建多个表,用来存放数据。可能你还搞不清楚它们之间的关系,可看下方的流程图。
2、数据库相关的操作
关于数据库的操作就免不了要写 SQL 语句,写代码就要用专门的工具,要是天天对着 DOS 窗敲命令,都不想学 MySQL 了😄,常用的几款软件如下:
软件名称 | 支持系统 | 是否付费 | 评测 |
---|---|---|---|
Navicat | Windows、Mac、linux | 付费,15天试用 | 强大,支持主流的数据库:MySQL、Oracle、MongoDB、sqlite等。缺点:要付费。开心版下载: |
SQLyog | Windows | 社区版免费(够用) | 好用,缺点:仅支持MySQL一种数据库,并且支持Windows系统 |
DataGrip | Windows、Mac、linux | 需要,社区版免费 | jetbrain家出品的,超级强大,支持所有主流的数据库。 |
2.1 创建数据库
使用 create database db_name
创建数据库,另外还可以指定数据库的字符集
和排序规则
。
# 1.默认方式,创建一个名叫test01的数据库,默认字符集是utf8 CREATE DATABASE test01; # 1.1 创建数据库时 指定数据库的 字符集 CREATE DATABASE test02 CHARACTER SET utf8; # 1.2 创建数据库时 指定 数据库字符集 的排序规则 # utf8-bin:区分大小写,utf8-general-ci(默认方式): CREATE DATABASE test03 CHARACTER SET utf8 COLLATE utf8-bin
上面我创建了两个数据库test01
和test02
,去 MySQL 的文件夹看看结果,Mac下 MySQL 的路径是在/usr/local/mysql/data
,而 Windows 下的是自己设置的安装路径下。
上面的截图证实了我上面说的,创建的数据库本质上是文件,所以说白了创建的数据库就是一个文件夹,里面存放着各种文件(也就是表),表中存放要插入的数据。需要注意的是这些文件并不是普通的文本文件,而是一种特殊的数据结构,有利于查询和插入等操作,这也就是为什么 MySQL 很快的原因。
1)创建数据库时为什么要指定字符集?
2.2 删除数据库
删除数据库之前一定要三思而后行,否则就是删库到跑路的结果。
# 2、删除数据库(注意,三思而后行) DROP DATABASE IF EXISTS test02;
2.3 备份和恢复数据库
1)备份命令:
需要注意的是使用mysqldump
,需要在 DOS 命令窗下运行。因为 mysqldump 是一个可执行程序,和 MySQL 一样,所以就需要在命令窗口运行。
# 备份 多个数据库 mysqldump -u root -p -B test01 test02 > /Users/jiaozhuzhang/Downloads/test.sql # 只备份某个数据库中的 几个表 mysqldump -u root -p test01 msg msg2 > /Users/jiaozhuzhang/Downloads/test_part.sql
2)备份恢复:
这里也需要注意,恢复命令 source
需要在 MySQL 的命令窗口中进行,注意和备份命令的运行环境是不一样的。
# 恢复数据库 source /Users/jiaozhuzhang/Downloads/test.sql
2.4 其他操作:
- 显示所有数据库
- 显示创建某个数据库的 命令
# 显示所有的数据库 SHOW DATABASES; -- information_schema -- mysql -- performance_schema -- sys -- test01 -- test02 # 显示创建某个数据库的 命令 SHOW CREATE DATABASE test02 # CREATE DATABASE `test02` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */
总结:
跟着多敲几遍,注意:一定要全程手敲代码,不要用自动提示功能,不练习几遍的话,你会发现几天后忘的渣都不剩。好了今天就到这了,觉得不错的话就点个赞吧!
参考文章:
https://www.cnblogs.com/chyingp/p/mysql-character-set-collation.html