目录
一、拾枝杂谈
1.cmd验证MySQL服务 :
在MySQL Server/bin目录下使用cmd,输入“mysql -u root -p”指令,cmd会提示输入密码,登入成功后显示"Welcome to the MySQL monitor",如下图所示 :
2.cmd连接MySQL服务 :
连接到MySQL服务(MySQL数据库)的指令是“mysql -h 主机IP -P 端口 -u 用户名 -p密码”。注意——
1° -p后直接输入密码,不需要加空格;
2° 若-p后没有输入密码,回车会再次要求输入密码;
3° 如果没有写-h 主机IP,默认连接本机;
4° 如果没有写-P 端口,默认3306;
5° 为了提示数据库的安全性,实际开发中往往会修改默认的端口。
如下图所示 :
编辑
PS : 若MySQL80服务莫名被关闭,且无法打开,提示找不到文件(系统错误2),可能是MySQL服务的可执行文件路径被更改,可以进入注册表“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80”,双击ImagePath,将路径进行更新即可。
3.MySQL服务 :
1°安装MySQL,就是在主机上安装一个数据库管理系统(DBMS,即Database Management System)。DBMS可以管理多个数据库(DB,即Database)。
2°一个数据库中可以创建多张表(table),以保存数据信息(MySQL数据库中,table的本质仍然是文件);
3°DBMS和DB关系,如下图所示 :
PS : DB和DBMS又包含在DBS(即Database System数据库系统)中。
编辑
二、数据库介绍
1.定义 :
“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)构成。数据库就是一个存储结构化数据的仓库。
表由行(row)和列(column)构成;表的一行称为一条记录;在java中,一行记录往往使用对象表示。
2.SQL语句分类 :
DDL :Data Definition Language(数据定义语句)。eg : CREATE...
DML : Data Manipulation Language(数据操作语句)。eg : INSERT, UPDATE...
DQL : Data Query Language(数据查询语句)。eg : SELECT...
DCL : Data Control Language(数据控制语句)。eg : GRANT, REVOKE...
三、数据库操作
1.数据库的创建 :
1° 基本语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [create_specification]...];
①中括号表示——[]中的内容可写可不写;
②“IF NOT EXISTS”会在创建数据库时进行判断,若此数据库已存在,就不执行创建数据库的操作,不会报错。
③db_name表示数据库的名字;
④create_specification表示该数据库的规范,包括“CHARACTER SET charset_name”和“COLLATE collation_name”两种。
其中——
前者CHARACTER SET表示该数据库采用的字符集,默认使用utf8mb4(5.7版本默认为utf8mb3;
后者COLLATE表示该数据库采用的校对规则,常用的有utf8mb4_bin(区分大小写) 和 utfmb4_general_ci(不区分大小写),默认使用utf8mb4_0900_ai_ci(utf8mb3字符集默认对应utf8mb3_general_ci排序规则)。PS : MySQL8.0开始,utf-8区分为mb3(老版本) 和 (mb4)新版本。
2° 演示
代码如下 :
# 1.创建默认的数据库(utf8mb4 && utf8mb4_0900_ai_ci)CREATE DATABASE IF NOT EXISTS demo_1;# 2.创建指定字符集的数据库(utf8mb3 && utf8mb3_general_ci)CREATE DATABASE IF NOT EXISTS demo_2 CHARACTER SET utf8;# 3.创建指定字符集和指定校对标准的数据库(utf8mb4 && utf8mb4_bin)CREATE DATABASE IF NOT EXISTS demo_3 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
运行效果 :
编辑
编辑
2.数据库的删除 :
1° 基本语法
DROP DATABASE [IF EXISTS] db_name;
2° 演示
代码如下 :
DROP DATABASE IF EXISTS demo_1;DROP DATABASE IF EXISTS demo_2;DROP DATABASE IF EXISTS demo_3;
运行效果 :
编辑
3. 数据库的查询 :
1° 基本语法
①显示所有数据库——
SHOW DATABASES;
②显示某个数据库的创建语句——
SHOW CREATE DATABASE db_name;
2° 演示
代码如下 :
CREATE DATABASE IF NOT EXISTS demo_1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;SHOW DATABASES;SHOW CREATE DATABASE demo_1;
运行效果 :
编辑
编辑
对于结果2——
①/*!40100......*/表示该指令必须在MySQL4.0及以上版本才合法。
②数据库的名字加上了一对反引号,是为了防止名字是关键字。因此,为了规避关键字,以后创建数据库时,都可以给db_name加上一对反引号(创建,删除等操作带上反引号都会更规范、更安全)。PS : 反引号 = 英文输入法下Esc下面的那个键。
4.数据库的备份和恢复 :
1° 基本语法
①备份数据库,通常指将指定数据库备份到另一主机或者本机的其他文件中,备份数据库的指令要在DOS下执行!备份数据库的指令如下 :
mysqldump -u 用户名 -p -B db1 db2...dbn > 文件名.sql
-p表示要输入密码,按下回车后会要求输入用户密码;
-B表示要备份的数据库,可同时备份多个数据库;
>表示导出符;
.sql表示备份后的文件后缀,文件名采用路径的形式;实际保存的是SQL语句;
该指令实际存在于MySQL安装目录的bin目录下,如下图所示 :
编辑
②恢复数据库——指将备份的数据库恢复到本地。恢复指令如下 :
Source 文件名.sql
此处的文件名.sql要采取路径的形式。
恢复数据库的指令要进入MySQL命令行下再执行。
2° 演示
数据库的备份演示——
编辑
备份效果 :
编辑
编辑
数据库的恢复演示——
删除demo_1数据库后,首先连接到MySQL,如下图所示 :
编辑
然后使用Source __.sql指令,如下图所示 :
编辑
恢复效果 :
编辑
PS : 也可以将__.sql文件中的内容全部复制到查询语句编辑器中执行一次。(不推荐)
3° 表的备份和恢复
备份——
mysqldump -u 用户名 -p db_name 表1 表2...表n > ___.sql
恢复——(进入MySQL命令行下再执行)
Use db_name(选择数据库)
Source ___.sql(恢复表的备份)
备份演示——
在demo_1数据库中新建一张表,如下图所示 :
编辑
备份表table1,如下图所示 :
编辑
备份效果 :
编辑
恢复演示——
首先,删除demo_1数据库下的table1表,如下图所示 :
编辑
连接到MySQL后,输入恢复指令(要先选中表所在的数据库),如下图所示 :
编辑
恢复效果 :
编辑
System.out.println("END-------------------------------------------------------------------------------");