MySQL操作库 —— 库的操作

一、增删数据库

1、创建数据库

create database db_name;

本质就是在:/var/lib/mysql目录下创建一个目录

上一次创建的数据库MySQL数据库基础-CSDN博客

2、查看数据库

show databases;

3、删除数据库

drop database [IF EXISTS] db_ name;

本质就是在:/var/lib/mysql目录下删除名字为db_ name的目录。

注意:不要随意删除数据库。

执行删除之后的结果:

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

二、认识系统编码

1、 字符集和校验规则

创建数据库时,有两个编码集:

  1. 数据库编码集---数据库未来存储数据
  2. 数据库校验集---支持数据库,进行字段比较的编码,本质也是一种读取数据库中数据的采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

1.1 查看系统默认字符集以及校验规则

show variables like 'character_set_database'; #编码集

show variables like 'collation_database'; #校验规则

1.2 查看数据库支持的字符集

show charset; #数据库怎么写,写用什么编码

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

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

show collation; # 想读数据,读的时候校验是否自己想要的数据

三、使用指定编码创建数据库

1、创建名为 d1 的数据库

**说明:**当创建数据库没有指定字符集和校验规则时,

  • 系统使用默认字符集:utf8
  • 校验规则是:utf8_general_ ci

(也就是使用配置文件已经配置好的字符集和校验规则,在 MySQL安装-CSDN博客已经配置了使用utf8)

2、创建一个使用 utf8 字符集的 d2 和 d3 数据库(两种不同的写法)

3、创建一个使用 utf8 字符集,校对规则为utf8_general_ci的 d4 数据库
4、创建一个使用 gbk 字符集,与 gbk 对应校对规则的 d5 数据库

四、验证不同校验编码的影响

1、校验规则对数据库的影响
  • 创建两个数据库,字符集都是用utf8,校验规则使用 utf8_ general_ ci (不区分大小写)和utf8_bin(区分大小写)

在数据库test1中建表格person,(name varchar(20))​ - 表结构定义,name- 字段名,varchar(20)- 字段类型,可变长度字符串,最大20个字符

插入数据

查询数据

select 是从表里查询,通配符* 代表将表里的数据都显示出来,from person从person表中取数据。

插入的本质是存取,采用 default-character-set=utf8,也就是存取时所用的编码。

查询时是按照校验集的要求来查找的。

1、1区分大小写的情况下

校验规则的不同,同样的操作会得到不一样的结果。

对两个数据库中的表格的内容进行排序(升序),我们可以看见得到的结果也是不一样的

五、库的删改查

1、数据库删除

drop database [IF EXISTS] db_ name;

本质就是删除目录(连带目录内部的数据全部删除)。

2、查看数据库内的表

3、查看自己当前在哪一个数据库(显示我们当前处于test1这个数据库中)

4、修改数据库

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

**alter_spacification:

DEFAULT\] CHARACTER SET charset_name \[DEFAULT\] COLLATE collation_name** 说明: 对数据库的修改主要指的是修改数据库的字符集,校验规则

实例: 将 mytest 数据库字符集改成 gbk:

5、 显示创建语句

show create database 数据库名;

说明:

MySQL 建议关键字使用大写,但不是必须的。

数据库名字的反引号 ``,是为了防止使用的数据库名刚好是关键字。

/*!40100 DEFAULT CHARACTER SET gbk */ 这个在这里不是注释的意思,而是表示当前 mysql 版本大于 4.01 版本的话,就执行这句话。

六、库的备份与恢复

1、备份

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

将 test1 库进行备份

可以打开看看 test1.sql 文件里的内容:

其实就是把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

2、恢复

mysql> source /root/MySQL/test1.sql(还原文件的路径)

备份:

备份实际就是在mysql中将备份文件中的指令执行一遍。

3、备份中其他情况

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

mysqldump -u root -p 数据库名 表名1 表名2 > /root/MySQL/test1_tb1_2.sql

同时备份多个数据库该怎么做?

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

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

4、查看连接情况

**show processlist; #**当发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

这个命令可以告诉我们当前有哪些用户连接到我们的 MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。

相关推荐
r i c k11 分钟前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦26 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL1 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·1 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德1 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫2 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i2 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.2 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn2 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露3 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot