MySQL中对数据库的操作

简介: MySQL中对数据库的操作

查看数据库列表

show databases;

增删数据库

创建数据库

create database XXX;
create database if not exists XXX; // 不存在则创建,存在则报错
create database XXX charset=XXX; // 创建使用XXX字符集的数据库,不指明则根据配置文件默认
create database XXX charset=XXX collate XXX; // 创建XXX字符集并带校验规则的数据库

本质是在mysql中创建一个目录

13aa1c9daadbbaeb460f24b3bd4c23ff.png

删除数据库

drop database XXX;
drop database if exists XXX; // 存在则删除,不存在报错

本质是删除mysql中的一个目录

不能随意删除数据库,删完该库中的所有数据都没有了

认识系统编码

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

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

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

show variables like 'character_set_database'; // 查看系统默认字符集
show variables like 'collation_database'; // 查看系统默认校验规则
show charset; // 查看数据库支持的所有字符集
show collation; // 查看数据库支持的所有的校验规则

校验规则对数据库的影响

拿两个规则来进行比较:

utf8_general_ci //不区分大小写

utf8_bin // 区分大小写

首先创建一个规则为:utf8_general_ci 的数据库,在数据库里创建表并插入一些数据,接着指定查询某个数据看看会有什么情况。因为配置文件默认的规则为 utf8_general_ci 因此不需要指明创建

create database d1;
use d1; // 进入d1数据库
create table letter(name varchar(20)); // 创建一个名为letter的表,表中的字段只有name
insert into letter values('a'); // 往表中插入数据
insert into letter values('A');
insert into letter values('b');
select * from letter; // 查看表中数据
select * from letter where name='a'; // 在表中查询name字段为a的数据

07ebbc268285294ed22d585f6db86439.png

可以看到单独查询a的话,A也会跟着出来,这就是不区分大小写的规则所产生的效果

下面再来看看区分大小写规则的效果,由于配置文件默认规则为 utf8_general_ci ,因此要指明 utf8_bin 才可以

create database d2 charset=utf8 collate utf8_bin; // 创建校验规则为utf8_bin的数据库
use b2; // 进入b2数据库
create table letter(name varchar(20)); // 创建表
insert into letter values('a'); // 往表中插入数据
insert into letter values('A');
insert into letter values('b');
select * from letter; // 查看表中数据
select * from letter where name='a'; // 在表中查询name字段为a的数据

8c9e04e211282cfc688d5f158839b14e.png

可以看到这种规则下,只会出现a的数据。

综上可以看出,不同的校验规则有着不同的效果,根据需求选择规则去创建数据库即可

其他库的操作

查看当前所在数据库

select database();

修改数据库

主要是修改编码和校验规则

alter database XXX charset=XXX collate XXX;

查看数据库创建的细节

show create database XXX;

可以看到数据库的编码

e55835e83ea579377b9302d8c18239c2.png

备份和恢复

mysqldump -P端口号 -u用户名 -p密码 -B 数据库名 > 备份的路径
//注意是在系统中执行的指令

备份的本质就是将数据库的所有历史操作和数据全部重定向到系统中的文件

source 备份文件的路径;
//在mysql中执行

恢复的本质就是将备份在系统中的文件中锁存储的所有数据库操作在mysql中执行一遍


048511dea47f2b13600811deab0c5c80.png

可以看到在系统中就存在了一个文件,该文件就存储着d1这个数据库的所有操作和数据。

那么恢复的话,直接在mysql中执行命令即可


38f9893c64757b5fe866b82680c3e54a.png

执行了文件中记录的所有操作后,d1这个数据库就会被创建好。

注意事项

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

mysqldump -P端口号 -u用户名 -p 数据库名 表名1 表名2 > 路径 

同时备份多个数据库

mysqldump -P端口号 -u用户名 -p 数据库名1 数据库名2 > 路径

如果备份数据库不带-B选项,那么在恢复数据库时就要先创建空的数据库,然后使用数据库再恢复。

-B选项本质就是在备份文件中加入创建数据库的指令

查看连接情况

show processlist;

这个指令可以查看当前mysql有多少个用户在登陆


ba71f0de21692d1e0dd5b700e3d85fde.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1574 152
|
10月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1095 156
|
10月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
10月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
10月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
10月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
589 158
|
10月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
10月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
632 156
|
10月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
749 161
|
11月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。

推荐镜像

更多