【MySQL】库的操作

1. 创建数据库

1.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:指定数据库采用的字符集(以下两个内容稍后解释)
  • collate:指定数据库字符集的校验规则

1.2 创建数据库的例子

  • 创建一个数据库,命名为db1

    create database db1;
    

    image-20240825162745068

    观察上述内容,可以发现如果使用mysql创建一个数据库,在对应的数据存储位置(这里是/var/lib/mysql)中,就会多一个以数据库名命名的目录,这里可以发现在mysql中创建数据库对应的底层操作就是创建一个文件夹,当然,反之也是可以的

    image-20240825163048641

    所以可以得出结论:创建数据库的本质就是在指定目录下创建一个目录

    但是,一定不要直接操作这个文件夹,而是要通过MySQL客户端来操作

  • 创建一个使用utf8字符集的db2数据库

    create database db2 charset=utf8;
    
  • 创建一个使用utf8字符集,并带校验规则的db3数据库

    create database db3 charset=utf8 collate utf8_general_ci;
    

2. 字符集和校验规则

1. 什么是字符集和校验规则

  • 字符集:数据库里将来会存放非常多的种类的数据,这些数据会以很多种形式存放,并且之后也会被取用,那么在我们存放和取用数据的时候,是需要对这些数据进行编码和解码的,这里编码方式就是由字符集确定的
  • 校验规则:在数据库中,需要取用数据的时候可能会给要取用的数据加上条件,比如“取用满足xx条件的数据”,此时数据库软件就要内部对数据进行比对,这个比对就需要依赖校验规则

2. 查看默认的字符集和校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

image-20241002182607080

image-20241002182842739

3. 查看支持的字符集和校验规则

show charset;

image-20241002183150475

show collation;

image-20241002183306289

4. 校验规则对数据库的影响

创建两个数据库,分别使用utf8_general_ci(不区分大小写)和utf8_bin(区分大小写)校验规则

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');
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 test1;
select * from person where name='a';
use test2;
select * from person where name='a';

image-20241002184323638

  • 分别进行排序看结果
use test1;
select * from person order by name;
use test2;
select * from person order by name;

image-20241002184459118

3. 操作数据库

3.1 查看数据库

show databses; -- 查看当前机器上的存在的数据库

image-20241002184838759

3.2 显示创建语句

show create database [db_name];

image-20241002184914562

说明:

  • MySQL建议我们关键字大写,但是不是必须的;
  • 数据库名字的反引号是为了防止使用的数据库名和关键字冲突
  • /*40100 DEFAULT ...*/不是注释,是表示当前MySQL版本大于4.01就执行这句话

3.3 修改数据库

alter database db_name
[alter_spacification [, alter_spacification]...]

alter_spacification:
[default] character set charset_name
[default] collate collation_name

说明:

  • 一般来说,对数据库的修改主要是修改数据库的字符集和校验规则

image-20241002185452839

3.4 删除数据库

drop database [if exists] db_name;

执行删除后的结果:

  • 数据库客户端内部看不到对应的数据库
  • 对应的数据库目录被删除(包括该目录下的所有表)

强烈建议,不要随意删除数据库

image-20241002185816033

3.5 数据库备份和恢复

1. 备份

mysqldump -P[port] -u[username] -p[password] -B [db_name] > 备份的文件名

例如:

image-20241002233919430

可以看到已经成功备份,接下来我们查看以下这个文件中的内容是什么

image-20241002234051937

可以看到,去掉注释之后就是整个创建数据库创建表插入数据的过程,虽然和我们构建的sql语句不太一样,但是能够得到相同的数据库结果

2. 还原

source [数据库备份文件]

image-20241002234636785

3. 注意事项

  • 如果备份的不是整个数据库,而是备份其中的一张表
mysqldump -uroot -p 数据库名 表名1 表名2 > 备份文件
  • 同时备份多个数据库
mysqldump -uroot -p -B 数据库1 数据库2 ... > 备份文件
  • 如果在备份数据库时,没有带上-B参数,那么在恢复的时候就需要先创建空的数据库,再使用数据库,再用source还原

3.6 查看数据库的连接情况

show processlist

image-20241002235016609

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况


本节完…
先创建空的数据库,再使用数据库,再用source还原

3.6 查看数据库的连接情况

show processlist

在这里插入图片描述

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况


本节完…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌云志.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值