03 库的操作

目录

  1. 创建
  2. 查看
  3. 修改
  4. 删除
  5. 备份和恢复
  6. 查看连接情况

1. 创建

语法

CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …]

create_specification:
 CHARACTER SET charset_name
 CPLLATE collation_name

说明:
大写的标识关键字
[]是可选项
CHARACTER SET:指定数据库采用的字符集
COLLATE:指定数据库字符集的校验规则
create_specification:采用的编码规则

创建数据库时有两个编码集,分为数据库编码集和校验集,编码集市数据库存储数据时使用的,椒盐基支持数据库比较使用的编码,本质是一种读取数据库中采用的编码格式
数据库无论任何操作,都必须保证操作和存储是编码一致的

案例

  • 先进入数据库存放文件夹

cd var/lib.mysql

在这里插入图片描述

  • 创建名为db1的数据库

create database db1;

在这里插入图片描述

说明:创建数据库没有指定字符集和校验规则时,系统默认字符集:utf8,校验规则是:utf8_general_ci

创建数据库就是在上面的文件夹里创建文件夹
在这里插入图片描述

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

create database db2 charset=utf8;
create database db2 character set utf-8; //另一种写法

在这里插入图片描述

  • 创建一个使用utf字符集,并带校对规则的db3数据库

create database db3 chareset=utf8 collate utf8_general_ci;

在这里插入图片描述

  • IF NOT EXISTS 选项,表示不存在的话创建
  • 创建一个db3,带这个选项

create database if not exists db3;

如果数据库已经存在,这个操作不会执行,可以避免因对象已存在导致的错误。
在这里插入图片描述

字符集和校验规则

查看系统默认字符集和校验规则

show variables like ‘character_set_database’;
show variables like ‘collation_database’;

在这里插入图片描述

查看默认所有椒盐基

show variables like ‘collation_%’;

在这里插入图片描述

查看数据库支持的字符集

show charset;

在这里插入图片描述

字符集主要控制用什么语言,比如utf8就可以使用中文

查看数据库支持的字符集校验规则

show collation;

在这里插入图片描述

校验规则对数据库影响

数据库的字符集和校验影响着创建的表的规则,字符集和校验集,存储和读取必须一致
在数据库中有配置文件db.opt查看

cat db.opt;

在这里插入图片描述

  • 不区分大小写

创建一个数据库,校验规则用utf8_general_ci[不区分大小写],下面的操作是创建数据库,创建person表,插入四条数据

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’);

  • 区分大小写

创建一个数据库,校验规则使用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 test1;
select * from person where name=‘a’;

在这里插入图片描述

区分大小写的查询及结果

use test2;
select * from person where name=‘a’;

在这里插入图片描述
对于不区分大小写的,A也看做是a,所以查询到两个

  • 结果排序

不区分大小写排序结果

use test1;
select * from person order by name;

在这里插入图片描述

区分大小写排序结果

use test2;
select * from person order by name;

在这里插入图片描述
区分大小写,就会以ascii码排序,大写比小写的值小

2. 查看

查看所有数据库

show databases;

显示创建语句

show create database 数据库名;

在这里插入图片描述
说明:
MySQL建议我们关键字使用大写,但不是必须的
数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
/!40100 default…/这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

3. 修改

说明:对数据库的修改主要指修改数据库的字符集,校验规则

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

实例

将test2数据库集改为gbk

alter database test2 charset=gbk;

在这里插入图片描述
在这里插入图片描述

当修改了字符集后,校验集会自动和它匹配

4. 删除

DROP DATABASE [IF EXISTS] db_name;

执行完删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意,不要随意删除数据库,会造成很多上层的工程需要修改

5. 备份和恢复

备份

备份有最直接的方法,将数据库文件拷贝,但是这样遇到版本不同的sql可能会出现错误,mysql提供了备份的方法

语法,需要退出数据库在命名行输入:

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例,将test2库备份(退出连接)

mysqldump -P3306 -u root -p -B mytest > mytest.sql

打开备份文件,里面都是数据库操作的语句,建库,建表,导入数据的语句都在里面
在这里插入图片描述

还原

mysql> source 数据库路径;

注意

如果备份的不是整个数据库,而是其中的表,怎么做

mysqldump -u root -p 数据库名 表名1 表名2 > test2.sql

同时备份多个数据库

mysqldump -P3306 -u root -p -B 数据库名1 数据库名2 > 数据库存放路径

如果备份一个数据库时,没有带上-B选项,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原,如:

mysqldump -P3306 -u root -p mytest > mytest.sql

这时恢复需要先创建数据库

6. 查看连接情况

语法:

show processlist;

在这里插入图片描述
可以告诉我们哪些用户连接了,可以查出非正常连接,如果数据库比较慢时,可以用这个指令看看连接情况

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值