温馨提示:非特殊情况不要删除和随意修改数据库
清除MySQL历史命令:system clear
增删数据库
增删数据库
- 登录MySQL:mysql -u root -p
- MySQL数据目录:/var/lib/mysql
- 查看当前数据库列表:show databases;
- 创建数据库:create database db_name;
- 再次使用show databases;就可以看到新建的数据库
- 当然,数据库的数据目录/var/lib/mysql中也可以看到新建的数据库
- 删除数据库:drop database db_name;
- 增删的本质就是在/var/lib/mysql新建和删除目录
认识系统编码
创建数据库的时候,有两个编码集:
- 数据库字符集:数据库未来存储数据
- 数据库校验集:一种读取数据库中的数据采用的编码格式
数据库无论对数据做任何操作,都必须保证所有的操作保持编码一致
查看系统默认的字符集,如下图所示
show variables like 'character_set_database';
查看系统默认的校验集,如下图所示
show variables like 'collation_database';
查看数据库支持的字符集,如下图所示
show charset;
查看数据库支持的字符集校验规则,如下图所示
show collation;
指定编码创建数据库
创建名为db1的数据库
create database db1;
说明:当我们创建数据库的时候没有指定字符集和校验规则的时候,系统使用默认的字符集和校验集····:utf8、utf8_general_ci
创建一个使用utf8字符集的db2数据库
create database db2 charset=utf8;
创建一个使用utf字符集,并带有校对规则的db3数据库
create database db3 charset=utf8 collate utf8_general_ci;
验证不同校验集对数据库的影响
创建使用检验集 utf8_general_ci 的数据库(不区分大小写):
- create database test1 collate utf8_general_ci;
- use test1;
- create table person(name varchar(20));
- insert into person values('a');
- insert into person values('A');
- insert into person values('b');
- insert into person values('B');
查询表的内容:
- use test1;
- select * from person where name='a';
将表中的内容排序:
- use test1;
- select * from person order by name;
创建使用检验集 utf8_bin 的数据库(区分大小写):
- create database test2 collate utf8_bin;
- use test2;
- create table person(name varchar(20));
- insert into person values('a');
- insert into person values('A');
- insert into person values('b');
- insert into person values('B');
查询表的内容:
- use test2;
- select * from person where name='a';
将表中的内容排序:
- use test2;
- select * from person order by name;
操纵数据库
查看数据库:
- show databases;
显示创建数据库的细节:
- show create database db_name;
修改数据库(主要是修改数据库的字符集和校验集)
实例:将数据库test1的字符集修改为gbk
- alter database test1 charset=gbk;
- alter database test1 charset=gbk collate=gbk_bin;
数据库的删除:
- drop database db_name;
结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被级联删除,数据表全部被删除
注意:不要随意删除数据库
数据库的备份和恢复
备份:
- # mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
- # mysqldump -P3306 -u root -p -B test1 > /root/MySQL/test.sql
查看test1.sql的内容
还原:
- mysql> source /root/MySQL/test1.sql;
只是备份数据库中的表:
- # mysqldump -P3306 -u root -p 密码 -B 数据库名 表名1 表名2 > 数据库备份存储的文件路径
同时备份多个数据库:
- # mysqldump -P3306 -u root -p 密码 -B 数据库名1 数据库名2 > 数据库备份存储的文件路径
查看数据库的连接情况:
- show processlist;
- 查询当前连接了我们的MySQL的用户