文章目录

库的操作增删改查
- 进入数据库的目录
cpp
cd /var/lib/mysql
免密码登录数据库
mysql -u root -p
数据库的查看和创建
- 查看数据库和创建数据库
cpp
show databases;
create database helloworld;
create database [if not exists] 数据库名
如果不存在就创建数据库
创建数据库,本质就是在/var/lib/mysql中创建目录
删除数据库,就是删除目录
查看当前位于哪个数据库中
- 查看当前位于哪个数据库中
数据库的删除
-
删除数据库
执行删除之后的结果: -
数据库内部看不到对应的数据库
-
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库
cpp
drop database [if not exists] database1;

总结
总结
5. 也可以在Linux层创建数据库和删除数据库,但是一定不要这么干
6. 用if not exitsts选项 创建一个已经存在的数据库(我们会发现它报警告warning)
显示数据库的创建语句
- 显示创建语句 show create database 数据库名;
数据库名字的反引号''是为了防止使用的数据库名刚好是关键字,/*!40100 default... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
修改数据库
- 修改数据库是修改它的字符集和效验规则
cpp
alter database 数据库名 charset=utf8
alter database 数据库名 character set utf8
认识系统编码
数据库的编码问题
- 创建数据库的时候有两个编码集:
<> 数据库编码集:数据库未来的存储数据
<> 数据库效验集:支持数据库进行字段比较使用的编码,本质也是读取数据库中数据采用的编码格式
数据库无论对数据进行任何操作,都必须保证操作和编码必须是编码一致的
查看系统默认的字符集和效验规则
cpp
show variables like 'character_set_database';
// 字符集,存的方式
show variables like 'collation_database';
// 效验规则,取的方式

- 我们可以不只是看database,还可以看connect(连接)和server(服务)
- 查看数据库支持的字符集和字符集校验规则
cpp
show charset

cpp
show collation;

- 创建数据库案例
cpp
create database db1;
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci
- 创建一个名为db2且字符集为utf8的数据库
cpp
create database db2 charset = utf8
- 另一种写法
cpp
create database db2 character set utf8
- 创建一个名为db2且字符集为utf8的数据库并且指明校验规则
cpp
create database db2 charset=utf8 collate utf8_ general_ ci
- 查看字符集及编码规则

校验规则对数据库的影响
- 不区分大小的编码规则,utf8_general_ci
cpp
use test1 // 进入数据库
create table person(name varchar(20));// 创建表
insert into person(name) values('a');// 插入数据
insert into person(name) values('A');
insert into person(name) values('B');
insert into person(name) values('b');
select * from person where name = 'a';
// 查询a是不区分大小写的

- 查询a是不区分大小写的
-
utf8_bin是区分大小写的
-
查看表结构的详细信息
cpp
desc person;

数据库的备份和恢复
备份
cpp
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
mysqldump -P3306 -u root -p -B test1 > test1.sql

这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
cpp
vim test1.sql

还原
一台机器的数据库还原到另一台机器上
cpp
mysql> source root/test1.sql;
把test1删除再还原,它会把备份文件中的sql语句都跑一遍
备份的是一张表
cpp
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份的是多个数据库
cpp
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
带上-B其实是在test1.sql文件中多了一条创建数据库的指令
-
加上-B是因为在备份的同时又创建了一个新的数据库并把数据放入到新的数据库中
不加-B需要我们手动创建一个新的数据库
-
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据
库,再使用source来还原。
查看数据库的连接情况
cpp
show processlist;
可以查看当前有多少人连接了我的数据库