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 charset_name:指定数据库采用的字符集
- COLLATE collation_name:指定数据库字符集的校验规则
创建数据库,本质就是在/var/lib/mysql下创建一个目录。
创建表,本质就是在/var/lib/mysql对应的目录下创建相应文件。
创建数据库的时候,有两个编码集:
- 数据库编码集:数据库未来存储数据,采用的编码格式。
- 数据库校验集:支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
数据库无论对数据做任何操作,都必须保证操作和编码是编码一致的。
- 创建名为db1的数据库
create database db1;
注意:当创建数据库没有指定字符集和校验规则时,系统使用默认的字符集utf8,和校验规则utf8_ general_ ci(/etc/my.cnf/的配置文件中已经配置了utf8为默认字符集)
- 创建字符集为utf8,和校验规则为utf8_general_ci的数据库db2
create database db2 charset=utf8 collate utf8_general_ci;
- 创建字符集为gbk,和校验规则为gbk_chinese_ci的数据库db3;
2.字符集和校验规则
字符集主要是控制用什么语言。比如utf8就可以使用中文。
2.1查看系统默认字符集和校验规则
- show variables like 'character_set_database';
![]()
- show variables like 'collation_database';
![]()
2.2查看数据库支持的字符集和校验规则
- show charset;
![]()
- show collation;
![]()
2.3校验规则对数据库的影响
- 不区分大小写
创建一个数据库,校验规则使用utf8_general_ci(不区分大小写)
test1数据库字符集为utf8,校验规则为utf8_general_ci。
查找和排序结果。不区分大小写。
- 区分大小写
创建一个数据库,校验规则使用utf8_bin(区分大小写)
test2数据库字符集为utf8,校验规则为utf8_bin。
查找和排序结果。区分大小写。
3.查看数据库
查看创建数据库的完整SQL语句。
4.删除数据库
DROP DATABASE [IF EXISTS] db_ name;
删除一个数据库之后,数据库内部就看不到对应的数据库了;数据库里的表也全部被删除。本质就是删除/var/lib/mysql下的一个目录。
注意:不要随意删除一个数据库。
5.修改数据库
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 修改数据库,主要是修改数据库的字符集和校验规则
更改test1数据库的字符集。
6.数据库的备份和恢复
6.1备份
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
可以打开看看test1.sql 文件里的内容,备份其实把我们当时整个创建数据库,建表,导入数据的语句都装载这个文件中。
6.2恢复
# mysql> source D:/mysql-5.7.22/mytest.sql;
恢复,其实就是按照当时创建数据库的所有操作又执行了一遍。
6.3注意
- 如果备份的不是数据库,而是其中的一张表
# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
需要先创建数据库,再执行source。
- 同时备份多个数据库
# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
- 如果备份一个数据库时,没有带上-B参数
在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
7.查看连接情况
show processlist;

以上,就是关于数据库的相关基本操作。